Work Pricing FAQ Blog Jobs Trending Book the AI Audit

HomeBlogHow to Build AI Email Personalization with Claude Code

How to Build AI Email Personalization with Claude Code

Short answer

I build AI email personalization with Claude Code by feeding it prospect data like job title, company size, recent news, and tech stack, then generating a unique email per prospect in about 20 seconds. Across three Vancouver B2B clients over six months, reply rates went from 2 to 4% with generic templates to 8 to 14%. API cost runs about $0.02 to $0.05 per email, or $20 to $50 a month at 1,000 emails.

I get asked all the time: "How do you scale cold email without it feeling like spam?" The answer is AI email personalization with Claude Code — but not the lazy kind where you drop a first name into a template and call it done. I'm talking about real contextual personalization: pulling in prospect data, recent company news, tech stack signals, and industry trends to write emails that feel like they were written for one person, not 500.

Over the past six months I've built this system for three Vancouver B2B clients. Reply rates went from 2–4% with generic templates to 8–14% with Claude Code-powered personalization. Here's how I'm doing it and how you can replicate it.

What Real AI Email Personalization Looks Like

Most "personalized" cold emails fail because they only personalize the greeting. The body is still generic. Claude Code lets you go deeper — way deeper — without manual work.

Here's what I mean by real personalization:

  • Context-aware opening lines — referencing a recent funding round, a product launch, a job posting, or a mutual connection
  • Industry-specific pain points — if they're in healthcare, mention compliance burden; if they're in e-commerce, mention cart abandonment
  • Tone matching — formal for enterprise, conversational for startups, technical for dev tools
  • Custom CTAs — tailored to company size, stage, and buying signals

This level of personalization used to require 10–15 minutes per email if you were doing it manually. With Claude Code, it takes about 20 seconds per email once the system is set up.

The Data Layer: What Claude Code Needs to Personalize

Before Claude Code can write a personalized email, it needs context. The more data you feed it, the better the output. Here's the minimum viable data set I use:

  • First name, last name, job title
  • Company name, industry, employee count
  • LinkedIn profile URL (for recent activity scraping)
  • Company website URL (for product/service analysis)
  • Recent news or announcements (if available)
  • Tech stack (pulled from BuiltWith or similar)

This data usually lives in a Google Sheet or CRM. I use a Claude Code Google Sheets automation to pull it in and structure it into a JSON object for each prospect.

The key insight: AI personalization isn't about writing better templates — it's about feeding Claude Code enough context that it can write a unique email for each prospect based on what actually matters to them.

The Prompt Structure That Works

This is the part most people get wrong. If you just tell Claude Code "write a personalized cold email," you'll get generic AI slop. You need to constrain the output with specific instructions.

Here's the prompt structure I use:

You are writing a cold outreach email for [YOUR COMPANY/SERVICE].

Prospect context:
- Name: {{first_name}} {{last_name}}
- Title: {{job_title}}
- Company: {{company_name}} ({{industry}}, {{employee_count}} employees)
- Recent signal: {{recent_news}}
- Tech stack: {{tech_stack}}

Instructions:
1. Opening line: reference the recent signal or a relevant industry trend
2. Value prop: explain how we solve a pain point specific to their industry/role
3. Social proof: mention 1 similar company we've helped
4. CTA: ask for a 15-min call, keep it low-pressure
5. Tone: conversational, no hype, max 120 words
6. Do not use: "I hope this email finds you well" / "just reaching out" / "circle back"

Write the email.

This prompt gives Claude Code enough structure to be consistent but enough freedom to adapt to each prospect's context. The constraint on word count and banned phrases keeps the tone tight and human.

Building the Automation Workflow

Once you have the data layer and the prompt, the workflow looks like this:

  1. Pull prospect data from Google Sheets or CRM
  2. For each prospect, format their data into the prompt template
  3. Send the prompt to Claude Code via API
  4. Claude Code returns a personalized email draft
  5. Store the draft in a "review queue" column in your sheet
  6. Manually review 10% of drafts to spot quality issues
  7. Approve batch and push to your email tool (Instantly, Lemlist, whatever)

I built this as a Python script that runs daily. It takes about 15 minutes to review a batch of 50 emails and approve them for send. Before this system, writing 50 personalized emails would have taken me 8+ hours.

