Traction Engine
B2B Outbound Validation Engine
Tests business hypotheses by running fully-automated outbound prospecting — from ICP identification through email sequencing — so founders learn whether an ICP is real before investing in a sales team.
01 — The Problem
B2B founders validating new ICPs spend weeks manually building prospect lists, enriching contact data, writing email sequences, and loading into CRM — work that could be automated but usually isn't because the tooling is fragmented. Worse, the feedback loop between "send first email" and "learn if the ICP responds" is so slow that many hypotheses go unvalidated longer than they should.
02 — What the AI Does
Takes a hypothesis (problem statement + ICP definition + offer + differentiator), then runs the full outbound pipeline: discovery via Extruct lookalikes and Apollo title search → enrichment via Airscale email verification → CRM load via HubSpot → email sequence generation via Claude → sequence deployment via SalesHandy. Monitors reply classification and flags when signal is clear (kill or validate). Runs on cron with human approval gates at hypothesis entry and before first send. Pipeline tools: Extruct, Apollo, Airscale, Netrows, HubSpot, SalesHandy, Claude Code.
03 — Design Decisions
Discovery before enrichment — free before paid
Every dollar spent on a bad hypothesis is a lesson in what doesn't work. Apollo is free for people search. Only after a company passes discovery does it move to paid enrichment (Airscale, $0.008/email). This sequencing prevents spending on companies that don't match the ICP.
Free tier rate limits apply to Apollo. Extruct tokens are limited (~900/month). Both must be used judiciously.
HubSpot as pipeline database, not CSV
CSV-based state management breaks down when prospects are in multiple sequences, when status changes across tools, and when the pipeline scales. HubSpot's native bi-directional SalesHandy sync eliminates the CSV handoff entirely.
HubSpot free CRM has API rate limits. Custom properties had to be carefully named because HubSpot doesn't allow property type changes after creation — must delete and recreate.
Netrows for personalization, not discovery
Netrows returns garbage for generic title queries ("VP Sales") but excels at enriching specific profiles (career history, skills, tenure). Using it for discovery caused false negatives. Using it for personalization — where it returns 16 position descriptors and 26 skill tags per person — produces high-quality outreach customization.
Must use URN-style LinkedIn usernames from profile URLs, not vanity usernames. Apollo is the discovery tool; Netrows is the enrichment layer.
Vertical diversity in seed selection, not geographic
Testing showed 8 vertical seeds (manufacturing, logistics, SaaS, etc.) generated 48% more unique domains than geographic diversity. City filters added minimal uniqueness. The ICP definition matters more than the geography.
ICP is defined by firmographics and problem framing, not by geography. Outbound is location-agnostic once the right firm type is identified.
Human approval gates at hypothesis + before send
Fully autonomous outbound without approval gates risks a bad hypothesis burning through budget and reputation (bad emails going out under Brett's name). The architecture is "human reviews, AI executes" — not "AI runs unsupervised."
Phase 5 (approval-gated autonomy) is not yet implemented. Currently: full human approval required at every step. The autonomous roadmap exists but execution is staged.
05 — Key Insight
The most dangerous phase of B2B validation isn't building the pipeline — it's the gap between "pipeline built" and "first email sent." Every day that passes without a send is a day of uncorrected assumptions. The machine should be the execution layer; the human should be the judgment layer.