BUILD LOG — HOW I BUILT A 5-CHANNEL OUTREACH MACHINE AS A SOLO OPERATOR
This is a deep-dive post because I want to share the actual architecture not just "I automated outreach" vibes. For context: I build AI systems chatbots, voice agents, outreach automation for service businesses and agencies. Every system I build for clients gets tested on my own business first. Last 2 weeks I built the outreach system I'd been putting off for 6 months. Here's what's inside. THE PROBLEM Every outreach tool I tried had one of two flaws: 1. It sold me scale but gave me spammy templates that killed my sender reputation 2. It was a dashboard, not a system I still had to decide who to message, when, and what to say What I wanted was the opposite: a system that runs like a pipeline. Something that tells me every morning: "Here are 23 people to message today here's which channel, here's the context, here's the template." And dedupes across every channel so the same prospect never gets 5 messages from me in 3 days. THE ARCHITECTURE Three layers, all built on Python + Google Sheets + Apps Script. Layer 1: PROSPECTING Six scrapers running in parallel: - Google Maps (for local service businesses) - Apollo.io (for B2B contacts) - Hunter.io (for domain-based email discovery) - Snov.io (for additional email enrichment) - Apify (for Instagram/LinkedIn web scraping) - Serper (Google search API for long-tail discovery) Each feeds into its own raw sheet. Every lead gets a universal ID. Layer 2: ORCHESTRATION One master sheet that: - Pulls from all 6 scraper sheets - Dedupes across platforms (same person on LinkedIn + Twitter = one entry) - Tags with source, niche, platform readiness - Generates a daily queue: 15-30 people to message TODAY, split by channel - Tracks a 21-day follow-up sequence per prospect Layer 3: DELIVERY Four Apps Scripts (one per channel) that: - Read the daily queue - Pull the right template for Day 1 / Day 3 / Day 5 / Day 7 / Day 14 / Day 21 - Personalize based on niche and prospect data