Skip to content
Free Consultation

Case study 06 / 06

How We Run Our Own Outreach Engine Across Four Markets

We sell automated outreach, so we run it on ourselves first. This is the system we use to find our own clients, including the parts we changed after they failed.

01At a glance

Client
Mega AI Solutions
Sector
Our own acquisition
Challenge
Contact history scattered across spreadsheets and logs, which risks writing to the same person twice.
What we built
A CRM-driven engine: scrapers fill it, batches read from it, and every send and reply is written back to it.
Stack
  • Lead scrapers on public directories
  • Postgres CRM as the single source of truth
  • One mailbox per market
  • AI-personalised drafts, human approval

One database decides who can be contacted

Our first version kept contact history in spreadsheets and JSON logs. Spreadsheets drift: two files disagree, someone gets a second "first" email, and the sender looks careless. Now a single CRM database is the only source of truth. Before any batch, the system asks it who is eligible, and it records every send, reply and status change straight back.

Leads from public sources

Leads come from public business directories and registries, scraped by small scripts that run on their own. Each lead is tagged by market, niche and what we know about it, for example whether it already has a website. Segments that need a different message, like businesses with no website at all, are kept out of the regular batch.

One mailbox per market, small batches

  • Each market has its own sending mailbox and its own language, so a French prospect never gets an English template
  • Every batch runs all markets together, in small batches of about 25 messages per mailbox, which protects sender reputation
  • Each message is personalised by AI from what we know about the business, then checked by a human before it goes out
  • When pacing sends, the system opens a fresh mail server connection per message, because idle connections were being dropped

What we learned

Volume was never the bottleneck; targeting was. Our first client came from one specific niche, so we now work one niche at a time instead of spreading a wide list thin. And a reply only counts if it is logged, so the engine treats updating the CRM as part of sending, not a chore for later.

The takeaway

Pick one source of truth before you automate anything, keep batches small, and keep a human on the send button for cold email.

Next step

Want something like this for your business?

Tell us what takes up your team's time. In a free 30-minute call we will say plainly whether AI can help, and what it would take.