How I Use Claude to Write Personalized Cold Email Sequences in Minutes
Faraz Ahmed

Yes, Claude can write cold email sequences that get replies, but not the way most people use it. Pasting “write me a cold email for a marketing agency” into a chat window produces the same generic output everyone else is sending, and prospects can smell it. The workflow that works treats Claude as a system you configure once, with your proof points, tone rules, and messaging logic encoded, and then feed with structured prospect data. Configuration once, generation in minutes, quality that holds at hundreds of prospects.
I generate sequences for client campaigns this way weekly, so this post is the actual architecture, not a prompt listicle.
Why most AI cold email is bad
The failure has a specific shape. Generic prompt in, generic email out: “I hope this email finds you well. I noticed your company is doing impressive work in the software space.” Every phrase is technically fine and collectively dead, because the model was given nothing specific to work with and no rules about what not to do.
Three inputs separate usable AI copy from filler:
Structured prospect data. Not “a SaaS company,” but the row-level facts: name, role, company, headcount, the signal that put them on the list, a research note about what the company does.
An encoded point of view. Your proof points with real numbers, your positioning, the specific problem you solve, and the angles that map to each prospect type.
Explicit negative rules. What the model must never do: no “I hope this finds you well,” no flattery openers, no fake familiarity, no exclamation marks, length caps per email. Models follow negative constraints well when they are stated, and drift into slop when they are not.
The system, step by step
Step 1: Build the context document once
Before any generation, write a single reference document containing: your offer in one paragraph, three to five proof points with hard numbers, your ICP segments and the pain each one carries, tone rules (sentence length, formality, banned phrases), and two or three example emails you consider excellent. This document is the difference between Claude writing as a stranger and Claude writing as your best copywriter. In Claude, this lives naturally in a Project’s custom instructions or, for repeatable workflows, a Skill that loads automatically.
Step 2: Prepare structured input, not prose
The generation quality tracks the input structure. We feed prospects as rows, straight from a Prospeo export or a Clay table, with consistent columns: first name, role, company, industry, headcount, the trigger signal, and one enrichment note. A CSV of 200 prospects with clean columns beats 200 paragraphs of description, and it lets Claude apply per-segment logic consistently.
Step 3: Encode hook priority logic
This is the step almost everyone skips. Rather than asking for “personalization,” define an ordered hierarchy of hooks and let the model select the strongest available one per prospect:
If there is a trigger signal (new role, funding, hiring spike), lead with its implication.
Else if the enrichment note contains something specific about the company, lead with that.
Else lead with the sharpest role-plus-industry pain statement.
This produces personalization that degrades gracefully. Prospects with rich data get sharp, specific openers. Prospects with thin data get a strong generic-for-their-role opener rather than a strained reference to something trivial, which is the classic AI personalization failure.
Step 4: Generate the full sequence with structural rules
We generate a 5-touch sequence per prospect: three emails plus two LinkedIn messages, each with its own job. Email one earns a reply with a question, not a meeting ask. Email two adds a proof point from a different angle. Email three is a short, graceful close of the loop. LinkedIn touches are conversational and under 60 words, sequenced through HeyReach alongside the email track in Smartlead or, for teams that want both channels in a single tool, Lemlist.
Every structural rule lives in the prompt: word caps per touch, one idea per email, no bullet lists in cold emails, the specific calendar link, and the sender persona for each account.
One 2026 development worth knowing: HeyReach now ships an MCP and a CLI, which means Claude can talk to it directly. In practice, that lets an agent split lead lists, create LinkedIn campaigns with the generated messages, tag replies by sentiment, and push them to your CRM, without you copy-pasting between tools. The generation workflow described here and the campaign execution layer are converging into one conversation.
Step 5: Review like an editor, not a reader
AI output review has a specific discipline. Spot-check 10 percent of generated sequences against three questions: Would this opener work if the prospect’s name were removed and their competitor’s inserted? If yes, it is not personalized, regenerate the segment. Does every claim trace to a real proof point? Does anything sound like a phrase no human on your team would say aloud? Fix the system prompt, not the individual emails, when patterns fail. Editing outputs one by one means your system did not learn anything.
What this looks like in practice
Configured once, the working loop is: export the week’s prospect list, drop the CSV into the project, generate, spot-check, load into the sequencer. For a 200-prospect batch, that is roughly 20 to 30 minutes of human time, most of it review. The same batch hand-written at even five minutes per prospect would be 16 hours, and honestly, hand-written quality at prospect 150 of a batch is worse than the system’s, because humans degrade and systems do not.
The quality bar is the same one we hold for human copy. Campaigns generated through this workflow sit inside our best-performing client portfolios, including campaigns sustaining 29 to 38 percent positive reply rates. The AI is not the reason those campaigns work. The targeting and the encoded point of view are the reason. The AI is why the execution takes minutes instead of days.
The rules that keep AI copy human
Encode these as hard constraints and the output changes character entirely:
First email under 90 words. Nobody reads a long email from a stranger.
Ban the greatest hits: “I hope this finds you well,” “I came across your profile,” “impressive work,” “quick question” as a subject line.
One proof point per email, with a number in it.
Write at the formality of a competent colleague, not a brochure.
End email one with a question about their situation, not a meeting request.
No em dashes, no emoji, no exclamation marks.
FAQ
Can Claude write good cold emails?
Yes, when it is configured with your proof points, tone rules, and prospect data rather than prompted generically. The quality gap between “write me a cold email” and a properly structured system is the entire difference between spam and pipeline.
How do I personalize AI-written emails at scale?
Feed structured prospect data (role, company, trigger signal, enrichment notes) and encode a hook priority hierarchy so the model leads with the strongest available fact per prospect and falls back gracefully when data is thin.
Will prospects know my email was written by AI?
They notice AI patterns, not AI authorship: generic flattery, template rhythm, claims without numbers. Enforce hard structural rules and ground every email in real data and the output is indistinguishable from a strong human writer, because the judgment in it is human.
What is the best AI workflow for cold email in 2026?
Enrichment table (Clay or Bitscale) feeding structured rows into a configured Claude project or skill, generating multi-touch sequences that load into Smartlead and HeyReach, with human review on a 10 percent sample. Configuration is a one-time cost; generation runs in minutes per batch.
Book a Call

