email-drafting

Write high-converting cold emails using structured frameworks, personalization tiers, and patterns from real campaigns. Pure reasoning skill — no scripts. Auto-loads when any task requires outreach copy.

381 stars

Best use case

email-drafting is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Write high-converting cold emails using structured frameworks, personalization tiers, and patterns from real campaigns. Pure reasoning skill — no scripts. Auto-loads when any task requires outreach copy.

Teams using email-drafting should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/email-drafting/SKILL.md --create-dirs "https://raw.githubusercontent.com/gooseworks-ai/goose-skills/main/skills/capabilities/email-drafting/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/email-drafting/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How email-drafting Compares

Feature / Agentemail-draftingStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Write high-converting cold emails using structured frameworks, personalization tiers, and patterns from real campaigns. Pure reasoning skill — no scripts. Auto-loads when any task requires outreach copy.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Email Drafting

Pure reasoning skill for writing cold emails. No scripts, no tools — just frameworks, patterns, and examples from real campaigns that consistently generate replies.

Auto-loaded by `cold-email-outreach` during Phase 3, or standalone when the user asks for email copy directly.

## When to Auto-Load

Load this skill when:
- User says "write a cold email", "draft outreach", "help me with email copy", "write a sequence"
- An upstream skill reaches its email generation phase
- `cold-email-outreach` invokes Phase 3

## Phase 0: Intake

Collect campaign context before writing anything. Ask all questions at once, organized by category. When called from `cold-email-outreach`, skip questions already answered upstream.

### Campaign Context
1. What product/service are you selling?
2. What problem does it solve? Who feels this pain most acutely?
3. What's the campaign angle? (hiring signal, competitor displacement, pain-based, event-triggered, etc.)
4. Is there a specific signal or trigger? (job posting, G2 review, LinkedIn engagement, funding round, etc.)

### Audience
5. Who is the recipient? (title, seniority, department)
6. What keeps them up at night? (daily frustrations relevant to your product)
7. What objections will they have? (budget, switching cost, "we already have X", timing)

### Proof & Credibility
8. What social proof do you have? (customer logos, case studies, metrics)
9. Name 2-3 peer companies the recipient would recognize as similar to them
10. Any hard metrics? (cost savings, speed improvement, % lift)

### Tone & Style
11. What tone fits? (casual-direct, professional-sharp, provocative, empathetic)
12. Who is the sender? (founder, AE, SDR — this affects voice)
13. Any brand guidelines or words to avoid?

### Sequence
14. How many touches? (default: 3)
15. What's the desired CTA? (call, demo, reply, resource download)
16. Email-only or multi-channel? (email + LinkedIn, email + phone)

## Phase 1: Draft Emails

### Email Structure Formula

Every cold email follows this skeleton:

```
Hook (1 sentence) → Evidence (1-2 sentences) → Offer (1 sentence)
```

**Word count targets:**
- Cold intro (Touch 1): 50-90 words
- Follow-up (Touch 2-3): 30-50 words
- Breakup (final touch): 20-40 words

### Frameworks

Pick the framework that matches the campaign angle:

| Framework | Structure | Best For |
|-----------|-----------|----------|
| **PAS** | Problem → Agitate → Solve | Pain-based signals (complaint posts, operational friction) |
| **BAB** | Before → After → Bridge | Aspirational buyers (growth-stage, scaling companies) |
| **AIDA** | Attention → Interest → Desire → Action | Cold database outreach (no specific signal) |
| **Signal-Proof-Ask** | Signal → Proof → Soft ask | Signal-based campaigns (hiring, engagement, events) |

### Personalization Tiers

Choose based on campaign size and expected ROI per lead:

| Tier | What It Means | Lead Volume | Expected Reply Rate |
|------|---------------|-------------|-------------------|
| **Tier 1 (Generic)** | Merge fields only (`{first_name}`, `{company}`). Same template for everyone. | 500+ leads | 1-3% |
| **Tier 2 (Segment)** | Industry/role-specific pain points + proof swaps. One template per segment. | 50-500 leads | 3-7% |
| **Tier 3 (Deep)** | Reference a specific signal (their post, comment, job posting, news). Unique per lead. | 1-50 leads | 8-20% |

### Subject Line Patterns

8 proven patterns from real campaigns:

| # | Pattern | Example |
|---|---------|---------|
| 1 | **Signal reference** | "Before you fill that [role] role" |
| 2 | **Peer framing** | "What TIA members are doing with AI workers" |
| 3 | **Question** | "Is [Company] still [doing thing product fixes]?" |
| 4 | **Replacement** | "Looking for a [competitor] replacement?" |
| 5 | **Data hook** | "$150K agency study → $8K. 48 hours." |
| 6 | **Empathy** | "When [event that affected them]" |
| 7 | **Direct** | "[Topic] for [Company]" |
| 8 | **Curiosity** | "How [peer company] did [interesting thing]" |

