All posts
Technology

Why We Stopped Using Clay and Built Our Own AI Personalisation Engine

VoltScale Team·14 April 2026·7 min read

Personalisation is the most cited fix for declining cold email response rates — and the most misunderstood. Every tool in the outbound stack now has an 'AI personalisation' feature. Most of them are doing something far simpler than they'd like you to think. And after running hundreds of campaigns and watching those features produce lines like 'I noticed VoltScale helps B2B companies scale their outbound — impressive stuff,' we decided to stop patching the problem and solve it.

What Clay and Similar Tools Actually Do

Clay is genuinely impressive infrastructure. The waterfall enrichment, the breadth of data sources, the ability to build complex enrichment workflows — it's well-engineered. Apollo, Instantly's AI variables, Lemlist's liquid personalisation — they all offer something similar: the ability to pull structured data fields about a prospect and slot them into a template. Company name. Job title. Recent funding. LinkedIn headline. Number of employees.

The problem is that personalisation-as-variable-substitution is still, at its core, a mail merge. The field changes. The logic doesn't. You're still working from a fixed template — you've just swapped out {{first_name}} for {{recent_funding_round}}. And prospects can tell. The resulting line reads like a system trying to seem human, not a human being.

The Limitations Nobody Talks About

  • Template-bound: the research is only as creative as the person who built the Clay table. If you didn't think to pull a specific signal, it won't appear.
  • Surface-level research: these tools pull structured data — fields from a database. They don't read a company's about page and extract what actually makes them a fit for your offer.
  • ICP-agnostic: the same enrichment logic gets applied to every prospect regardless of your specific offer or the angle that actually converts for your audience.
  • Tone-blind: the output sounds the same whether you're selling to a no-nonsense CFO at a logistics company or a growth-focused CMO at a VC-backed SaaS startup.
  • Credit costs at scale: Clay's credit model works well for small lists. At high volume, the cost of multi-source enrichment compounds fast — especially when you're hitting five or six waterfalls per row.
  • You can't audit the reasoning: when the line is bad, you don't know why. There's no way to inspect or improve the underlying logic, because there isn't any — it's just field substitution.

The Moment We Decided to Build Our Own

The breaking point came when we were reviewing a batch of 'personalised' lines generated by an AI enrichment step in Clay for a client in the logistics space. The lines were technically correct — they referenced real facts about each company. But none of them contained the kind of insight a good SDR would actually use to open a conversation. They were accurate and forgettable. We needed something that could reason about why a specific company, at this specific moment, should care about this specific offer.

Off-the-shelf tools aren't built to do that. They're built to enrich at scale — which is valuable, but it's a different job. If you want genuine research-backed personalisation, you need a system that can actually think.

What We Built

We built our own personalisation engine in-house using Python and Anthropic's Claude. The architecture is straightforward: for each prospect, the system pulls context from their website, LinkedIn profile, recent press and announcements, and any other signals that are relevant to the specific offer we're promoting. It then passes that context to Claude alongside a brief on the client's ICP, their offer, and their tone of voice. Claude drafts a personalisation line the way a good SDR would — one that reads like it was written by someone who actually did their homework.

Because we own the full pipeline, we can tune every part of it. If a client sells to PE-backed portfolio companies, the research logic prioritises acquisition history and portfolio signals. If they sell to heads of engineering at hypergrowth startups, we weight recent hiring data and technical blog posts. The ICP shapes the research, and the research shapes the line — not the other way around.

The Difference in Output

The simplest way to explain the difference is this: a Clay-enriched personalisation line tells the prospect you know their job title. Our system produces a line that tells them you understand their situation. 'I saw you recently promoted your head of demand gen to VP — typically a sign the team is gearing up to scale pipeline aggressively' is a fundamentally different conversation opener than 'I see you're the CMO at Acme Corp.'

Every row in the lead list we hand to a client has a reason-to-reach-out that's actually specific to that person. Not a mail-merged 'I saw you work at {{company}}.' Not a funding round mentioned in passing. A line that demonstrates genuine understanding of their context — and creates a natural bridge to why this conversation is relevant right now.

This Isn't About Replacing Clay

To be clear: we still use structured enrichment tools where they make sense. Data sourcing, verification, firmographic and technographic signals — these are solved problems and there are good tools for them. What we rejected was the idea that enrichment and personalisation are the same job. They're not. Enrichment gives you data. Personalisation requires judgement — about what matters, what to lead with, and why a specific person should care.

Building our own engine was the only way to deliver that consistently at scale. The result is a system that produces lead lists where the personalisation actually personalises — and outbound campaigns where the reply rate reflects that.

Ready to put this into practice?

Let's build an outbound engine for your business — from ICP to booked meetings.