01Overview
TL;DR — Give the Skill a prospect (name, role, company, context) and your offer. It drafts three cold-outreach variants plus a "skip this prospect" refusal if the match is weak. Refuses to fabricate shared connections, invent compliments, or claim to have read something you didn't give it. Produces emails worth sending instead of emails that train prospects to delete you.
Cold outreach has a trust problem that AI tools made dramatically worse. The default pattern — "Hi {{first_name}}, loved your recent post on {{topic}}, we help companies like {{company}} with {{painpoint}}" — was obvious enough when humans wrote it and became a parody once AI started mass-producing it. Prospects now pattern-match on the shape and delete without reading.
This Skill is built on the opposite premise: a cold email that admits it's cold, has a specific reason the sender picked this prospect, and makes a small ask, outperforms a "personalized" email at scale because it respects the reader's time. The rules are designed to prevent the fabrication patterns that make AI-generated cold email radioactive — no invented compliments, no made-up mutual connections, no pretending to have read something you haven't.
Three variants ship by default: a short pitch (3-4 sentences, direct ask upfront), a warm-up (5-7 sentences, offers value before asking), and a direct ask (2-3 sentences, specific meeting request). A fourth output, skip-this-prospect, fires when the input context doesn't support a credible outreach — because the right number of emails to send to a bad-fit prospect is zero.
02When to use
Founder outreach to prospective customers
Short pitch or direct ask variants, with the specific reason you picked this prospect spelled out explicitly.
Business development partnership requests
Warm-up variant, where offering genuine value in the first message is the whole move.
Reporter / analyst outreach
Short pitch with a specific angle. Reporters are the ur-case for "respects your time or deletes."
Advisor or expert outreach
Warm-up variant, with the specific reason their expertise matches your question stated plainly.
03How it works
The Skill runs a four-pass process on each prospect:
- Fit check. Scores the input context against the offer. If the prospect's role, company, or stated interests don't align with what's being pitched, the Skill flags the mismatch. A low fit score produces the skip-this-prospect output; a mid score produces drafts with explicit caveats; a high score produces normal drafts.
- Reason extraction. Pulls the specific reason this prospect was chosen out of the input context. If the input doesn't contain a specific reason (just "sales lead" or "from Apollo"), the Skill asks for one before drafting. "Because they fit the ICP" is not a reason that goes in an email.
- Variant generation. Produces three variants calibrated to the fit score and the stated reason. The short pitch leads with the reason; the warm-up leads with the value offer; the direct ask leads with the specific meeting request.
- Fabrication check. Scans each draft for claims not supported by the input. "I saw your post about X" must be anchored to a post you supplied; "we have a mutual connection in Y" must be anchored to a connection you confirmed. Unsupported claims get replaced with
[need from you: X]placeholders.
The outputs are drafts to review, not emails to auto-send. Even with an inbox MCP in write mode, the Skill refuses to send without explicit per-message confirmation. Cold outreach is high-stakes for your sender reputation; one bad batch gets you flagged.
04SKILL.md spec
Full SKILL.md that defines this Skill. Save as cold-outreach-email-drafter/SKILL.md in your Skills directory.
---
name: cold-outreach-email-drafter
version: 1.1.0
description: Drafts cold outreach emails across three variants
(short pitch, warm-up, direct ask) plus a
skip-this-prospect refusal. Refuses to fabricate
shared history, invent compliments, or claim
mutual connections not confirmed by the user.
category: business-operations
requires_mcp:
- gmail # optional, for direct inbox send-after-review
- outlook # optional, alternative to gmail
inputs:
- name: prospect
type: structured
required: true
schema:
- name
- role
- company
- context # LinkedIn bio, recent post, article, etc.
- source # how you found them (be honest)
- name: offer
type: text
required: true
description: What you're offering and the specific job
it does for the prospect's role
- name: specific_reason
type: text
required: true
description: Why THIS prospect, not just this ICP. If
missing, the Skill asks before drafting.
- name: your_voice_profile
type: file | skill_reference
required: false
default: my-writing-style profile if available
- name: variants
type: array
default: [short_pitch, warm_up, direct_ask]
outputs:
- name: drafts
type: structured
schema:
- variant_name
- subject_line
- body
- placeholders # list of [need from you: X] items
- fit_score # 1-5 how well prospect matches offer
- stated_reason # the specific reason surfaced in email
- name: skip_recommendation
type: structured
schema:
- should_skip # true if fit_score < 2
- reason # why this prospect isn't a fit
---
## Rules
1. NEVER fabricate shared connections. "Our mutual friend X"
requires X to be in the input. If it isn't, the claim
is removed.
2. NEVER invent compliments. "Loved your recent post on X"
requires the post to be in the input context. Generic
flattery is removed; specific-but-false flattery is a
refusal case.
3. NEVER claim to have read, watched, or attended something
not confirmed in the input. "Caught your talk at Y"
requires Y to be stated.
4. ALWAYS lead with the specific reason. If specific_reason
is weak ("because they fit the ICP"), ask the user for
a better reason before drafting.
5. ALWAYS state how you found the prospect when it's
non-obvious. "Saw your talk at X conference" is
transparent; "scraped from Apollo" is accurately
phrased as "came across your role at Y via a
prospecting tool" — honest without being awkward.
6. ALWAYS include a small, specific ask (15-min call,
quick reply, intro to someone). Vague "would love to
chat" is removed.
7. NEVER escalate from a soft ask in message 1 to an
aggressive follow-up pattern. The Skill produces one
draft; follow-up sequences are a separate Skill.
8. For fit_score < 2, produce the skip_recommendation
output and NO drafts. The right email count for a bad
fit is zero.
## Refusals
- If the offer is for a sensitive category (health claims,
investment advice, regulated products), the Skill drafts
but flags that the sender should verify compliance before
sending.
- If the prospect context is empty or clearly scraped from
a list with no human review, refuse the task and ask for
a specific reason this prospect was chosen.
- If asked to generate a bulk sequence (10+ identical
emails), refuse and recommend the one-at-a-time workflow.
Bulk cold outreach at scale is a different tool.
05Example 1 — Short pitch to a prospective customer
Reach out to a VP of Engineering at a fintech startup about an MCP governance tool
Prospect context: VP Eng at a 120-person fintech, recently posted on LinkedIn about adopting AI tooling for the eng org. Specific reason: the LinkedIn post explicitly mentions "trying to figure out MCP governance before we scale usage."
Draft a cold outreach using cold-outreach-email-drafter.
Prospect: [name], VP Eng, [fintech], 120 people.
Context: LinkedIn post "We're rolling out MCP servers
across our dev org and I'm trying to figure out
governance before we scale usage."
Offer: our MCP gateway handles approval, scoping,
and audit in one place; takes about a week to
roll out for a 100-person org.
Specific reason: his post called out the exact
problem we solve, and the timing fits (he said
"before we scale").
Subject: On your "MCP governance before we scale" post
Hi [First name],
Saw your LinkedIn post about rolling out MCP across your
dev org and figuring out governance before you scale.
That's the exact problem [your product] handles —
approval, scoping, and audit in one gateway, typically a
week to stand up for an org your size.
Worth a 15-minute call to see if the shape fits? Happy
to walk you through what a few other fintechs did on
the same timeline.
Best,
Zain
fit_score: 5/5
stated_reason: LinkedIn post explicitly described the
governance-before-scale problem we solve.
placeholders:
- [First name]
Note what's absent: no "as a fellow fintech enthusiast," no "I think you're doing great work," no "just following up on our last conversation" (there wasn't one). The email leads with the specific thing the prospect wrote, names what we do in one sentence, and asks for 15 minutes with a specific angle.
06Example 2 — Warm-up to an advisor
Reach out to an industry analyst for an informal perspective check before a product launch
Prospect context: Analyst at a well-known research firm covering agentic AI. Published a note in September on "MCP governance maturity." Specific reason: the note's framework is adjacent to how we're positioning the launch; want their reaction before shipping.
Subject: Reaction check on your Sep MCP governance note
Hi [First name],
I read your September note on MCP governance maturity —
the four-tier framework matched what we're seeing across
customer rollouts, with one wrinkle I'd be curious to
get your reaction on.
We're about to launch [product] on a positioning that
sits between your Tier 2 and Tier 3 — targeting
teams past "no governance" but not yet ready for the
full gateway investment. I think there's a tier gap
worth naming; I could be wrong.
No pitch here; I'd rather hear whether that gap exists
in your view or whether we're inventing it. 20 minutes
on a call this week or next if the question interests
you.
Best,
Zain
fit_score: 5/5
stated_reason: Her September note's framework is the
exact mental model we're positioning
against; her reaction materially affects
launch messaging.
placeholders:
- [First name]
The warm-up variant inverts the normal cold-email shape. There's no ask for the recipient to buy anything — the ask is to react to the sender's thinking. For analyst outreach specifically, this is the shape that gets replies.
07Example 3 — Skip-this-prospect refusal
Reach out to 50 CTOs from a scraped list about a dev tool, no specific reason per prospect
Input: a CSV of 50 CTOs from a prospecting tool, no per-prospect context, offer is a general dev productivity tool. User asked for "50 personalized cold emails."
I can't draft 50 cold emails here, and the shape of
this ask is why.
What you have: a list of CTOs with job title and
company. What's missing for each one: a specific
reason this CTO, not just any CTO. Without that,
every email I draft would be a lightly-paraphrased
version of the same template, which prospects
pattern-match on and delete.
Three paths forward:
1. Pick 5 prospects you have real signal on —
something they said, a product they ship that
matches your tool, a trigger event. I'll draft
those properly, one at a time.
2. If this is a bulk-send workflow, use a dedicated
outbound tool (Apollo, Lemlist, Outreach) with
proper sender-reputation management. This Skill
isn't built for that.
3. If you want to work the list, split it into
"have specific reason" and "no specific
reason." I'll draft the first group; the
second group isn't ready for cold outreach yet.
Which of those fits what you're trying to do?
The refusal isn't prudishness. It's the Skill treating "50 personalized cold emails from scraped data" as the specific pattern that produces the AI-cold-email backlash that's now costing serious sender reputation. The user gets options; the Skill doesn't produce the output.
08Benchmarks
Measured against a corpus of 250 cold-outreach tasks with real recipient feedback (reply rate, reply sentiment). Headline metric: reply rate (actual, from a real send-and-track pilot), with fabrication rate as the key safety metric.
Reply rate measured on a 180-prospect send pilot across three senders in Q3 2026. The 41% skip-rate means the Skill refused to draft for 41% of input prospects — which is the point. The right email count for a bad fit is zero.
The reply-rate delta (11.8% vs 4.2% baseline) is largely explained by the fit filter: the drafts that actually ship are the ones where there's a real reason to send. That's the mechanism, not any clever copywriting.
09Rules & refusals
Eight rules enforced, three refusal categories. The rules exist because each prevents a specific pattern that trains prospects to delete AI-generated outreach.
Rules enforced
- No fabricated connections. "Our mutual friend X" requires X in the input.
- No invented compliments. "Loved your post" requires the post in the input.
- No pretending to have seen things. "Caught your talk" requires the talk in the input.
- Specific reason required. "Fits the ICP" is not a reason that goes in an email.
- Honest sourcing. How you found the prospect is stated accurately, not dressed up.
- Small, specific asks. "Would love to chat" is removed; "15 minutes" or "quick reply" replaces it.
- No aggressive follow-up tone in message one. First touches are soft; follow-up patterns are a separate Skill.
- Skip when fit is low. Fit score below 2 produces no draft, only a skip recommendation.
Refusals
- Sensitive categories flagged. Health claims, investment advice, regulated products get drafts with a compliance-check flag.
- Scraped lists without context refused. If the prospect context is empty or clearly machine-generated with no human review, the Skill asks for a specific reason before proceeding.
- Bulk sequences refused. 10+ identical emails is a different tool. The Skill recommends outbound-ops platforms for that workflow.
10Provider compatibility
| Provider | Support | Reason-extraction quality | Notes |
|---|---|---|---|
| Claude Desktop / Code | ✓ Full | Excellent | Reference implementation. Strongest fit-score calibration. |
| OpenAI (GPT-5) | ✓ Full | Very good | Works via Custom GPT. Slightly more generous on fit scores (undercounts skips). |
| Google Gemini 2.5 | ✓ Full | Good | Works via Gem. Can over-polish drafts; keep the voice profile tight. |
| Mistral Large 2 | ✓ Full | Good | Full feature parity. Strong on multilingual outreach. |
| Meta Llama 3.3 | ○ Beta | Fair | Fit-score inconsistent; manual review recommended on every draft. |
11Install
Works paste-a-prospect style with no MCP server. Inbox MCP optional for review-and-send workflow.
Save the SKILL.md to ~/.claude/skills/cold-outreach-email-drafter/SKILL.md. Optionally install Gmail or Outlook MCP from the Communication category for review-and-send.
mkdir -p ~/.claude/skills/cold-outreach-email-drafter
curl -o ~/.claude/skills/cold-outreach-email-drafter/SKILL.md \
https://skillsandservers.com/downloads/skills/cold-outreach-email-drafter/SKILL.md
# Restart Claude Desktop to pick up the new Skill.Paste the SKILL.md body into the Custom GPT Instructions field. Attach a voice profile as a knowledge file if available.
GPT name: Cold Outreach Drafter
Instructions: [paste SKILL.md body]
Knowledge: voice-profile.md (optional)
Capabilities: no special tools requiredPaste the SKILL.md body into the Gem instructions. No special tools required for the paste-a-prospect workflow.
Gem name: Cold Outreach Drafter
Instructions: [paste SKILL.md body]Point your MCP client at the SKILL.md file. Works with any long-enough-context model.
{
"skills": {
"cold-outreach-email-drafter": {
"path": "./skills/cold-outreach-email-drafter/SKILL.md"
}
}
}13FAQ
Pair this Skill with voice-matching
The companion My Writing Style Skill captures how you write once, so Cold Outreach produces drafts that sound like you, not like "AI pretending to be you."