**Rules for subject lines:**
- Under 50 characters
- No ALL CAPS, no exclamation marks, no emoji
- No "quick question" or "touching base"

### Tone Guidance

| Tone | When to Use | Voice Example |
|------|-------------|---------------|
| **Casual-Direct** | SDR sending to peers, startup-to-startup | "Hey — saw your post. We work on the same problem." |
| **Professional-Sharp** | Enterprise outreach, VP+ recipients | "I wanted to reach out because [specific reason]." |
| **Provocative** | Competitive displacement, challenger positioning | "Your current tool is costing you more than you think." |
| **Empathetic** | Orphan capture, pain-based outreach | "I know switching platforms mid-cycle is brutal." |

### Sequence Design Principles

| Touch | Timing | Purpose | Length | Notes |
|-------|--------|---------|--------|-------|
| **Touch 1** | Day 1 | Hook + proof + soft CTA | 50-90 words | The only email that can be longer |
| **Touch 2** | Day 3-5 | New angle or asset | 30-50 words | Different proof point, not a "bump" |
| **Touch 3** | Day 7-10 | Different proof point or social | 20-40 words | Shorter = better this late |
| **Touch 4** | Day 14-21 | Breakup (optional) | 20-30 words | Remove pressure, leave door open |

**Sequence rules:**
- Never repeat the same CTA across touches
- Each touch needs a new reason to reply
- Later touches = shorter emails
- Never send a "just checking in" or "bumping this" — add value or stop

### Hard Rules

These are non-negotiable. Every email must pass all 10:

1. **No filler openers.** Never "I hope this finds you well", "I hope you're having a great week", "just reaching out"
2. **No "just checking in" follow-ups.** Every touch adds a new reason to reply
3. **Max 4 paragraphs per email.** Most should be 2-3
4. **Every email references something specific to the recipient.** Title, company, signal, industry — never fully generic
5. **Exactly one CTA per email.** Always low-friction (15-min call, "worth a look?", "open to chatting?")
6. **Never lie about how you found them.** If it was a database search, don't say "I came across your profile"
7. **No filler words.** Ban: synergy, leverage, circle back, loop in, touch base, align, ping
8. **Subject lines under 50 chars.** No caps, no exclamation marks, no emoji
9. **No selling in the first sentence.** Lead with them, not you
10. **Sign off simply.** Name only, or Name + one-line title. No "Best regards", no "Looking forward to hearing from you"

## Phase 2: Review & Refine

1. Present 3-5 draft variants for Touch 1 (different angles/frameworks)
2. Ask user to pick a direction or combine elements
3. Generate the full sequence based on chosen direction
4. Iterate max 3 rounds — after that, ship it

## Example Library

Real emails from real campaigns. Use these as structural templates — swap product, proof, and signal for the current campaign.

### Type 1: Signal-Based (Hiring)

**Signal source:** LinkedIn Jobs — company posting for role that product replaces
**Framework:** Signal-Proof-Ask

**Subject:** Before you fill that {role_title} role

> Hi {first_name} — I noticed you're hiring for a {role_title} at {company}. Before you finalize that hire, worth a quick look at what companies like DHL, Werner, and MODE Global are doing instead — deploying AI workers for exactly this function.
>
> 4x cheaper than a BPO equivalent. 10x the call capacity. Runs 24/7. Happy to send over a quick overview or jump on a 15-minute call if the timing is right.

**Why it works:** Opens with their specific hiring signal (proves relevance). Names peer companies (social proof). Quantifies the alternative (4x, 10x). Low-friction CTA.

---

### Type 2: Signal-Based (Peer/Association)

**Signal source:** Industry association membership directory
**Framework:** BAB (Before → After → Bridge)

**Subject:** What TIA members are doing with AI workers

> Hi {first_name} — as a TIA member running a serious freight brokerage, you're probably seeing the same thing we are: the best operators are rethinking how they staff carrier-facing functions.
>
> Companies like Werner, MODE Global, and Circle Logistics — TIA members you'd recognize — have already deployed AI workers for carrier calls, check calls, and load coordination. I wanted to reach out because HappyRobot works specifically with freight brokers at this scale.
>
> Worth a 15-minute call to see if it's relevant for {company}?

**Why it works:** Peer framing ("TIA members you'd recognize") creates belonging pressure. Names real members using the product. Positions as industry-specific, not generic.

---

### Type 3a: Signal-Based (Competitor Engagement — Liker)

**Signal source:** LinkedIn Sales Navigator — engaged with competitor company page content
**Framework:** Signal-Proof-Ask

**Subject:** The other side of freight AI

