Most teams try AI personalization by asking a model to write the whole email, then wonder why replies do not come. Below: why fully generated messages fail, which part of a message a model should write, what inputs make that part specific, and how to test it without putting a sending domain at risk.
What is AI personalization in outreach?
Personalization is any part of a message that could only have been written to this recipient. A first name inserted from a field does not count; a sentence about the company's new warehouse does. AI personalization uses a model to produce that sentence at scale, from facts gathered for each contact: what the company does, which technologies it uses, which roles it is hiring for, what changed recently.
The evidence says specificity pays. Gong Labs analysed more than 30,000 emails in 2023 and found that individual personalization roughly doubled reply rates for non-managers, while company-specific context roughly tripled them for director level and above. Hunter's State of Cold Email 2025, based on 11 million emails, also links custom attributes and manual edits with higher reply rates.
Why do fully generated messages fail?
Because readers recognise them. Leadspicker's doctrine is that fully AI-written outreach is recognisable on first read: in practically any language, a native speaker knows immediately that they are reading generated text, and once they know, the message is dead whatever it says.
The tells are familiar: an opener that hopes the message finds you well, generic praise for the company, three adjectives where one would do, and a structure every other generated email shares. Length makes it worse: Gong's 2026 analysis found reply rates fall once a cold email passes 100 words, and C-level recipients reply about 30 % less than others. Accuracy is the other risk. TechCrunch's 2025 report on one AI sales-agent startup describes its first-generation product as getting a pretty low response rate and hallucinating details.
Which part of a message should AI write?
One clause, or one opening line, that has to be different for every recipient. Everything else, the offer, the proof and the ask, should be written once by a person and reused. A model writing one sentence from three facts is easy to control through the prompt; a model writing 120 words is not.
| Fully generated | Template plus generated clause | |
|---|---|---|
| Opening | I hope this message finds you well! I was truly impressed by your company's innovative approach. | Saw you are hiring three dispatchers for the new Brno depot, {{ai_clause}} |
| Body | Generated, different every time, hard to check | Written once by a person; the same proof and offer for the segment |
| What the reader notices | Generic praise and structure they have seen before | One fact about their company inside a message that reads as human |
| What you can control | Little: the whole text varies | The prompt for one clause, checked on a sample |
The example company is illustrative. {{ai_clause}} stands for the variable the model fills; the rest of the line is written by hand.
There is no standard for AI personalization, only studies of what gets replies, all published by vendors. Gong Labs (2023) analysed more than 30,000 emails and links company-specific context to higher replies from senior recipients. Hunter (2025) analysed 11 million emails and links custom attributes and manual edits to higher reply rates. Gong (2026) adds that replies drop above 100 words. Read each with its sample and its seller in mind.
What inputs make a generated clause specific?
A clause can only be as specific as the facts it is built from. Generic input produces generic output, however good the prompt. The strongest inputs are recent and checkable: an open job ad, a technology the company adopted, a new office, a funding round, a leadership change. Enrich those fields first, then give the model only what it needs.
A working prompt for one clause has five lines:
- Role. You write one sentence for a cold email to {{first_name}}, {{job_title}} at {{company}}.
- Facts. Use only these facts: {{open_roles}}, {{technologies}}, {{recent_change}}.
- Task. Connect one fact to the problem of {{problem_you_solve}}, in under 20 words.
- Bans. No praise, no greetings, no exclamation marks, no claims that are not in the facts.
- Fallback. If no fact is relevant, return an empty string.
How do you test personalization without burning a domain?
Test on a slice, measure replies, and read the output before it ships. Generated text at scale can go wrong in ways a single preview will not show.
- Read a sample first. Have a native speaker read a sample of generated clauses before any send, and fix the prompt, not the outputs.
- Split the list. Send the same template with and without the generated clause to two comparable groups, each large enough to produce replies.
- Hold sending volume steady. Keep the normal per-mailbox daily cap during the test, so the experiment does not double as a volume spike.
- Measure reply rate. Opens are mostly scanners now; replies are the only signal a person read and cared.
- Watch bounces and complaints. A rise in either stops the test, whatever the reply rate says.
Leadspicker's guidance is to generate fragments, not messages: one personalised clause or opening line from enriched data, inside writing that is the sender's own. Leadspicker has not published a test comparing the two approaches.
Frequently asked questions
Should AI write the whole cold email?
No. Fully generated messages are recognisable on first read and share the same structure and tells. Use AI for the one clause that must differ per recipient and write the rest yourself.
What should an AI personalization prompt include?
The recipient's role and company, a short list of enriched facts the model may use, one task in under 20 words, explicit bans on praise and invented claims, and a fallback to return nothing when no fact fits.
How do you test AI personalization?
Read a sample first, then send the same template with and without the generated clause to two comparable groups. Keep daily volume per mailbox unchanged, compare reply rates, and stop if bounces or complaints rise.