TemplatesBlogGet in touch →
All posts
Prompt EngineeringAugust 30, 2026·6 min read

The four questions that stop AI writing 500 identical emails

Batch personalization collapses into sameness because each LLM call is stateless. Here is the reasoning framework I built to fix it in production.

S

Shahrukh Majeed

AI Automation Engineer & GTM Systems Architect

The problem


You run 500 prospects through an AI personalization step. You read the first email and it is genuinely good. You read the tenth and it is fine. You read the fiftieth and you realize they are all the same email with different company names in them.


I see a lot of companies hit this wall and conclude that AI personalization does not work. It does. But the naive way of doing it cannot work, and the reason is structural.


I spent a long time on this problem because personalization at volume is the core of every outbound system I build. Here is the framework I landed on after 4 years of doing this in production.


Why batches converge


Each call to the model is stateless. Call number 300 has no idea what call number 1 through 299 produced.


So every call gets the same instructions, the same examples, and a slightly different fact block. And the model does exactly what you would expect a well behaved model to do: it finds the highest probability response to that instruction set, every single time.


The variation in your input is small. The instruction is identical. So the outputs converge on a mean.


This is not the model being lazy. It is the model being consistent, which is normally the thing you want. You just asked for consistency 500 times and then complained that you got it.


Why the usual fixes fail


Raising the temperature. This gives you variance in word choice, not variance in thinking. You get 500 emails with the same argument and different adjectives, plus a few that go off the rails.


Adding more examples. Few shot examples are a gravity well. The more you add, the harder the model pulls toward their shape. You have made convergence worse, not better.


More personalization tokens. Inserting the company name, the job title and a recent post into a fixed template does not change the underlying argument. The skeleton is still identical, and readers pattern match on skeletons.


More detailed instructions. This is the one people spend the most time on. Twelve paragraphs of rules about tone. It tightens the distribution. Tighter distribution, more convergence.


Every intuitive fix makes it worse, which is why people give up on it.


The actual fix: make the model reason per prospect


The insight that changed my results: do not ask the model to write a different email. Ask it to reach a different conclusion first, and then write from that conclusion.


If the reasoning is genuinely prospect specific, the email cannot help but be prospect specific. The variation has to come from upstream of the writing.


So before the model writes anything, it answers four questions about this specific prospect.


1. What is this company doing right now that costs them something?


Not what they do. What is in motion. Hiring five SDRs. Opening a second location. Launching a product line. Migrating platforms.


Movement creates cost, and cost creates urgency. A company in steady state has no reason to reply to you this month.


2. What does that specific activity break at their scale?


This is where the reasoning happens. Hiring five SDRs is neutral. Hiring five SDRs at a 12 person company means their existing CRM hygiene and lead routing were built for two people and are about to fail.


The model has to connect the observed activity to a consequence, given their size and their industry. That connection is different for almost every prospect, and it cannot be templated.


3. What would they have already tried?


This kills the most common failure in cold email: pitching something obvious as if it were insight.


If they have 40 people they already own a CRM. Do not tell them they need one. The model needs to establish the baseline so it can say something past it.


4. What is the smallest specific thing worth saying to them?


Not the full pitch. One observation, narrow enough that it could only apply to them.


Then, and only then, the model writes the email, and it writes from the four answers rather than from a template.


Why this holds up across a batch


Because the four answers are genuinely different per prospect, the argument structure of each email differs, not just its nouns.


Two companies can be the same size in the same industry and produce completely different emails, because one is hiring and one is migrating platforms, and those break different things.


The other benefit is that it is auditable. When an email is bad, I can look at which of the four answers was wrong. Usually it is question two, and usually because the input data was thin. That is a data problem with a data fix, not a mysterious prompt problem.


Implementation notes that matter


  • Make the model output the four answers as structured fields, not prose. You want to inspect them separately from the email.
  • If question one has no good answer, do not send. No movement means no timing, and no amount of good writing fixes bad timing. I route those to a nurture list instead.
  • Keep the writing instruction short. Once the reasoning is done, a long style guide just re-introduces convergence at the final step.
  • Sample 20 outputs from every batch and read the reasoning, not the emails. The reasoning tells you whether the system is working. The emails only tell you whether it sounded nice.

  • The broader point


    The lesson generalizes well past cold email. Any time you need an LLM to produce genuinely different outputs at volume, the variation has to be engineered into the reasoning step, not requested at the writing step.


    You cannot ask a model to be original. You can give it a different thing to think about, and originality is what falls out.


    This is the kind of work that sits underneath every outbound system I build. If you are running AI personalization that has flattened into sameness, the structure is usually the fix, and it is usually a week of work rather than a rebuild.

    Book a call