> Hi {first_name} — I noticed you've been following the freight AI space and wanted to reach out. HappyRobot is the other side of that conversation — we're the platform 8 of the top 10 US freight brokers including DHL and Werner run for AI carrier calls.
>
> If you're evaluating options in this space, I'd love to show you what enterprise-grade looks like. 15 minutes?

**Why it works:** Acknowledges their research without calling out the competitor by name in email (saves that for LinkedIn). "Other side of that conversation" is intriguing. Proof point (8 of top 10) is specific and strong.

---

### Type 3b: Signal-Based (Competitor Engagement — Commenter)

**Signal source:** Same as 3a but lead left a comment (higher intent)
**Framework:** Signal-Proof-Ask with comment reference

**Subject:** Re: your comment on freight AI

> Hi {first_name} — I saw your comment on {competitor}'s post about {topic}. That's exactly the problem we work on. HappyRobot powers AI carrier calls for DHL, Werner, and 8 of the top 10 US freight brokers.
>
> If you're actively looking at this, worth 15 minutes to see the other option?

**Why it works:** References their exact comment (Tier 3 personalization). "Actively looking at this" matches their behavior. Even shorter than 3a because higher-intent leads need less convincing.

---

### Type 4: Pain-Based (Commenter)

**Signal source:** LinkedIn post search for pain-language keywords
**Framework:** PAS (Problem → Agitate → Solve)

**For commenters (wrote about the pain):**

> Hi {first_name}, saw your comment on the {source} post about {pain_topic}. "{comment_snippet}..." — that resonated.
>
> We've been working with brokers who had the same issue. HappyRobot handles {relevant_task} so your team doesn't have to.
>
> Worth a quick look?

**For reactors (liked/reacted to pain content):**

> Hi {first_name}, noticed you've been following the conversation around {pain_topic} on LinkedIn.
>
> If {company} is dealing with {specific_pain}, we might be able to help. HappyRobot automates {relevant_task} for freight brokers — no extra headcount needed.
>
> Open to a quick chat?

**Why it works:** Quotes their own words back to them (strongest personalization). Empathetic tone — no hard sell. Short. The reactor version is lighter-touch because the signal is weaker.

---

### Type 5: Competitive Displacement

**Signal source:** G2 reviews (1-star), public complaints, known competitor customers
**Framework:** PAS

**Subject:** UserTesting alternatives in 2026

> {first_name} — I'll keep this short. If you've run into participant quality issues with UserTesting, you're not alone. HubSpot and Glassdoor both moved to Outset after hitting the same wall.
>
> We use Prolific-verified participants instead of a general panel. Different quality tier entirely. Worth 20 minutes to compare?

**Why it works:** Validates their frustration without bashing the competitor. Names companies they'd respect. Explains the "why" behind the switch (Prolific-verified participants). CTA is specific (20 minutes, comparison framing).

---

### Type 6: ABM / Enterprise

**Signal source:** Target account list, vertical-specific research
**Framework:** AIDA

**Touch 1:**
> {first_name} — WeightWatchers cut their per-study research cost from $150K to $8K using Outset's AI-moderated interviews. They run 3x the studies they used to, in half the time.
>
> I put together a quick breakdown of what this could look like for {company}'s {vertical} research. Worth 20 minutes?

**Touch 3 (Day 7):**
> Following up with something concrete — built a rough ROI model using {industry} benchmarks. Even conservative numbers show a 6-8x reduction in per-study cost.
>
> Happy to walk through the math. 15 minutes?

**Touch 5 (Day 14):**
> Last note from me. If research cost or speed isn't a priority right now, totally understand. But if it is — the WeightWatchers and HubSpot numbers are worth seeing.
>
> Open to a quick benchmark call? No demo, just data.

**Why it works:** Leads with a specific customer story and hard numbers. Each touch adds new value (case study → ROI model → benchmark offer). Breakup touch removes pressure. CTA evolves: overview → walk-through → benchmark.

---

### Type 7: Follow-Up Patterns (Touch 2+)

**New angle (not a bump):**
> {first_name} — different angle from my last email. {Peer company} just published results from their first quarter using {product}: {specific metric}. Thought it might be relevant given {company}'s {situation}.

**Asset-led:**
> Put together a one-page breakdown of {topic relevant to them}. No pitch — just data. Want me to send it over?

**Social proof drop:**
> Quick update — {new customer} just went live with us last week. Similar setup to {company}. Happy to share what their onboarding looked like.

**Breakup:**
> I'll keep this short — if the timing isn't right, no worries at all. But if {problem} comes back up, I'm an easy call away. Cheers.

---

### Type 8: Re-engagement (90-Day)

**Signal source:** Outreach log — leads contacted 90+ days ago with no reply, or leads who filled the role your product replaces
**Framework:** Signal-Proof-Ask

