Cold outbound that researches first and refuses to guess
Source, open and follow up as three stages, with enrichment, a model judge, a send gate, and reply detection that stops a sequence by reading the reply.
The problem
Business directories return storefronts without decision-makers, models invent proof when they have none, and without coordination one prospect can be emailed by two engines in the same week.
The system
- Sources on buying signals such as ad activity and hiring posts rather than business listings, and qualifies for free before any paid lookup.
- Enriches through a scraping waterfall, then a paid decision-maker lookup with key-pool failover and a budget check before every metered call.
- Drafts only with evidence: at least three personalisation anchors counted in the body, only offers that exist, no invented clients or results.
- A model judge with failover reviews every draft. Replies, including auto-replies relayed by the mail provider, are attributed by their content and stop the sequence.
Key decisions
Content is evidence; an index is a hope
WhyMatching replies to prospects by item position silently attributed replies to the wrong people.
Trade-offMore parsing for bounces and out-of-office messages.
An empty model response is not a verdict
WhyTreating a timeout as a rejection permanently discarded good prospects.
Trade-offA requeue path with a retry limit.
Check the budget before every metered call
WhyA check at start-up passed on the first call and let the ninth spend the monthly cap.
Trade-offOne extra API read per call.
Results
- Named decision-maker coverage more than doubled once paid enrichment went live
- Every send path shares the same gate, cooldown and daily cap
- A judge regression bank built from real drafts
What I’d do next
A separate sending domain, and reply-rate analytics per source feeding back into sourcing.