One Giant Research Prompt Gives Generic Emails. A 3-Prompt Chain Fixes It

Sales reps love the one-shot prompt: “research this company and write me a cold email.” It feels efficient. It also gives you the same output every time: vague pain points, a generic opener, and a confident email that could go to any company in the industry. A 3-prompt chain does better, and it’s easier to debug.

The idea comes from a post by u/DifferentChoice24 in r/PromptEngineering. They run AI trainings for enterprise sales teams and kept seeing the same failure. The fix was to split the job so each step has exactly one task, and the next step sees only the previous step’s output.

The old way vs. the new way

Old way: One prompt does everything. The model reads your material, decides what matters, guesses what the buyer cares about, and writes the email. If the email is bad, you can’t tell where it went wrong. Did it misread the source? Invent a fact? Pick a weak angle? It’s all tangled together. Say the email claims the company “just expanded into Europe.” Was that in your source, or did the model fill it in because expansion is a common story? With one giant prompt, you’d have to reread everything to find out.

New way: Three prompts, three jobs. Extract, hypothesize, write. Each step is narrow enough that you can read its output and see whether it’s good before moving on. When something is off, you know which step to fix, and you only rerun that step.

The chain, step by step

Step 1: Extract, no opinions. Paste in raw material: website copy, a press release, job postings, an earnings call snippet. Job postings are especially useful because they show where a company is actually investing, not just what it says in its marketing. Then ask:

“Here is raw material about [company]: [paste]. List only facts stated in this material: initiatives, hires, tools mentioned, numbers, dates. Quote each one. Do not infer anything and do not add facts that aren’t in the text.”

Step 2: Hypothesize, constrained. Feed only the step 1 output into a fresh prompt. Start a new chat for this, so the model can’t peek at the original material and drift back into guessing:

“Using only the facts below, give me 3 hypotheses about what this company’s [target role] is likely prioritizing this quarter. For each, cite which fact(s) it’s based on and rate your confidence low/medium/high. If a hypothesis needs a fact that isn’t in the list, drop it. Facts: [paste step 1 output]”

Step 3: Write, narrow. You pick one hypothesis, then:

“Write a 4-sentence cold email to [name, role] built on hypothesis #[pick one] only. Sentence 1 references the specific fact it’s based on. No ‘I hope this finds you well’, no ‘synergy’, no feature list. End with a question they can answer in one line. Hypothesis and facts: [paste]”

Your pick matters here. Choose the hypothesis you could defend out loud to a colleague, not the one that sounds most exciting.

Why the split works

  • 🔍 Step 1 forbids inference. Step 2 can’t build on things the model made up, because the only inputs are quoted facts.
  • 🧪 Step 2 forces citations. A weak hypothesis shows up as one that leans on a thin or irrelevant fact. You choose the angle instead of letting the model choose silently.
  • ✂️ Step 3 gets one hypothesis. It can’t hedge across three ideas and end up saying nothing.

One commenter put it well: the split makes the model stop pretending it knows the company, and the citations catch hallucinations before they reach the email. Another suggested a single-turn scratchpad approach that does a similar reasoning job in one API call. That’s a fair option if you’re automating and round trips matter. For a rep working by hand, three visible steps give you three places to check the work.

Where it still breaks

The author is upfront about this: thin source material. If step 1 returns two facts, step 3 will still write an email, and it will be bad. Their rule is that fewer than 5 facts means go find more material, not keep prompting. That’s a useful habit beyond sales. When the input is weak, no amount of prompt polish rescues the output. A quick check helps here: if you can’t tell which fact each hypothesis came from at a glance, the material is probably too thin or too vague to support an email yet.

Try it this week

  1. Pick one account you’re about to email.
  2. Gather four sources: website copy, a recent press release, job postings, and anything from an earnings call or interview.
  3. Run step 1 and count the facts. Under 5? Go get more material.
  4. Run step 2 and pick the hypothesis with the strongest citations and the highest confidence.
  5. Run step 3, then read the first sentence. If it doesn’t point to a real, specific fact, don’t send it.

The same pattern works outside sales: competitor research, candidate screening, support ticket triage. Anywhere you’d write “analyze this and give me a recommendation,” try extract, reason, then write. Run it on one real account and compare it to your old giant prompt. The difference tends to show up in the very first sentence.

Frequently Asked Questions

Q: Can I get the same result with one prompt instead of three?

Some readers suggest a single-turn scratchpad approach, where the model reasons first and then writes the email in one API call. It’s faster and cheaper, and the reasoning stays separate from the final output. Others prefer the three-step chain because you can read the step 1 facts and step 2 hypotheses yourself and pick which one to use before anything gets written. If you’re running this at volume, try the scratchpad. If every email goes to a real prospect, the checkpoints are worth the extra calls.

Q: How do I catch invented facts before they reach the email?

Start with the citations in step 2. If a hypothesis points to a fact you can’t find in the step 1 quotes, drop it, because the model either made that fact up or stretched one. Then compare the step 1 quotes against your source paste. Cite-or-drop is the habit that keeps weak ideas out of the email.

Q: Does splitting the prompt stop hallucinations completely?

Not completely, but it cuts down on them a lot. Step 2 and step 3 only see the facts that step 1 listed, so there’s less room for the model to fill gaps with guesses. The model can still misread a quote or stretch a fact in step 2, so the citation check is the part you do by hand.

Splitting account research into a 3-prompt chain beat my one giant prompt every time. Here’s the chain
by u/DifferentChoice24 in PromptEngineering

Scroll to Top