X article

Building an outbound AI SDR that isn't a black box

By Mitchell Keller4 min readOriginally published on X

On this page

In order to build an AI copywriter that actually performs beyond a human standard, you need 4 things.

A copywriting skill that relies on heuristics, formulas, rules and constraints not templates. The only thing that should be templated is the CTA on a per campaign test basis.

Unique context on the account level and person level, typically job title, LinkedIn profile description, company news and hiring ranked by levels of importance.

Context exclusive to the company/offer granulating down to the persona so you can connect persona level context to each person/job title. Ideally even getting into granularity at the company size. Going deeper on worldview aligned principles like what hiring means to the person.

Company level context based quality gate is in order to catch hallucination before it ends up in the inbox.

From there it mostly comes down to orchestration, feedback loops and data quality.

The thing with AI copy is that you give free rain to models to say a lot that is wrong.

That's where the company level data gate has to come into block things that simply can't be mentioned or anonymize them.

The feedback loop:

Ideally you're going to want to have your campaign data from idea to execution housed in supabase so you can have association between campaign context and the end lead that replied positively or negatively.

Ground truth: you need to establish something to test against. My favourite thing to do here is just send the offer in my words and the clients words, this is typically the strong copy prompt written in a more generalized way. This is valuable because it sets the benchmark for how much persona specifics and signals influence the copy. From there you can control individual adjustments between campaigns by changing the signal that is more important.

The experiments: each experiment must have non semantic association, meaning we don't want a model to have to analyze everything for baseline patterns. Instead you need to have the signal used and persona targeting in the output of each prompt as the copy is written. This will create associations within the campaign without having to launch separate campaigns for every persona or signal. This means each campaign experimentation no longer needs to be: market, segment, persona, angle (CTA). You can now just do campaigns per market or per source (list source can be meaningful if it's custom).

If you're going more advanced providing custom value REAL value Jordan Crawford style. Then you'd likely want that to be one other meaningful campaign separation.

So this gives us a clean system that doesn't cause chaotic campaign bloat and lets everyone get controlled AI copy that is 1-1 while still having traceability.

The tech stack

Finally let's talk tech stack to make a good AI copywriter that gets better over time without being painful to maintain.

I can't claim to know everything but this is what I've settled on for now:

Trigger dev for my hosted agents this makes AI workflows stateful and can pull context from anywhere needed + has tons of observability out of the box.

A vector db and/or knowledge graph hosted on your own server (railway or tailscale) this is the queryable knowledge per business.

Supabase to house analytics, campaign briefings, and all lead data to create the feedback loop.

Claude Code for raw context ingestion from transcripts and setting up initial persona context and knowledge graph.

4o mini piloting firecrawl and seper dev for AI powered 1-1 research

Langfuse to observe where your AI writer grabbed context from (root our context rot).

And there's a few other things that enhance this system I'll share in a separate article.

This type of system enables truly bespoke outcomes and lets you do ABM style outreach at scale.

Where everyone gets a truly relevant message like:

Jeff - I pulled 237 reddit threads around business credit and credit cards and turned it into a full gap assessment of where you could make strategic posts to show up in AI search.

Figured the full breakdown would help you fill the gap between 'holy this is a mess' and execution in the fresh VP role.

Would it help if i sent it over or not really?

Some really powerful unlocks happen if you pull the AI copy back into Claude Code in order to create custom HTML lead magnets like is being used in the version above.

Worth following @termsheetinator on X for more ideas on this.

That said None of this matter without the right data layer

How to split your data for effective AI copy:

  • Company table
  • Prospect table
  • One table per signal

Each table communicated with one another, you provide a scoring system around each signal. Each company ends up pulling a signal summary that provides context on what is worth writing about, each signal gets context on what the underlying meaning is.

New role? inherited a mess.

1 person in a department? Daily todo list with weeks of work.

Once you have this it simplifies the testing process so each new iteration loop is really just reranking signals by priority based on what the campaign tells you.

Happy testing.

Want more? follow.

Want help? book a call at leadgrow ai.

Originally published on X: Building an outbound AI SDR that isn't a black box

Bring the GTM job you need done. Build the run you can check.

Join the waitlist to hear when the next Legion cohort opens and what to bring to the first working session.