Systems Lab

Agent skill

follow-up-engine

Determines all follow-up actions due today across the 10-day outreach cadence.

dormantNeeds a keyInstructions only788 words

Filed under Outbound email.

From ekatasingh1107/b2b-gtm-skills · 99 skills · 2 · pushed 2026-04-11

What it does when it runs

Determines all follow-up actions due today across the 10-day outreach cadence. Generates content and delivers automatically via Chrome DevTools MCP. Sends Telegram confirmation after completion.

Read from the skill and the 1 file bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.

Keys and connectors you must supply
  • chrome-devtools
Hosts it reaches
No third-party host appears in the skill or its bundled files.
Tool permissions it declares
No allowed-tools in the frontmatter. It only issues instructions, so there is nothing to bound.
Actions present in the files
None. Instructions only.

Ask about follow-up-engine

Opens your assistant with this page's verified links already in the prompt.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
git clone --depth 1 --filter=blob:none --sparse https://github.com/ekatasingh1107/b2b-gtm-skills.git /tmp/b2b-gtm-skills
git -C /tmp/b2b-gtm-skills sparse-checkout set "skills/composites/follow-up-engine"
mkdir -p ~/.claude/skills/follow-up-engine
cp -R "/tmp/b2b-gtm-skills/skills/composites/follow-up-engine/." ~/.claude/skills/follow-up-engine/

Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗

The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.

Before you install: this skill will not complete its job on a bare agent. It needs chrome-devtools, which you have to obtain separately.

Reproduced in full from ekatasingh1107/b2b-gtm-skills/blob/eae8dd0bb98da1c8e84abd297066a87015dd860f/skills/composites/follow-up-engine/SKILL.md, which is licensed MIT (repository). 788 words, 19 headings.

Follow-Up Engine

Processes all leads in an active outreach cadence and executes the actions due today. Each follow-up adds new value -- never repeats the same angle.

Prerequisites

  • agency.config.json populated (outreach cadence, tools)
  • Leads in CRM with stage = CONTACTED and active cadence

Capabilities Used

  1. cold-email-drafter -- follow-up emails (Touch 2-4)
  2. message-generator -- LinkedIn messages, Instagram DMs
  3. crm-writer -- update CRM, add to call sheet

Phase 0: Intake

Read agency.config.json:

  • outreach.company_cadence -- 10-day action map for company leads
  • outreach.gig_cadence -- 2-day action map for gig leads
  • tools.browser_automation -- Chrome DevTools MCP config
  • notifications -- Telegram bot config

Query CRM for leads where:

  • Stage = CONTACTED
  • next_action_date <= today
  • response_received != "Yes" (skip responded leads)

Phase 1: Classify Actions

For each company lead, determine today's action:

DayAction
Day 1EMAIL_1 + IG_ENGAGE
Day 2LINKEDIN_CONNECT (personalized note)
Day 3CALL_1 (first call)
Day 4EMAIL_2 (new pain point angle)
Day 5CALL_2 + IG_DM_FOLLOWUP
Day 6REST
Day 7EMAIL_3 (Kibi Sports case study)
Day 8LINKEDIN_MSG (if accepted) + CALL_3
Day 9REST
Day 10EMAIL_BREAKUP ("not a priority, thanks")

For gig leads:

DayAction
Day 1PLATFORM_APPLY
Day 3EMAIL_1 (if email found)

Group by action type:

  • Emails to send (Touch 2, 3, or breakup)
  • LinkedIn messages
  • Instagram follow-ups
  • Calls to schedule

Phase 2: Generate Follow-Up Content

Email Follow-Ups (Company Leads)

Cadence DayTouchAngle
Day 4Touch 2New pain point (NOT a "bump"). Different from Email 1
Day 7Touch 3Kibi Sports case study + Plasho's work
Day 10Breakup"Looks like this isn't a priority right now. Thanks for your time. If things change, we're here."

Each follow-up MUST:

  • Add new value (different angle from previous touches)
  • Reference something new (not repeat Touch 1 content)
  • Be shorter than Touch 1 (40-60 words for Touch 2-3, 30-50 for breakup)
  • Thread on the original email (same subject line with "Re:")

LinkedIn Messages (Day 8)

For leads where connection was accepted:

  • Send a value message referencing something from their profile or recent activity
  • Keep it conversational, not salesy

For leads where connection was NOT accepted:

  • No action. Skip entirely. Do not re-request.

Instagram Follow-Ups

For Day 5 Instagram follow-up:

  • Reference the Day 1 DM or engagement
  • Keep casual and brand-relevant
  • Under 2 sentences

Call Sheet Updates

For Day 3, Day 5, and Day 8:

  • Add lead to crm.tabs.calling with:
    • Contact name, company, LinkedIn URL
    • Call purpose (Initial / Follow-up)
    • Brief talking points
    • Previous touchpoint summary

Phase 3: Automated Delivery

No approval gate. All follow-ups are delivered automatically via Chrome DevTools MCP.

Email Delivery

  • mcp__chrome-devtools__navigate_page -> Zoho webmail
  • Compose reply in thread (Re: original subject)
  • Send automatically

LinkedIn Delivery

  • mcp__chrome-devtools__navigate_page -> LinkedIn messaging
  • Send message to accepted connections
  • Skip unaccepted connections

Instagram Delivery

  • mcp__chrome-devtools__navigate_page -> Instagram DMs
  • Send follow-up DM
  • Enforce 1 DM per 2 minutes spacing

Call Delivery

  • Add to CRM "Call Today" tab via crm-writer
  • Send Telegram notification: "Call leads added to sheet"

Phase 4: CRM Update

For each delivered follow-up, update CRM:

  • last_action = action taken
  • last_action_date = today
  • next_action = next action from cadence
  • next_action_date = calculated date (skip weekends)
  • cadence_day = current day

For breakup emails (Day 10):

  • Update stage: CONTACTED -> BREAKUP_SENT
  • No next action scheduled
  • Cadence is complete

Phase 5: Telegram Confirmation

After all follow-ups are sent, send Telegram message:

"Follow-ups completed. [N] emails, [N] LinkedIn messages, [N] IG DMs sent. [N] calls added to sheet."

If no follow-ups were due: "No follow-ups due today."

Phase 6: Summary

FOLLOW-UP SUMMARY -- [Date]
---
Follow-ups executed: N
- Emails sent: N (Touch 2: X, Touch 3: Y, Breakup: Z)
- LinkedIn messages: N
- Instagram DMs: N
- Added to call sheet: N

Skipped (lead responded): N
Skipped (LinkedIn not accepted, Day 8): N
Leads at breakup: N (cadence complete)

Telegram notification: Sent

Example Usage

Trigger phrases:

  • "Run today's follow-ups"
  • "What follow-ups are due today?"
  • "Process the cadence for active leads"
  • "Send follow-up emails"

Files bundled with it

These load only when the skill asks for them, so they cost nothing until it runs.

Other skills for the same job

Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.

Need help setting it up?

This page tells you what follow-up-engine does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.

Book a call →

The directory stays free. There is nothing gated behind this.