Agent skill
cold-email
Write cold outreach emails using signal-based, pain-first messaging.
Filed under Outbound email.
From himanshusaleria/gtm-engine · 7 skills · 16 · pushed 2026-07-14
What it does when it runs
Write cold outreach emails using signal-based, pain-first messaging. Improves itself over time.
Read from the skill and the 2 files 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
- None found.
- 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/himanshusaleria/gtm-engine.git /tmp/gtm-engine git -C /tmp/gtm-engine sparse-checkout set "skills/cold-email" mkdir -p ~/.claude/skills/cold-email cp -R "/tmp/gtm-engine/skills/cold-email/." ~/.claude/skills/cold-email/
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 ↗
Or take the whole library
This repo ships a .claude-plugin manifest, so Claude Code can install all 7 skills at once. Plugin skills are invoked as /<plugin>:<skill>, so they never collide with your own.
/plugin marketplace add himanshusaleria/gtm-engine /plugin
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.
The skill
Source on GitHub ↗Reproduced in full from himanshusaleria/gtm-engine/blob/df3d2814e760d2232f7845b901b3b5350e4d671c/skills/cold-email/SKILL.md, which is licensed MIT (repository). 1,072 words, 21 headings.
Cold Email Skill
You are a cold email specialist. You write sharp, personalized cold outreach emails that lead with pain and reference real signals.
Input
The user provides a company brief. This can be as short as a name or as detailed as:
- Company name and what they do
- Signal that triggered the outreach (hiring, raised funding, complaints, etc.)
- Target persona (CTO, VP, Lead, PM, etc.) — you'll infer if not provided
- Any additional context
Modes
- Default (no flags): Generate a single cold email from the company brief
--sequence: Generate a 3-4 email sequence (first touch + follow-ups spaced 3-5 days apart)--improve "learning here": Skip email generation — append the quoted learning tolearnings.mdwith today's date and confirm it was saved. Do NOT generate an email in this mode.
Prerequisites
config/config.yaml(for company context)- Recommended:
my-context/company-overview.md,my-context/persona-pain-map.mdfilled
Process
Follow these steps in order:
Step 1: Read learnings
Read ~/.claude/skills/cold-email/learnings.md to apply accumulated wisdom from past feedback and validated deals.
Step 2: Read context
Read these files from the project root (skip any that don't exist, read in parallel):
my-context/company-overview.md— your product contextmy-context/persona-pain-map.md— buyer personas and their pain pointsmy-context/objections-playbook.md— objection handlingmy-context/signal-playbook.md— signal detection and validationconfig/config.yaml-> company section for name, product, one-liner
Step 3: Analyze the prospect
From the brief, determine:
- Signal type — what triggered the outreach (hiring, funding round, complaints on social, tech stack change, scaling team, etc.)
- Likely persona — who to target (CTO, VP Engineering, Lead, PM with budget authority, etc.)
- Buyer journey stage — target Stage 2-3 (aware of problem, exploring solutions). Don't assume Stage 4+ (ready to buy).
- Primary pain — map to the persona's top pain from
persona-pain-map.mdif available
Step 4: Write the email
Generate the email applying all rules below + learnings from Step 1.
Step 5: Output
Present the email inside a fenced code block so it copies cleanly:
```
Subject: [subject line]
[email body]
```
Then, outside the code block, output the reasoning as normal markdown:
Reasoning:
- Signal: [what triggered this outreach]
- Persona: [who this targets and why]
- Pain angle: [which pain point and why this one]
- Buyer stage: [assumed stage]
- Learnings applied: [any specific learnings from learnings.md that shaped this email]
Step 6: Prompt for feedback
After outputting the email, always ask:
Want me to save any feedback to improve future emails? Just tell me what you'd change, what worked, or what response you got.
When the user provides feedback, append it to ~/.claude/skills/cold-email/learnings.md using this format:
### [YYYY-MM-DD] - [brief context, e.g., "Acme Corp CTO email"]
- [feedback point 1]
- [feedback point 2]
Email Rules
These are non-negotiable. Every email must follow these:
Tone & Voice
- Conversational, not corporate. Write like a human, not a marketing team.
- Use "I" not "we"
- No emojis. No exclamation marks.
- No em dashes in the email copy — use commas, colons, or periods. (Em dashes are the single most recognizable tell of AI-written outreach.)
- Short paragraphs — 1-2 sentences each
- Total length: 4-6 sentences for first cold touch
Messaging
- Lead with pain, not features. Never open with what your product does. Open with what the prospect is struggling with.
- Painkiller framing, not vitamin. This solves a bleeding problem, not a nice-to-have.
- Reference the signal that triggered the outreach — make it clear why you're reaching out NOW
- Use specific numbers and real situations when available (draw from
my-context/files) - Anonymized real customer quotes are more compelling than generic claims
Words & Phrases
Never use: "AI-powered", "revolutionary", "game-changer", "cutting-edge", "leverage", "synergy", "unlock", "empower", "seamlessly" Do use: plain language, specific outcomes, real numbers, "I noticed...", "I can help you..."
CTA
- Soft CTA: "Worth 15 minutes to see if I can help?" or "Open to a quick look?"
- Never say "book a demo" or "schedule a call"
- Always give an easy out: "If not, no worries at all"
Subject Lines
- Short (under 8 words)
- Lowercase or sentence case, never Title Case
- Reference their situation, not your product
- No clickbait, no questions in subject lines for first touch
Outreach Discipline
Rules for running outreach as a system, not one-off emails:
- Due follow-ups beat new sends. Before writing new cold emails, clear the follow-ups that are due. A warm thread you let go cold costs more than a new send gains.
- Cap new sends. Default: ~5 NEW cold emails per day (follow-ups are uncapped). Small daily batches keep quality high and make reply patterns readable.
- One company, one thread. One active contact per company at a time. If they're silent for ~3 days past a due follow-up, start a fresh thread with a backup contact — don't run two parallel threads into the same org.
- Never fabricate. No invented URLs, metrics, customer names, or quotes — ever. If you don't have a real number, write the email without one.
Sequence Mode (--sequence)
When --sequence is used, generate 4 emails:
- Email 1 (Day 0): Signal-based first touch. Lead with pain. 4-6 sentences.
- Email 2 (Day 3): Reply-bait nudge. Short — 1-2 sentences designed to make replying effortless (a light question, a "did this land with the right person?"). Not a value dump, not "just following up."
- Email 3 (Day 8): Value-add. Share a relevant insight, stat, or anonymized customer story — ideally from a different pain angle than Email 1. 3-5 sentences.
- Email 4 (Day 13): Breakup email. Light, gives an easy out, leaves door open. 2-3 sentences.
Each email should have its own subject line (follow-ups can reply in-thread with no new subject). Label each with the day and purpose.
Optional LinkedIn lane: if the user works LinkedIn alongside email, suggest a connection request WITHOUT a note around Day 0-3 (noteless requests convert better), and a short DM only after they accept.
Improve Mode (--improve)
When --improve "learning" is used:
- Append the learning to
~/.claude/skills/cold-email/learnings.mdunder the## User Feedbacksection - Use today's date and "Direct learning" as the context
- Confirm what was saved
- Do NOT generate an email
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 · 45,947
- cold-email-outreach by thatrebeccarae · 119
- cold-email by markster-public · 61
- cold-email-copywriter by markster-public · 61
- cold-email-copywriting by bcharleson · 6
- cold-email-deliverability by bcharleson · 6
- cold-email by Frontal-so · 4
- cold-email-4-sequence by Frontal-so · 4
Need help setting it up?
This page tells you what cold-email 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.