Agent skill
cold-email-drafter
Framework-based cold email composer with 3 personalization tiers.
Filed under Outbound email.
From ekatasingh1107/b2b-gtm-skills · 99 skills · 2 · pushed 2026-04-11
What it does when it runs
Framework-based cold email composer with 3 personalization tiers. Generates subject line, body, and follow-up variants. Never uses templates -- builds from frameworks (PAS, BAB, AIDA, Signal-Proof-Ask).
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/capabilities/cold-email-drafter" mkdir -p ~/.claude/skills/cold-email-drafter cp -R "/tmp/b2b-gtm-skills/skills/capabilities/cold-email-drafter/." ~/.claude/skills/cold-email-drafter/
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/capabilities/cold-email-drafter/SKILL.md, which is licensed MIT (repository). 1,011 words, 17 headings.
Cold Email Drafter
Generates personalized cold emails using proven copywriting frameworks. Each email is built from scratch based on lead context, not recycled templates.
Prerequisites
agency.config.jsonpopulated (outreach tone, banned phrases, case studies)- Lead data (company, contact name, title)
- For Tier 3: personalization packet from
personalization-enricher
Phase 0: Intake
Read agency.config.json and gather:
outreach.tone-- writing styleoutreach.banned_phrases-- never include theseoutreach.sign_off-- email signaturecase_studies-- proof points to referenceservices-- what we offer
Gather from user:
- Lead context: company name, contact name, title, company size
- Signal/trigger: what prompted this outreach (funding, job post, community post, gig listing)
- Personalization tier: 1 (basic), 2 (segment), or 3 (hyper-personalized)
- Email position: initial (Touch 1), follow-up (Touch 2-3), or breakup (Touch 4)
- Personalization packet (Tier 3 only): CRO findings, person's recent posts, specific pain points
Phase 1: Framework Selection
Choose the framework based on signal type and email position:
| Signal Type | Touch 1 (Day 1) | Touch 2 (Day 4) | Touch 3 (Day 7) | Breakup (Day 10) |
|---|---|---|---|---|
| CRO issue found | PAS | BAB | Case Study | Respectful close |
| Funding/growth signal | Signal-Proof-Ask | AIDA | Case Study | Respectful close |
| Job posting / hiring | BAB | PAS | Case Study | Respectful close |
| Community post / gig | AIDA | Signal-Proof-Ask | Case Study | Respectful close |
| No specific signal | PAS | BAB | Case Study | Respectful close |
Framework Structures
PAS (Problem-Agitation-Solution)
- Name a specific problem they have (from CRO audit or research)
- Agitate: what it's costing them (lost revenue, missed conversions)
- Solution: how you've fixed this before (case study reference)
- CTA: soft ask
BAB (Before-After-Bridge)
- Before: their current situation (specific observation)
- After: what it could look like (with numbers if possible)
- Bridge: how to get there (your service)
- CTA: soft ask
AIDA (Attention-Interest-Desire-Action)
- Attention: hook referencing something specific about them
- Interest: relevant insight or data point
- Desire: case study or proof of results
- Action: clear next step
Signal-Proof-Ask
- Signal: reference the specific trigger ("saw you just raised Series A")
- Proof: relevant case study or expertise
- Ask: one clear question or CTA
Phase 2: Personalization by Tier
Tier 1 -- Merge Fields (for bulk sends)
- Use: {{first_name}}, {{company_name}}, {{industry}}
- Generic but professional
- One case study reference
- 60-90 words
Tier 2 -- Segment-Based
- Reference industry-specific pain points
- Use company-size-appropriate language (founder vs VP)
- Tailor case study to their industry
- 80-120 words
Tier 3 -- Hyper-Personalized
- Reference their specific CRO issue ("noticed your product pages don't show reviews")
- Reference their personal activity ("loved your LinkedIn post about X")
- Reference the specific signal that triggered outreach
- Connect all three: signal + finding + proof point
- 80-120 words
- This tier requires output from
personalization-enricher
Phase 3: Generate Email
Rules (non-negotiable)
- Subject line: SUPER CATCHY. Under 50 characters, curiosity-driven, attention-grabbing.
Think viral tweet energy, not corporate email. Examples:
- "your product pages are leaking revenue"
- "found something on your store"
- "quick CRO win for [company]"
- "[name], saw your post about [topic]"
- "re: your Shopify store"
- "this might save you 20% in lost sales" DO NOT use: generic greetings, company names only, ALL CAPS, clickbait, spam triggers. Subject line is the single most important part of the email. Spend extra cycles on it.
- Opening: NO filler ("I hope this finds you well", "My name is"). Start with value.
- Body: Max 5 sentences. Lead with their problem, not your service.
- CTA: ONE per email. Soft ask. ("Worth a 15-min look?" / "Open to a quick chat?")
- Sign-off: from
agency.config.json outreach.sign_off - Never include: anything from
outreach.banned_phrases - Each follow-up adds NEW value (never "just bumping this up")
Word Limits by Position
| Position | Day | Words | Tone |
|---|---|---|---|
| Touch 1 (initial) | Day 1 | 60-90 | Direct, value-first |
| Touch 2 (new angle) | Day 4 | 40-60 | Different pain point, brief |
| Touch 3 (case study) | Day 7 | 60-90 | Kibi Sports case study + Plasho's work |
| Breakup | Day 10 | 30-50 | "Not a priority, thanks for your time" |
Follow-Up Rules (Updated 10-Day Cadence)
- Touch 2 (Day 4): New pain point angle, different from Email 1. Threaded as Re:
- Touch 3 (Day 7): Kibi Sports case study with Plasho's work. Show results.
- Breakup (Day 10): "Looks like this isn't a priority right now. Thanks for your time. If things change, we're here." Keep it short, respectful, door open.
- NEVER repeat the same email angle across touches
- Each follow-up MUST add new value
Phase 4: Output
Return JSON:
{
"subject": "email subject line",
"body": "full email body with sign-off",
"framework_used": "PAS",
"personalization_tier": 3,
"personalization_points": ["referenced CRO finding about missing reviews", "mentioned their LinkedIn post about D2C economics"],
"word_count": 87,
"position": "touch_1",
"linkedin_note": "short LinkedIn connection note (under 300 chars, for Tier 2+)"
}
Generate 3 variants for Touch 1 (user picks the best). Single variant for follow-ups.
Phase 5: Output Delivery
No approval gate. Generated content is passed directly to outreach-draft-pipeline for automated delivery.
Optionally log to CRM via crm-writer (Email Drafts tab).
Phase 6: Delivery
All email delivery is via Chrome DevTools MCP -> Zoho webmail:
mcp__chrome-devtools__navigate_pageto Zoho webmail composemcp__chrome-devtools__fillrecipient, subject, bodymcp__chrome-devtools__clicksend button
No Gmail MCP, no SMTP, no CSV export, no manual copy-paste.
Example Usage
Trigger phrases:
- "Draft a cold email for [company/contact]"
- "Write the first touch email for this lead"
- "Generate a follow-up email (touch 3) for [contact]"
- "Write a breakup email for [contact]"
- "Draft emails for these 5 leads"
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.
- cold-email by coreyhaines31 · 46,928
- cold-email-kickoff by growthenginenowoslawski · 668
- cold-email-starter-kit by growthenginenowoslawski · 668
- cold-email-weekly-rhythm by growthenginenowoslawski · 668
- cold-email-verifier by Varnan-Tech · 626
- send-cold-email by Othmane-Khadri · 290
- cold-email-outreach by thatrebeccarae · 130
- cold-email by markster-public · 62
Need help setting it up?
This page tells you what cold-email-drafter 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.