
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.
- Installs
- 52
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/gooseworks-ai/goose-skills --skill email-drafting- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads email-drafting automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
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.
When to Use
Use this skill when:
- User says "write a cold email", "draft outreach", "help me with email copy", "write a sequence"
- Any task requires cold email copy — subject lines, full sequences, or individual emails
Phase 0: Intake
Collect campaign context before writing anything. Ask all questions at once, organized by category. Skip any the user has already answered.
Campaign Context
- What product/service are you selling?
- What problem does it solve? Who feels this pain most acutely?
- What's the campaign angle? (hiring signal, competitor displacement, pain-based, event-triggered, etc.)
- Is there a specific signal or trigger? (job posting, G2 review, LinkedIn engagement, funding round, etc.)
Audience
- Who is the recipient? (title, seniority, department)
- What keeps them up at night? (daily frustrations relevant to your product)
- What objections will they have? (budget, switching cost, "we already have X", timing)
Proof & Credibility
- What social proof do you have? (customer logos, case studies, metrics)
- Name 2-3 peer companies the recipient would recognize as similar to them
- Any hard metrics? (cost savings, speed improvement, % lift)
Tone & Style
- What tone fits? (casual-direct, professional-sharp, provocative, empathetic)
- Who is the sender? (founder, AE, SDR — this affects voice)
- Any brand guidelines or words to avoid?
Sequence
- How many touches? (default: 3)
- What's the desired CTA? (call, demo, reply, resource download)
- 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:
- No filler openers. Never "I hope this finds you well", "I hope you're having a great week", "just reaching out"
- No "just checking in" follow-ups. Every touch adds a new reason to reply
- Max 4 paragraphs per email. Most should be 2-3
- Every email references something specific to the recipient. Title, company, signal, industry — never fully generic
- Exactly one CTA per email. Always low-friction (15-min call, "worth a look?", "open to chatting?")
- Never lie about how you found them. If it was a database search, don't say "I came across your profile"
- No filler words. Ban: synergy, leverage, circle back, loop in, touch base, align, ping
- Subject lines under 50 chars. No caps, no exclamation marks, no emoji
- No selling in the first sentence. Lead with them, not you
- Sign off simply. Name only, or Name + one-line title. No "Best regards", no "Looking forward to hearing from you"
Phase 2: Review & Refine
- Present 3-5 draft variants for Touch 1 (different angles/frameworks)
- Ask user to pick a direction or combine elements
- Generate the full sequence based on chosen direction
- 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]
FAQ
What does the email-drafting 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.
How do I install email-drafting?
Run npx skills add https://github.com/gooseworks-ai/goose-skills --skill email-drafting in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/email-drafting/ (personal) or .claude/skills/email-drafting/ (project).
Which AI agents can use email-drafting?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is email-drafting safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains email-drafting?
It is published by gooseworks-ai in gooseworks-ai/goose-skills. It has 52 recorded installs.
More from gooseworks-ai/goose-skills
restaurant-booking
gooseworks-ai/goose-skills
Book restaurant reservations via browser automation. Use when asked to make dinner reservations, book a table, or find availability at restaurants. Supports OpenTable, Resy, and direct restaurant booking sites.
send-sms-textbelt
gooseworks-ai/goose-skills
Open the skill to read its SKILL.md instructions.
linkedin-outreach
gooseworks-ai/goose-skills
Open the skill to read its SKILL.md instructions.
linkedin-job-scraper
gooseworks-ai/goose-skills
Open the skill to read its SKILL.md instructions.
Popular productivity & automation skills
agent-browser
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.
lark-doc
open.feishu.cn
飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由;/page/ 是妙搭应用,非飞书云文档。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。
lark-base
open.feishu.cn
飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。
lark-drive
open.feishu.cn
飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。
lark-shared
open.feishu.cn
Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling notice JSON.
lark-im
open.feishu.cn
飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。