> Hi {first_name} — we chatted about 3 months ago when you were hiring for {role}. Curious how it's going. If you're still feeling the pain on {problem}, a few things have changed on our end worth seeing.
>
> 15 minutes to catch up?

**Why it works:** References the original conversation and signal. Acknowledges time has passed. "A few things have changed" creates curiosity without overselling.

## Output Format

When delivering email drafts, use this structure:

### Single Email

```
**Subject:** [subject line]
**Personalization tier:** [1/2/3]
**Framework:** [PAS/BAB/AIDA/Signal-Proof-Ask]
**Word count:** [X words]

---

[Email body with merge fields in {curly_braces}]

---

**Merge fields used:** {first_name}, {company}, {role_title}, ...
```

### Full Sequence

```
## Sequence: [Campaign Name]

**Touches:** [N]
**Personalization tier:** [1/2/3]
**Tone:** [casual-direct / professional-sharp / provocative / empathetic]

### Touch 1 — Day 1
**Subject:** [subject]
**Framework:** [framework]

[body]

### Touch 2 — Day [N]
**Subject:** Re: [original subject] OR [new subject]
**Framework:** [framework]

[body]

### Touch 3 — Day [N]
**Subject:** [subject]

[body]

---

**Merge fields:** {first_name}, {company}, ...
**Notes:** [any special instructions for the outreach tool]
```

Related Skills

early-access-email-sequence

381
from gooseworks-ai/goose-skills

Generate a personalized 7-email onboarding sequence for Goose early access signups. Takes a LinkedIn profile URL and company domain, researches the person and company, classifies their role, and produces all 7 emails ready to send — personalized with real context, not merge tags. Outputs to a Notion database (one row per user, columns for each email). Use this skill whenever someone signs up for Goose early access, when you need to generate onboarding emails for new users, when the user says "generate emails for a new signup", "onboard this person", "add them to the email sequence", or provides a LinkedIn URL with a company domain in the context of the launch. Also use when processing a batch of signups.

cold-email-outreach

381
from gooseworks-ai/goose-skills

End-to-end cold email outreach orchestration. Handles goal alignment, lead selection from Supabase, sequence design, email generation (via email-drafting), campaign setup in the user's chosen outreach tool, and logging. Tool-agnostic — supports Smartlead (default), Instantly, Lemlist, Apollo, or manual CSV export.

signal-detection-pipeline

381
from gooseworks-ai/goose-skills

Detect buying signals from multiple sources, qualify leads, and generate outreach context

seo-content-engine

381
from gooseworks-ai/goose-skills

Build and run an SEO content engine: audit current state, identify gaps, build keyword architecture, generate content calendar, draft content.

outbound-prospecting-engine

381
from gooseworks-ai/goose-skills

End-to-end outbound prospecting: detect intent signals, research companies, find decision-maker contacts, personalize messaging, launch campaign.

event-prospecting-pipeline

381
from gooseworks-ai/goose-skills

Find attendees at conferences/events, research their companies, qualify against ICP, and launch outreach

competitor-monitoring-system

381
from gooseworks-ai/goose-skills

Set up and run ongoing competitive intelligence monitoring for a client. Tracks competitor content, ads, reviews, social, and product moves.

client-packet-engine

381
from gooseworks-ai/goose-skills

Batch client packet generator. Takes company names/URLs, runs intelligence + strategy generation, presents strategies for human selection, executes selected strategies in pitch-packet mode (no live campaigns or paid enrichment), and packages into local delivery packets.

client-package-notion

381
from gooseworks-ai/goose-skills

Package all work done for a client into a shareable Notion page with subpages and Google Sheets. Reads the client's folder (strategies, campaigns, content, leads, notes) and builds a structured Notion workspace the client can browse. Lead list CSVs are uploaded to Google Sheets and linked from the Notion pages. Use when you want to deliver work to a client in a polished, navigable format.

client-package-local

381
from gooseworks-ai/goose-skills

Package all work done for a client into a local filesystem delivery package with .md files and Google Sheets. Reads the client's folder (strategies, campaigns, content, leads, notes) and builds a structured directory with dated deliverables. Lead lists are uploaded to Google Sheets and linked from the markdown files. Use when you want to deliver work to a client in a polished, navigable format without requiring Notion.

client-onboarding

381
from gooseworks-ai/goose-skills

Full client onboarding: intelligence gathering, synthesis into Client Intelligence Package, and growth strategy generation. Phases 1-3 of the Client Launch Playbook.

lead-discovery

381
from gooseworks-ai/goose-skills

Orchestrator that runs first for lead generation requests. Gathers business context via website analysis or questions, identifies competitors, builds ICP, and routes to signal skills with pre-filled inputs.