A Real Example

Here's what the output looks like for a SaaS sales tool targeting e-commerce directors:

Subject: Reducing cart abandonment at [Company Name]

Hey Sarah,

Saw you recently joined [Company Name] as Director of E-commerce — congrats. I noticed you're on Shopify Plus and dealing with the usual 68% cart abandonment rate that hits most DTC brands at your scale.

We help e-commerce teams like yours recover 15-20% of abandoned carts with AI-powered follow-up sequences. [Similar Company] added $340K in recovered revenue in Q2 using our system.

Worth a quick call to see if this fits your roadmap? I can walk you through how it works in 15 minutes.

Best,
[Your Name]

This email references the prospect's role, platform, a known pain point, and includes relevant social proof. It doesn't feel like a template because it isn't one — Claude Code wrote it specifically for Sarah based on her context.

What This System Costs to Build

Time investment: 2–3 days to build the initial workflow if you're technical. If you're not, you can hire a Claude Code consultant (like me) to set it up in a week.

Ongoing cost: Claude Code API usage is about $0.02–0.05 per email depending on prompt length. For 1,000 emails per month, that's $20–50 in API fees. Compare that to the 40+ hours you'd spend writing them manually.

The ROI is immediate if you're doing any kind of outbound at scale. One extra meeting booked per week pays for the system in the first month.

Common Mistakes to Avoid

I've seen people mess this up in predictable ways. Here's what not to do:

  • Over-personalizing — mentioning too many specific details makes the email feel creepy, not thoughtful. One or two relevant signals is enough.
  • Letting AI write the subject line — Claude Code tends to write overly clever or salesy subject lines. Write those yourself or A/B test a fixed set.
  • Skipping the review step — AI will occasionally hallucinate a detail or use awkward phrasing. Spot-check 10% of emails before you send.
  • Not updating your data — if your prospect list is six months old, personalization won't help. Fresh data is the foundation.

How to Measure If It's Working

Track these three metrics to know if your AI email personalization is delivering:

  • Reply rate — should be 3–5x higher than generic templates (aim for 8–12% in B2B)
  • Positive reply rate — not all replies are good; track how many lead to meetings
  • Time saved — compare hours spent on email writing before vs. after automation

If reply rates aren't improving after 100 sends, the issue is usually data quality or prompt constraints. Refine those before scaling.

Getting Started

If you want to test this for your own outbound, here's the simplest starting point:

  1. Pull 20 prospects into a Google Sheet with the data fields I listed above
  2. Use the prompt structure I shared and manually run it through Claude Code for each prospect
  3. Send those 20 emails and measure reply rate against your usual template
  4. If it works, build the automation; if it doesn't, tweak the data or prompt

You don't need to automate everything on day one. Prove the concept first, then scale it.

If you'd rather have someone set this up for you, I do this as part of my email automation workflows for Vancouver clients. It's one of the fastest-ROI projects I build. And if you're wondering whether this applies to your industry or use case, check the FAQ — I've covered most of the common questions there.

The infrastructure is here. The only question is how much manual work you want to keep doing.

Frequently Asked

FAQ

Can Claude Code personalize emails better than merge tags?

Yes — Claude Code can analyze a prospect's LinkedIn profile, recent company news, tech stack, and industry context to write contextually relevant opening lines and value props. Merge tags only insert static fields. AI personalization adapts tone, reference points, and messaging to each recipient.

How do I avoid AI-generated emails sounding generic?

Feed Claude Code specific data points: job title, company size, recent funding, location, product category, pain points from their site's About page. The more context you provide, the more tailored the output. Also constrain tone and structure in your prompt — no hype, no buzzwords, short sentences.

What's the ROI of AI email personalization?

For B2B cold outreach, personalized emails typically see 3–5x higher reply rates than generic templates. A working Claude Code system takes 2–3 days to build and saves 15+ hours per week on manual personalization. Break-even happens in the first month if you're sending 200+ emails weekly.

Work with me

Want this kind of result for your business?

Start with the AI Audit — $1,500. One focused engagement. The 3 highest-ROI opportunities in your business, ranked. A working proof-of-concept of the #1. Credited toward your build if we go forward.

Book the AI Audit → Read the FAQ
← All posts Book the AI Audit →