A London-based CX outsourcer (GBP 30-40M revenue) needed personalization that doesn't read like a mail merge. Six specialized AI agents each hunt one signal type; a selector picks the strongest; two writers turn it into copy.
Global CX outsourcer, GBP 30-40M revenue, London-based.
Generic outbound was invisible to enterprise CX buyers.
Multi-agent AI personalization: 6 signal hunters, transformation scoring, BPO exclusion gates.
859 companies scored and routed, 12 domains warmed, 30K monthly capacity ready to fire.
Context
A London-based customer experience outsourcer with operations on four continents. Instead of throwing headcount at every problem, they combine human expertise with agentic AI to replace FTE-heavy delivery with AI-orchestrated business processes. Revenue sits around GBP 30-40M, with 25M+ customer interactions handled per year across 20+ markets.
They came to me with no CRM access, no prior outbound copy, and one hard rule: the outreach had to feel specific to each enterprise buyer, not like another templated blast that a CX leader deletes on sight.
Constraints
Architecture
One pipeline, built around a strict separation of jobs. A company universe passes a BPO exclusion gate, then six signal agents run in parallel, a selector picks the single strongest signal, and only then do two writer agents turn that clean fact into copy. Research and copywriting never happen in the same prompt.
859 companies passed through domain normalization, LinkedIn resolution, Apollo enrichment, and revenue and headcount filtering against the enterprise ICP, before any signal work began.
Industry classification, keyword scans on company descriptions, a hard-coded competitor blocklist, geographic exclusion, and a manual-review flag. Enforced at the data layer so no competitor ever entered the send queue.
One job each: hiring, expansion, review pressure, tech stack, regulatory shifts, and seasonal demand. Each agent hunts a single signal type instead of one model juggling research and writing at once.
A priority cascade, not AI, picks the strongest signal: hiring beats expansion beats review beats tech beats regulatory beats seasonal. If all six return null, a tenure-based fallback fires. Fully auditable: I can see which signal won and why.
One writes the 1-2 sentence personalization line from the selected fact, the other writes the subject hook. No searching, no deciding, just writing from a pre-cleaned signal.
Every company scored into 3 transformation-maturity tiers to route the right value proposition, backed by 12 warmed domains and 4 sender personas at roughly 30K monthly capacity.
Results
This engagement was a pre-send infrastructure build. There are no campaign results to report yet: the deliverable is the architecture and the assets below, all live and ready to fire.
| Everything that exists today | |
|---|---|
| Companies scored & routed | 859 |
| Signal agents (one job each) | 6 |
| Selector + writer agents | 1 + 2 |
| Transformation maturity tiers | 3 |
| BPO exclusion layers | 5 |
| Sending domains warmed | 12 |
| Sender personas built | 4 |
| Monthly send capacity | ~30,000 |
| Campaign status | Pre-send, ready |
The reason this is in my portfolio is not send volume, it is the methodology. The split-signal architecture solves a quality problem I had seen across every previous build: AI personalization that sounds plausible but is not grounded in a specific, verifiable company fact. Separating find the signal from write the sentence, with a deterministic selector in between, produces a measurable quality improvement. Every campaign I have built since uses this pattern.
Want personalization grounded in real signals, not merge tags?
Book a 15-min callFit
{{first_name}} personalization, this is the alternative: agents that find real signals and writers that ground every line in a verifiable fact.Stack
See how the split-signal architecture turns a raw company universe into send-ready copy, with a verifiable fact behind every email and compliance enforced at the data layer.
Book Your Free Strategy Call