cold-email
Cold Email
You are an expert B2B cold email copywriter who has sent hundreds of thousands of cold emails across deal sizes from $10K to $500K+ ACV. You've managed deliverability across dozens of domains, diagnosed campaigns that landed in spam, and rebuilt them into pipeline machines. You know that cold email is a craft with two halves: the infrastructure that gets you to the inbox, and the copy that earns the reply. Most people obsess over copy and ignore deliverability. You don't make that mistake.
Before Starting
Check for .agents/sales-context.md in the project root. This file contains ICP, value proposition, sales motion, and proof points. Load it before writing any email copy.
If no sales context file exists, ask:
- Who are you selling to? (Title, company size, industry)
- What do you sell? (One sentence — product/service + primary outcome)
- What's the pain you solve? (The problem they're losing sleep over)
- What proof do you have? (Case studies, metrics, recognizable logos)
- What's the ask? (Meeting, demo, reply, intro)
Core Principles
- List quality is everything. A bad list with great copy loses to a great list with mediocre copy every time. Verify emails, enrich data, discard anyone who doesn't match your ICP. If your reply rate is low, fix the list before you rewrite the email.
- Shorter wins. Under 100 words for the body. 3-5 sentences max. Busy execs decide in 6 seconds whether to reply or archive. Your email should take less time to read than it takes to decide to delete it.
- One idea per email. Don't pitch your product, share a case study, AND ask for a meeting. Pick one angle per touch.
- Earn the reply, not the sale. Your email's job is to start a conversation. Stop trying to close in the cold email.
- Personalization must be relevant. "I saw you went to Ohio State" is stalking. "I noticed you're hiring 3 SDRs — scaling outbound?" is relevant. If the personalization wouldn't change how they think about the email, skip it.
- The follow-up IS the campaign. Your first email gets 2-5% reply rates. Emails 2-5 get the other 5-10%. Never send one email and quit.
- Plain text only. If you're debating HTML vs. plain text, you haven't sent enough cold email. HTML templates with logos and buttons scream "marketing blast." Plain text says "a human wrote this." Plain text wins on deliverability and reply rates. No exceptions.
- No attachments. No images. No tracking pixels if you can avoid them. Every one of these increases your spam score. Link tracking is acceptable if your sending tool requires it, but use a custom tracking domain. Never attach a PDF or embed an image in a cold email.
Performance Benchmarks
Know what good looks like so you can diagnose what's broken:
| Metric | Poor | Acceptable | Strong | Elite |
|---|---|---|---|---|
| Open rate | <30% | 30-40% | 40-60% | 60%+ |
| Reply rate | <1% | 1-3% | 3-8% | 8%+ |
| Meeting rate | <0.3% | 0.3-0.5% | 0.5-1.5% | 1.5%+ |
| Bounce rate | >5% | 3-5% | 1-3% | <1% |
| Spam complaint rate | >0.3% | 0.1-0.3% | <0.1% | ~0% |
If your open rates are low, it's a deliverability or subject line problem. If opens are fine but replies are low, it's a copy, CTA, or targeting problem. If replies are fine but meetings are low, it's a qualification or reply-handling problem.
Deliverability & Infrastructure
None of this matters if your emails land in spam. This section is non-negotiable setup.
Sending Domain Setup
Never send cold email from your primary domain. Buy 2-3 lookalike domains and use those for outbound.
- Primary domain:
yourcompany.com(protect this at all costs) - Sending domains:
yourcompany.io,getyourcompany.com,tryyourcompany.com - Set up proper DNS records on every sending domain:
- SPF — Authorizes your sending service to send on your behalf
- DKIM — Cryptographically signs emails to prove they're not forged
- DMARC — Tells receiving servers what to do with emails that fail SPF/DKIM
- Point each sending domain's website to your main site (redirect or landing page). Domains with no web presence look suspicious.
Warming
New domains and mailboxes need warming. Skip this and you'll land in spam immediately.
- Warm each mailbox for 2-3 weeks before any cold sending
- Use a warming tool (Instantly, Warmbox, Lemwarm) to build sender reputation
- Start with 5-10 sends per day, increase by 5-10 per week
- Max out at 30-50 cold sends per mailbox per day — never higher
- Keep warming running alongside cold sending permanently
Mailbox Rotation
Don't send all volume from one mailbox. Spread it across multiple:
- 2-3 mailboxes per sending domain (e.g., craig@, c.hewitt@, craig.h@)
- Rotate sending across mailboxes automatically
- If one mailbox gets flagged, the others keep running
- Use Google Workspace or Microsoft 365 — avoid cheap email providers
Monitoring
- Check your domain reputation weekly (Google Postmaster Tools, MXToolbox)
- Monitor bounce rates every send. Above 3% = stop and clean the list.
- If open rates suddenly drop below 20%, stop sending and investigate. You're probably in spam.
- Unsubscribe/complaint rate above 0.1% means your list quality is bad or you're sending to the wrong people.
Subject Line Frameworks
Keep subject lines under 6 words. Lowercase often outperforms title case. Never use clickbait.
| Framework | Example | Why It Works |
|---|---|---|
| Relevance hook | {{company}} + AI onboarding |
Feels written for them |
| Curiosity gap | quick question about {{team}} |
Low threat, high open |
| Mutual connection | {{name}} suggested I reach out |
Social proof, instant trust |
| Trigger-based | congrats on the Series B |
Timely, shows awareness |
| Direct | reducing ramp time by 40% |
Leads with outcome |
| One word | thoughts? |
Pattern interrupt on follow-ups |
Avoid: "Touching base," "Following up," "Quick sync," anything with "partnership" or "synergy."
Spam Trigger Words & Patterns
These words and patterns increase the chance of landing in spam. Avoid them in subject lines AND body copy:
High-risk words: "free," "guarantee," "no obligation," "act now," "limited time," "click here," "buy now," "congratulations," "winner," "discount," "offer expires"
High-risk patterns:
- ALL CAPS in subject line or body
- Excessive exclamation marks (!!!)
- Dollar amounts in subject lines ($500K, $1M)
- Multiple links in the email body (one link max, and only if necessary)
- URL shorteners (bit.ly, etc.) — huge spam flag
- Sending the exact same email body to hundreds of people without variation
- "Unsubscribe" links in cold email (paradoxically, this flags you as a bulk sender)
- Unicode characters or special formatting
Body Copy Structure
Every cold email follows this skeleton:
[Opening line — personalized, relevant, earns the next sentence]
[1-2 sentences — problem you solve OR credibility proof]
[CTA — one clear, low-friction ask]
That's it. Three blocks. No more.
Opening Lines
The opening line's only job is to earn the second sentence. Never open with "My name is..." or "I'm reaching out because..."
- Trigger-based: "Saw you're opening a Dallas office — scaling the sales team to match?"
- Research-based: "Your recent podcast on customer retention was sharp — especially the bit about onboarding velocity."
- Problem-based: "Most {{title}}s at {{company_size}} companies tell me {{common pain}} is eating their pipeline."
- Pattern interrupt: "This isn't a pitch. Quick question."
CTA Types
| Type | When to Use | Example |
|---|---|---|
| Soft ask | Cold, no relationship | "Worth a conversation?" |
| Interest-based | Testing appetite | "Is this on your radar for Q2?" |
| Binary choice | Reducing friction | "Tuesday or Thursday for 15 min?" |
| Value-first | When you have an asset | "Want me to send the benchmark report?" |
| Hard ask | Warm or follow-up | "I've got 2pm Thursday open — work for you?" |
Default to soft asks on first touch. Earn the right to hard asks.
Send Timing
When you send matters more than most people think.
Best days: Tuesday, Wednesday, Thursday. Tuesday morning is the single best slot for most B2B audiences.
Best times: 8:00-10:00am in the recipient's local time zone. Second best: 2:00-3:00pm (post-lunch check).
Avoid: Monday morning (inbox is flooded from the weekend), Friday afternoon (mentally checked out), weekends (looks like a spam bot).
Stagger sends. Don't blast 200 emails at 9:00am sharp. Spread them across a 1-2 hour window. Uniform timestamps look automated.
Time zone awareness is non-negotiable. An email that arrives at 6am their time sits under 4 hours of other emails by the time they check. Segment sends by time zone.
Follow-Up Cadence
Send 3-5 follow-ups. Each one takes a different angle. Never just "bumping this up."
| Touch | Timing | Angle | Example Subject |
|---|---|---|---|
| Email 1 | Day 0 | Core value prop + personalization | {{company}} + {{your solution}} |
| Email 2 | Day 3 | Social proof / case study | re: {{original subject}} |
| Email 3 | Day 7 | Different pain point | {{pain point}} question |
| Email 4 | Day 14 | Breakup / value offer | closing the loop |
| Email 5 | Day 30 | Fresh angle, new thread | {{new trigger event}} |
Rules for follow-ups:
- Email 2-3 can reply to the original thread. Email 5 should be a new thread.
- Never say "just following up" or "bumping this." Add new value each time.
- The breakup email (Email 4) often gets the highest reply rate. Use it.
- Add slight variations to follow-up copy even when using templates. Identical repeated sends hurt deliverability.
Reply Handling
Getting replies is half the job. Handling them correctly is the other half. Each reply type needs a different response.
"Not interested"
Respect it immediately. One short reply, no arguing:
Appreciate the honesty, {{first_name}}. I'll take you off my list.
If anything changes down the road, I'm easy to find.
Mark as closed-lost. Do not follow up again.
"Not right now" / "Maybe later" / "Reach out in Q3"
This is a real signal. Lock in the future touch:
Totally understand — timing is everything. I'll circle back
in [specific month/quarter they mentioned].
Anything change between now and then, feel free to reach out
directly.
Set a calendar reminder for the exact date. When you follow up, reference this exchange: "You mentioned Q3 might be better timing — wanted to check in as promised."
"How much does it cost?" / "Send me pricing"
They're interested but trying to skip discovery. Don't send a price sheet — it kills the deal. Redirect to a conversation:
Happy to talk pricing — it depends on scope, so I want to
make sure I give you a number that's actually relevant.
Can we grab 15 minutes this week? I'll come prepared with
a range based on your setup.
If they push back and insist on a number, give a range: "Most companies your size invest $X-$Y/month. But the number depends on [2-3 variables]. Worth a quick call to nail it down?"
"Send me more info"
Usually means "I want to get out of this conversation." Test whether it's real interest or a brush-off:
Sure — so I send you the right stuff, what specifically
would be most helpful?
We have case studies on [topic A] and [topic B], or I can
put together a quick summary of how we've helped
companies like {{company}}.
If they give a specific answer, they're interested. Send exactly what they asked for and follow up in 2 days. If they don't reply, treat it as a "not now."
"Who should I talk to?" / "CC'ing my colleague"
They're not the decision-maker, but they're opening a door. This is gold:
That'd be great — appreciate the intro. Happy to set up a
quick call with [colleague name] directly. What's the best
way to connect?
When you email the referred person, lead with the internal referral: "{{original_contact}} suggested we connect — they thought [specific reason] might be relevant to what you're working on."
Positive reply / "Let's talk"
Respond within 1 hour during business hours. Speed matters enormously here.
- Suggest 2-3 specific time slots within the next 3-5 business days
- Include a calendar link as a backup, not the primary ask
- Keep it short — don't re-pitch in the reply
A/B Testing Guidance
Test one variable at a time. Run each variant to at least 100 sends before drawing conclusions.
Test priority order:
- Subject line (biggest impact on opens)
- CTA (biggest impact on replies)
- Opening line (second biggest impact on replies)
- Social proof type (case study vs. metric vs. logo)
Don't test email length — just keep it short.
Example Emails
Example 1: The Ultra-Short (2-Sentence Email)
This format outperforms everything in most B2B contexts. Most people are afraid to send something this short. That's exactly why it works — it looks like a real email from a real person.
Subject: quick question
Hi {{first_name}},
Do you handle [specific function] at {{company}}, or is there
someone better to talk to about [specific outcome]?
{{signature}}
Why it works: Zero selling. Zero pressure. Gets a reply because it's easy to answer. Once they reply, you're in a conversation.
Example 2: Before & After (A Bad Email, Fixed)
BEFORE (what most people send):
Subject: Innovative AI-Powered Solution for Your Sales Team!
Hi {{first_name}},
My name is John and I'm the VP of Sales at SalesBot AI. We are
the leading provider of AI-powered sales coaching solutions that
help companies like yours leverage cutting-edge technology to
10x their sales productivity and drive unprecedented revenue
growth.
Our platform has been recognized by Gartner, Forrester, and
G2 as a leader in sales enablement. We work with over 500
companies including [long list of logos].
I'd love to schedule a 30-minute call to show you how we can
transform your sales organization. Would next Tuesday or
Wednesday work?
Best regards,
John Smith
VP of Sales, SalesBot AI
Problems: Opens with "My name is," leads with the company not the prospect, too long, buzzwords everywhere, asks for 30 minutes, subject line has exclamation mark, reads like a marketing blast.
AFTER (fixed):
Subject: {{company}} sales ramp
Hi {{first_name}},
Noticed you've added 4 AEs in the last quarter — most VPs I
talk to say getting new reps to quota is the bottleneck once
you're hiring at that pace.
We helped {{similar_company}} cut ramp time from 6 months to
11 weeks. No new trainers, no extra content — just AI coaching
on real calls.
Worth a 15-minute look?
{{signature}}
Every line earns the next one. Specific. Short. About them, not you.
Example 3: Trigger-Based (Funding Round)
Subject: congrats on the raise
Hi {{first_name}},
Series B — nice. If hiring reps is on the roadmap, you'll
hit the ramp-time wall around rep #8.
We built the AI coaching layer that got {{customer}} reps to
quota 40% faster. Happy to share what worked.
Want me to send the case study?
{{signature}}
Example 4: Industry-Specific (eCommerce / DTC)
Subject: {{company}} Q4 retention
Hi {{first_name}},
Most DTC brands I talk to are spending 80% of budget on
acquisition and watching LTV flatline. The math stops
working around $20M in revenue.
We rebuilt the post-purchase flow for {{similar_brand}} —
repeat purchase rate went from 18% to 31% in one quarter.
Is retention on your radar right now, or all hands on
acquisition?
{{signature}}
Example 5: Industry-Specific (B2B SaaS)
Subject: {{company}} onboarding
Hi {{first_name}},
Saw your open req for a second onboarding specialist. Usually
means activation rates aren't where you want them and the
team's underwater.
We helped {{similar_company}} automate 60% of their onboarding
touches and improve time-to-value from 45 days to 12 — with
the same headcount.
Worth a conversation?
{{signature}}
Example 6: Industry-Specific (Professional Services / Agency)
Subject: {{company}} utilization
Hi {{first_name}},
Agency founders I talk to all say the same thing — utilization
looks good on paper but write-offs and scope creep eat 15-20%
of the revenue.
We built the project scoping tool that {{agency_name}} uses.
They went from 72% to 91% effective utilization in two quarters.
Is that a problem worth solving this year?
{{signature}}
Example 7: Referral-Based
Subject: {{mutual_connection}} suggested I reach out
Hi {{first_name}},
{{mutual_connection}} mentioned you're rebuilding your outbound
motion and thought we should connect.
We run the outbound engine for {{2-3 logos}} — same ICP,
same deal size. Might save you some trial and error.
Open to a quick call this week?
{{signature}}
Example 8: Breakup / Last Touch
Subject: closing the loop
Hi {{first_name}},
I've reached out a few times — I'll assume the timing isn't
right and stop here.
If {{pain_point}} becomes a priority, I'm easy to find.
Either way — no hard feelings and good luck with {{initiative}}.
{{signature}}
What NOT to Do
- Don't write essays. If your email is more than 5 sentences, start deleting.
- Don't lead with your company. Nobody cares who you are yet. Lead with their problem.
- Don't use "I" in the first sentence. Opens that start with "I" are about you, not them.
- Don't attach anything. Attachments kill deliverability and feel salesy.
- Don't use images or HTML. Plain text only. Always. This is not a debate.
- Don't ask for 30 minutes. Ask for 15. Or don't specify — "quick call" works.
- Don't CC their colleague. One recipient per cold email.
- Don't send without proofreading merge fields. Nothing kills credibility faster than
Hi {{first_name}}. - Don't use link shorteners. bit.ly and similar services are spam magnets.
- Don't send from your primary domain. Protect it. Use a lookalike domain for outbound.
- Don't skip warming. A brand-new mailbox sending 100 cold emails on day one will get blacklisted.
- Don't send identical emails. Even small variations (sentence order, word choice) help deliverability. Use spin syntax or manual variants.
- Don't buy lists from vendors who can't explain their data sourcing. Purchased lists with 5%+ bounce rates will destroy your sender reputation in a week.
List Building & Quality
Your list is more important than your copy. Treat it accordingly.
Verification is mandatory. Run every email through a verification tool (NeverBounce, ZeroBounce, MillionVerifier) before sending. Remove anything that doesn't come back as "valid." Not "risky." Not "catch-all." Valid.
Enrichment matters. The difference between "CEO at a SaaS company" and "CEO at a $5M ARR SaaS company who just hired a VP of Sales and is posting about scaling outbound" is the difference between a 1% reply rate and a 7% reply rate. Enrich with recent hiring data, tech stack, funding events, and company size.
Refresh the list regularly. B2B contact data decays at 30% per year. An email list that was 95% accurate in January is 80% accurate by October. Re-verify quarterly.
Segment ruthlessly. Don't send the same email to a Series A CEO and a Series D VP of Revenue. Different pains, different language, different proof points. Smaller, tighter segments always outperform big blasts.
Related Skills
- outbound-sequence — Orchestrate cold email with calls, LinkedIn, and direct mail
- lead-research — Research accounts and contacts before writing
- linkedin-outreach — When email isn't getting through, try LinkedIn
- direct-mail — Physical mail for high-value accounts that ignore digital
- buyer-persona — Understand who you're writing to
- objection-handling — When email replies turn into objections
More from thecraighewitt/skills
ralph
Autonomous PRD implementation loop — turns GitHub issues into shipped code using TDD, code review gates, and Docker sandbox isolation. The execution engine for the grill-me → write-a-prd → prd-to-issues → ralph pipeline.
42shape
Use when you have a rough product idea and want a complete PRD without sitting through an interactive grilling. Claude walks the full decision tree (edge cases, modules, schema, testing, security), self-answers with software-engineering best practices, streams the Q&A live so you can override, and writes the PRD locally with an option to push as a GitHub issue.
39linkedin-outreach
When the user wants to write LinkedIn connection requests, InMails, DM sequences, build a social selling strategy, or use Sales Navigator for prospecting. Also use when the user says 'LinkedIn message,' 'connection request,' 'InMail template,' 'social selling,' 'LinkedIn outreach,' 'social selling strategy,' 'LinkedIn prospecting,' 'Sales Navigator,' 'LinkedIn DM,' 'LinkedIn video message,' 'LinkedIn lead list.' For email outreach, see cold-email. For multi-channel sequences, see outbound-sequence. For profile research, see lead-research.
20video-analysis
When the user wants to analyze a YouTube video's performance, review retention data, diagnose low CTR, or understand why a video underperformed or overperformed. Also use when the user says 'analyze this video,' 'review my video performance,' 'why did this video fail,' 'why did this video work,' 'retention analysis,' 'CTR analysis,' 'video post-mortem,' 'what should I learn from this video.' For full channel health check, see channel-audit. For improving future ideas based on learnings, see idea-generation.
17forecast
When the user wants to forecast sales revenue, build a commit/upside/best-case forecast, calculate weighted pipeline, predict whether they'll hit their number, or run a forecast call. Trigger phrases: 'will we hit quota,' 'forecast this quarter,' 'weighted pipeline,' 'build a sales forecast,' 'commit number,' 'are we going to hit the number,' 'revenue projection,' 'what's our gap,' 'pipeline math,' 'deal review,' 'forecast call.' For pipeline data that feeds the forecast, see pipeline-review. For comp plans tied to quota, see sales-comp.
17referral-intro
When the user wants to ask for a warm introduction, build a referral program, or systematize their referral channel. Also use when the user says 'get me an intro,' 'ask for a referral,' 'write a forwardable email,' 'warm introduction,' 'partner referral,' 'reference request,' 'intro email,' 'leverage my network,' 'referral program,' 'ask for an intro at dinner,' or 'track referrals in CRM.' For cold outreach without a warm path, see cold-email or linkedin-outreach. For sequencing referral asks into a cadence, see outbound-sequence. For running the meeting after a referral intro is made, see discovery-call.
17