Outreach Automation

Instrumented cold email pipeline with A/B testing and funnel diagnostics

Running onInternal at AIBros
BuiltMarch 2026
StackPython · SQLite · Claude API · Zoho SMTP
1,400+
leads in DB
20-25
emails/day warmed
$15/mo
total run cost
A/B
variants tracked

The problem

Cold email works — but every solo founder who tries it makes the same mistake: send blind, get zero replies, blame the leads. The truth is most cold campaigns can't tell the difference between a bad list, a bad subject line, a bad offer, and bad timing.

Without instrumentation you're flying blind. You don't know if your emails are landing in spam, if prospects are opening them and not replying, or if you just have the wrong list entirely. Then you scale a broken campaign, burn your domain, and give up.

What we built

A 10-module pipeline where every stage produces data — so you can see exactly where conversion breaks, not just that it broke.

01
Lead scraperYelp + local directories → SQLite. 1,400+ real estate agencies, deduped.
02
Website auditorPlaywright headless Chromium grabs a screenshot + scores outdated signals: no mobile, no HTTPS, slow load, copyright year, no chatbot.
03
Email finderAutomated contact discovery from public sources. Prioritises the highest-scoring (most outdated) leads first.
04
AI-drafted emailClaude writes a personalised pitch using the actual audit findings — references their real site, their actual issues. Not a template.
05
SenderZoho SMTP (SSL), paced at 20–25/day with 7-minute gaps to protect domain reputation. Screenshot attached inline.
06
Bounce handlerBrowses Zoho inbox automatically, marks bounced addresses, prevents resends. Runs on cron.
07
Reply detection + sentiment4-bucket classification: interested / not-interested / wrong-person / no-budget. Lets you act on real replies and ignore noise.
08
Open pixel1×1 tracking pixel per lead — know who actually read it vs who bounced at the subject line.
09
A/B variantsPain-led vs outcome-led copy, randomly assigned per lead, stored in DB. Survives restarts.
10
Funnel diagnosticpython run.py funnel — counts at every stage, split by variant and lead quality tier. One command, full picture.

Tech stack

Python (~600 lines, 10 modules) SQLite Claude API Zoho SMTP Playwright Chromium Cloudflare Tunnel Cron daemon

The diagnostic principle

This is the point of the project. You can't separate a lead-quality problem from a messaging problem without funnel data. Track every stage and the break point names the cause:

Funnel stageIf it drops here →
Scraped → email foundLead data quality — bad or missing contacts
Sent → delivered (not bounced)List hygiene / domain reputation
Delivered → openedSubject line or sender trust
Opened → repliedMessaging or offer
Replied → positiveTargeting — wrong niche, person, or budget

The A/B split and quality tiering point at which lever to pull next. Without this data you're guessing. With it, you're fixing the right thing.

Result

Instrumented funnel running daily. A/B test active across pain-led and outcome-led variants. Diagnostic report shows in one command which stage is the bottleneck — list quality, deliverability, opens, or messaging.

For any business doing B2B outreach: this replaces 10–20 hours of manual prospecting and writing per week. The meta-saving is larger — it stops you from scaling a campaign that's broken at the messaging stage when you actually have a list problem.

Get Started

Want an outreach engine like this for your business?

Start with the $500 AI Workflow Audit — we scope exactly what an outreach pipeline for your niche would look like and what it'd cost to build.

Book the $500 Audit →