Claude Cold Email: How to Write, Personalise & Send at Scale (2026)
By Kushal Magar · July 6, 2026 · 11 min read
Key Takeaway
Claude Code + SyncGTM MCP compresses the full cold email workflow — research, personalise, verify, send — into a 15-minute terminal session. GTM teams using enrichment signals report 8–15% reply rates vs. the 3.4% industry average.
TL;DR
- Claude Code connects to SyncGTM via MCP and researches, personalises, and sequences cold emails end to end inside the terminal — no copy-pasting between tools.
- The workflow: find prospects → enrich contacts → verify emails → write personalised copy → push to Instantly or Smartlead.
- Email verification before writing cuts bounce rates below 3% and protects sender reputation — skip it and deliverability collapses within weeks.
- Personalisation anchored to a real signal (new role, funding round, tech stack) consistently returns 8–15% reply rates vs. the 3.4% industry average.
- A 50-prospect list goes from raw names to verified, sequenced, platform-ready in under 15 minutes. Manual equivalent: 4–5 hours.
Overview
Claude cold email is outbound email written and personalised by Claude Code — Anthropic's agentic AI — using live enrichment data, not templates. Nobody else is doing this end to end.
A typical SDR spends 30–45 minutes per prospect: researching LinkedIn, reading recent news, finding verified contact details, writing something that doesn't read like a template. Claude Code compresses that to under 30 seconds — with personalisation that references actual signals, not just a first name.
This guide covers the full end-to-end workflow. SyncGTM's MCP server gives Claude Code direct terminal access to prospect enrichment, job change detection, and email verification. From there, Claude Code writes the emails and pushes the finished sequences directly to Instantly or Smartlead.
No switching between tabs. No manual CSV exports. No copy-pasting into a campaign builder. The whole loop runs in the terminal.
If you're earlier in the journey — still figuring out which tools your team needs — our SDR tools for prospecting guide covers the full stack before you start wiring them together.
Why Claude Cold Email Outperforms Every Other AI Approach
Standard AI writing tools are text generators. They take a prompt and return copy. They can't research a prospect, pull their LinkedIn activity, check whether they changed jobs last month, verify their email address, or push a sequence to your sending platform.
Claude Code is a different category. It's an agentic tool that runs in the terminal, connects to external services via MCP (Model Context Protocol), reads and writes files, runs scripts, and calls APIs. It doesn't just write the email — it does everything that needs to happen before and after the email.
According to McKinsey's State of AI in Sales, AI-enabled teams reduce non-selling time by 30–40%. Claude Code sits at the top of that stack — it's the orchestration layer that connects data, personalization logic, and outbound execution.
The performance gap is real. Instantly's benchmark data puts the average cold email reply rate at 3.43%. Campaigns using advanced signal-based personalisation consistently return 8–15%. The difference is specificity — referencing something that happened to this person this month, not a generic pain point that applies to everyone in their role.
SyncGTM's MCP server is what gives Claude Code that specificity. It connects Claude to verified contact data, job change signals, tech stack detection, and funding events — all in real time, from the terminal.
For a broader look at how Claude Code fits into sales workflows, our Claude Code for sales teams guide covers team-wide rollout including prompt libraries and onboarding sprints.
Step 1: Research Prospects with SyncGTM MCP
With SyncGTM's MCP server connected to Claude Code, prospect research runs inline — no browser, no spreadsheet, no copy-paste. Claude Code calls SyncGTM tools directly and saves structured output to a file.
Finding Prospects in Your ICP
Start by building the list. Give Claude Code a natural-language ICP definition and let it call find_people:
Find 30 prospects matching this ICP using find_people:
Title: VP of Sales or Head of Sales
Company size: 50–200 employees
Industry: B2B SaaS
Funding: Series A or Series B (raised in last 12 months)
Return: full name, title, company name, LinkedIn URL, company domain.
Save to prospects-raw.csv.Claude Code calls the MCP tool, paginates through results, and writes a clean CSV without you touching a spreadsheet.
Enriching Each Prospect
Raw prospect data isn't enough. You need verified contact details and the signals that make personalisation specific. Claude Code calls enrich_person on each row:
For each row in prospects-raw.csv, call enrich_person using their LinkedIn URL.
Pull: work email, mobile number, LinkedIn headline, current title, company headcount,
recent LinkedIn posts (last 30 days).
For each company domain, call enrich_organization to get:
latest funding round, funding date, headcount growth rate, tech stack.
Save enriched output to prospects-enriched.csv.
Flag any row where work_email is missing.Detecting Job Change Signals
New-role emails see 2–3x higher reply rates than standard cold outreach, per SyncGTM customer benchmarks. Someone who just moved into a VP of Sales seat is actively evaluating tools. Run check_job_change before writing a single email:
For each LinkedIn URL in prospects-enriched.csv, run check_job_change.
Flag anyone who started a new role in the last 90 days.
Add column: job_change_signal (true/false), days_in_role.Claude Code adds those flags to your enriched CSV. The writing step will reference them automatically.
For teams enriching larger lists or building ongoing enrichment pipelines, our Claude Code firmographic data guide covers batch enrichment at scale with caching and incremental updates.
Step 2: Verify Email Addresses Before You Write
Never skip verification. A bounce rate above 3% damages sender reputation and can get your sending domain flagged within weeks. Verifying before writing ensures you spend compute time only on deliverable contacts.
Claude Code calls SyncGTM's verify_email tool on each address returned from enrichment:
For each row in prospects-enriched.csv where work_email is not empty:
Call verify_email with the work_email address.
Keep only rows where status == "valid".
For rows where status == "risky" or "catch-all", call find_work_email
using first_name, last_name, and company_domain to find an alternative.
Save clean list to prospects-verified.csv.
Log: total verified, removed, fallback found.A clean list from a 30-prospect ICP search typically returns 22–26 valid addresses. The 4–8 removed now saves your domain from a deliverability spiral later.
If find_work_email can't find an alternative for a removed contact, drop them. No verified address, no email. Quality over volume — always.
Step 3: Write Hyper-Personalised Emails in Batch
Now Claude Code reads the verified, enriched list and writes a complete 3-touch sequence for each prospect. It references the enrichment signals — not generic industry pain points.
The prompt structure that produces the best results:
You are writing cold email sequences for [COMPANY_NAME].
Product: [one-sentence description]
ICP: [VP of Sales at Series A/B B2B SaaS, 50–200 employees]
Key differentiator: [specific, quantifiable claim]
Tone: Direct. Conversational. No corporate filler.
Read prospects-verified.csv. For each prospect, write a 3-touch sequence.
Email 1 (Day 0):
- Open with the most specific signal available (job_change_signal=true →
"Congrats on the new role", funding event → reference the raise,
tech stack match → reference the tool they use).
- One clear problem statement tied to their current context.
- Single CTA: "Worth a 15-minute chat this week?"
- Max 80 words. No "I hope this email finds you well."
Email 2 (Day 4):
- Add one concrete proof point (stat, customer result, benchmark).
- Reference Email 1 briefly: "Following up on my note last week."
- Different CTA: link to a relevant resource or case study.
- Max 70 words.
Email 3 (Day 9):
- Break-up frame. Short. Direct.
- Example: "Is pipeline automation on [COMPANY]'s radar for this quarter,
or should I circle back in Q4?"
- Max 40 words.
Output format: JSON array.
Each object: { email, subject_1, body_1, subject_2, body_2, subject_3, body_3 }
Save to sequences.json.Claude Code processes the full list in a single pass. 30 verified contacts → 30 complete 3-touch sequences → one JSON file ready for import.
Review 5–10 sequences before sending. Spot-check that signals are referenced accurately and that body copy doesn't drift into generic territory. The two-step process — Claude drafts, you approve, you send — catches hallucinations before they reach a prospect's inbox.
For subject line frameworks that lift open rates before the personalisation even lands, our cold email subject line guide covers what's working in 2026 with real open rate data.
If you need copy templates for specific personas — founders, VP of Sales, RevOps leads — our personalised sales email templates gives you 20 proven starting points to feed Claude Code as style references.
Step 4: Push Sequences to Instantly or Smartlead
Once sequences.json is reviewed, Claude Code writes and runs the API push. You provide the API key and campaign ID; Claude Code handles the rest.
Pushing to Instantly
Read sequences.json.
For each contact object, call the Instantly API:
POST https://api.instantly.ai/api/v1/lead/add
Headers: { Authorization: Bearer [INSTANTLY_API_KEY] }
Body: {
campaign_id: "[YOUR_CAMPAIGN_ID]",
skip_if_in_workspace: true,
leads: [{
email: contact.email,
firstName: contact.first_name,
lastName: contact.last_name,
variables: {
subject_1: contact.subject_1,
body_1: contact.body_1,
subject_2: contact.subject_2,
body_2: contact.body_2,
subject_3: contact.subject_3,
body_3: contact.body_3
}
}]
}
Log: total added, any errors.
Save run log to push-log.txt.Pushing to Smartlead
Read sequences.json.
For each contact object, call the Smartlead API:
POST https://server.smartlead.ai/api/v1/leads
Headers: { Authorization: Bearer [SMARTLEAD_API_KEY] }
Body: {
campaign_id: "[YOUR_CAMPAIGN_ID]",
lead_list: [{
email: contact.email,
first_name: contact.first_name,
last_name: contact.last_name,
custom_fields: {
subject_1: contact.subject_1,
email_body_1: contact.body_1,
subject_2: contact.subject_2,
email_body_2: contact.body_2,
subject_3: contact.subject_3,
email_body_3: contact.body_3
}
}]
}
Log success and failure counts to push-log.txt.Claude Code writes the actual script, runs it, and logs the result. If any contact fails to push (duplicate email, API rate limit), the log captures it for manual review.
Both platforms support custom variables in sequence copy — make sure your campaign is configured with matching variable names before the push. Claude Code will warn you if it detects a variable name mismatch during the dry run.
Prompt Templates That Actually Work
These are minimal starting points. Customise the product description, ICP, and differentiator for your use case.
New-Role Opener (Highest Reply Rate)
Subject: Congrats on the [TITLE] role, [FIRST_NAME]
Hey [FIRST_NAME],
Saw you recently joined [COMPANY] as [TITLE] — congrats.
Most new [TITLE]s I talk to inherit a pipeline that's built on manual research
and stale data. [PRODUCT] fixes that — we pull enriched, verified contacts
from 50+ sources in one pass so your team spends time selling, not researching.
Worth a quick call this week?
[SENDER_NAME]Funding Round Opener
Subject: [COMPANY]'s Series [X] — building the outbound team?
Hey [FIRST_NAME],
Congrats on the [FUNDING_AMOUNT] raise. Growth rounds usually mean
aggressive outbound hiring — and the team you're building needs
verified, signal-rich data to hit quota from day one.
[PRODUCT] gives your reps 76+ enrichment data points per contact,
waterfall-verified from 10+ providers. Teams see 3x faster ramp time.
15 minutes to show you how it works?
[SENDER_NAME]Tech Stack Opener
Subject: Your [COMPETITOR_TOOL] setup + a faster alternative
Hey [FIRST_NAME],
Noticed [COMPANY] is running [COMPETITOR_TOOL] for prospecting.
Common complaint we hear: hit rate drops after the first 30% of a list.
[PRODUCT] runs waterfall enrichment — if one provider misses,
the next 9 try. Average hit rate is 87% vs. 40–60% for single-source tools.
Happy to run a free test on your next list. Interested?
[SENDER_NAME]For a deeper library of copy styles by role and industry, see our personalised email templates and Claude Code cold email automation guide.
What to Expect: Benchmarks
| Metric | Industry Average | Claude Code + SyncGTM MCP |
|---|---|---|
| Reply rate | 3.4% | 8–15% |
| Open rate | 35–45% | 55–70% |
| Bounce rate | 5–8% | <3% (post-verification) |
| Time to build 50 sequences | 4–6 hours (manual) | 10–15 minutes |
| Personalisation depth | Name + company only | Signal-based (role, funding, tech) |
Industry averages sourced from Instantly's benchmark report and Salesforce's State of Sales report. Claude Code + SyncGTM figures based on SyncGTM customer benchmarks where enrichment + signal data was used before sending.
Results vary by industry, ICP match, and sending infrastructure. A properly warmed domain with 3–5 sending accounts is the floor for these numbers to hold.
For teams building out the full outbound stack, our B2B sales automation guide covers which parts of the workflow to automate first and which to keep human.
Conclusion
The cold email problem has never been volume. It's always been specificity at scale.
Claude Code + SyncGTM MCP solves that. Research runs in the terminal, not in a browser tab. Enrichment calls run inline, not in a spreadsheet. Verification runs before writing, not after a bounce report tells you your domain is flagged. And the finished sequences push directly to Instantly or Smartlead without a single manual step.
The full workflow — find, enrich, verify, write, push — runs in under 15 minutes for a 30-person list. Manual equivalent is a half-day of SDR time.
The teams hitting 8–15% reply rates aren't sending more emails. They're sending better ones, to the right people, at the right moment. That's what signal data makes possible.
Start free on SyncGTM — connect the MCP server to Claude Code and run your first enriched sequence this week.
