> instantly-autoreply

# Instantly Autoreply ## Purpose Automatically generate and send intelligent replies to incoming emails from Instantly campaigns, using campaign-specific knowledge bases and web research. ## Inputs The webhook receives this payload from Instantly (reply event): - `timestamp`: ISO timestamp when the event occurred - `event_type`: Type of event (e.g., "reply") - `campaign_id`: UUID of the campaign - `campaign_name`: Name of the campaign (format: "CAMPAIGN_ID | Campaign Name") - `lead_email`: The

fetch
$curl "https://skillshub.wtf/Harmeet10000/skills/instantly-autoreply?format=md"
SKILL.mdinstantly-autoreply

Instantly Autoreply

Purpose

Automatically generate and send intelligent replies to incoming emails from Instantly campaigns, using campaign-specific knowledge bases and web research.

Inputs

The webhook receives this payload from Instantly (reply event):

  • timestamp: ISO timestamp when the event occurred
  • event_type: Type of event (e.g., "reply")
  • campaign_id: UUID of the campaign
  • campaign_name: Name of the campaign (format: "CAMPAIGN_ID | Campaign Name")
  • lead_email: The prospect's email address
  • email_account: The sending account (eaccount)
  • email_id: UUID of the email to reply to (use as reply_to_uuid)
  • reply_subject: Subject line of the incoming reply
  • reply_text: Full plain text content of the incoming reply
  • reply_html: Full HTML content of the incoming reply
  • reply_text_snippet: Short preview of the reply content
  • Additional lead data fields may be present

Process

Step 1: Parse Incoming Reply

The incoming email content is already in the payload:

  • reply_text or reply_html: The full content of their reply
  • reply_subject: Their subject line Use this directly - no need to fetch.

Step 2: Get Full Conversation History (Optional)

If more context is needed, call instantly_get_emails with the lead_email to retrieve prior emails (limit 10).

Step 3: Extract Campaign ID

Parse the campaign_name to get the ID (everything before the "|"). Or use campaign_id directly if available.

Step 4: Lookup Knowledge Base

Call read_sheet on spreadsheet 1QS7MYDm6RUTzzTWoMfX-0G9NzT5EoE2KiCE7iR1DBLM to find the row where column "ID" matches the campaign ID. Extract:

  • Knowledge Base: Campaign-specific context and talking points
  • Reply Examples: Example replies to match tone

Step 5: Skip if No Knowledge Base

If no knowledge base found for this campaign, skip processing and return empty.

Step 6: Generate Reply

Using extended thinking, generate a reply following these rules:

Role & Tone:

  • Write as the email_account (first person: 'I', 'we')
  • Concise, confident, friendly, non-corporate, outcome-focused
  • No em dashes (—), no over-explaining, no hype, no filler
  • If followup: be light but persistent, illustrate value props

Research (use web_search tool):

  • Research the sender and their company/clinic thoroughly
  • Look up any products, tools, locations, acronyms you don't recognize
  • Use research to tailor the reply (don't mention you searched)

When to Return Empty (no reply):

  • If additional email would be needless (they confirmed call, logistics done)
  • If explicitly negative: "DO NOT EMAIL", "UNSUBSCRIBE", "remove me from list"
  • If no knowledge base found

Output Format:

  • 3-8 sentences unless thread requires more
  • HTML with <br> for line breaks, <br><br> between paragraphs
  • No <html>, <body>, <p> tags
  • Sign off with first name from email_account

Step 7: Filter Empty Replies

If the generated reply is empty or just whitespace, do NOT send. Return success with skipped: true.

Step 8: Send Reply

Call instantly_send_reply with:

  • eaccount: The email_account from input
  • reply_to_uuid: The email_id from input
  • subject: The reply_subject from input
  • html_body: The generated reply

Output

Return:

  • status: "success" or "error"
  • skipped: true if reply was intentionally empty
  • reply_sent: true if reply was actually sent
  • message_id: ID from Instantly if sent

Error Handling

  • If Instantly API fails: Log error, return error status
  • If knowledge base lookup fails: Skip this email (no KB = no reply)
  • If AI generation fails: Log error, do not send partial reply

Knowledge Base Sheet Structure

Spreadsheet ID: 1QS7MYDm6RUTzzTWoMfX-0G9NzT5EoE2KiCE7iR1DBLM

IDCampaign NameKnowledge BaseReply Examples
abc123Dental Outreach[context...][examples...]

> related_skills --same-repo

> vibe-ppt

Convert this into a web based slide deck using reveal.js. Use the following brand colour and logo. Primary colour: #EE4822 Theme: Light Logo: https://media.licdn.com/dms/image/v2/D560BAQFeaNrDEATcKQ/company-logo_200_200/company-logo_200_200/0/1709465010800/100xengineers_logo?e=2147483647&v=beta&t=qKncqAfB_j9ckDOxOx1eN9EEPocLTbNqliLnAU3sP6c Slide Content: Vibe Coding with Gemini Canvas Slide 1: Vibe Coding with Gemini Canvas Slide 2: What is Vibe Coding? Vibe Coding: Use natural language pro

> upwork-scrape-apply

# Upwork Job Scrape & Apply Pipeline Scrape Upwork jobs matching AI/automation keywords, generate personalized cover letters and proposals, and output to a Google Sheet with one-click apply links. ## Inputs - **Keywords**: List of search terms (default: automation, ai agent, n8n, gpt, workflow, api integration, scraping, ai consultant) - **Limit**: Max jobs to fetch (default: 50) - **Days**: Only jobs from last N days (default: 1 = last 24 hours) - **Filters**: - `--verified-payment`: Only

> ui-ux-pro-max

UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 9 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind, shadcn/ui). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: g

> typescript-magician

Designs complex generic types, refactors `any` types to strict alternatives, creates type guards and utility types, and resolves TypeScript compiler errors. Use when the user asks about TypeScript (TS) types, generics, type inference, type guards, removing `any` types, strict typing, type errors, `infer`, `extends`, conditional types, mapped types, template literal types, branded/opaque types, or utility types like `Partial`, `Record`, `ReturnType`, and `Awaited`.

┌ stats

installs/wk0
░░░░░░░░░░
github stars7
░░░░░░░░░
first seenApr 3, 2026
└────────────