Agent skill
follow-up-engine
Determines all follow-up actions due today across the 10-day outreach cadence.
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-toolsin the frontmatter. It only issues instructions, so there is nothing to bound. - Actions present in the files
- None. Instructions only.
Install it
View source on GitHub ↗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.
The skill
Source on GitHub ↗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.jsonpopulated (outreach cadence, tools)- Leads in CRM with stage = CONTACTED and active cadence
Capabilities Used
cold-email-drafter-- follow-up emails (Touch 2-4)message-generator-- LinkedIn messages, Instagram DMscrm-writer-- update CRM, add to call sheet
Phase 0: Intake
Read agency.config.json:
outreach.company_cadence-- 10-day action map for company leadsoutreach.gig_cadence-- 2-day action map for gig leadstools.browser_automation-- Chrome DevTools MCP confignotifications-- Telegram bot config
Query CRM for leads where:
- Stage = CONTACTED
next_action_date<= todayresponse_received!= "Yes" (skip responded leads)
Phase 1: Classify Actions
For each company lead, determine today's action:
| Day | Action |
|---|---|
| Day 1 | EMAIL_1 + IG_ENGAGE |
| Day 2 | LINKEDIN_CONNECT (personalized note) |
| Day 3 | CALL_1 (first call) |
| Day 4 | EMAIL_2 (new pain point angle) |
| Day 5 | CALL_2 + IG_DM_FOLLOWUP |
| Day 6 | REST |
| Day 7 | EMAIL_3 (Kibi Sports case study) |
| Day 8 | LINKEDIN_MSG (if accepted) + CALL_3 |
| Day 9 | REST |
| Day 10 | EMAIL_BREAKUP ("not a priority, thanks") |
For gig leads:
| Day | Action |
|---|---|
| Day 1 | PLATFORM_APPLY |
| Day 3 | EMAIL_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 Day | Touch | Angle |
|---|---|---|
| Day 4 | Touch 2 | New pain point (NOT a "bump"). Different from Email 1 |
| Day 7 | Touch 3 | Kibi Sports case study + Plasho's work |
| Day 10 | Breakup | "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.callingwith:- 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 takenlast_action_date= todaynext_action= next action from cadencenext_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.
- growth-engine by ericosiu · 3,483
- video-content-engine by ericosiu · 3,483
- reddit-post-engine by Varnan-Tech · 626
- copywriting-follow-up by Othmane-Khadri · 290
- building-communication-engine by GTM-Strategist · 252
- follow-up-discipline by louisblythe · 143
- post-meeting-follow-up-automation by louisblythe · 143
- personalization-engine by kenny589 · 64
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.