Pipeline Overview
Conversion Funnel
Connect to EDDIE to see live data...
Last 24 Hours
Conversion Rates
Top Verticals
Connect to EDDIE to see live data...
Runs daily at 7am — 9 stages, fully automated
Scrape Leads
Pull new businesses from OpenStreetMap across all 48 cities
osm-scraper.ts --allFree, unlimited. Queries Overpass API. Maps 18 verticals to OSM tags. Deduplicates on (business_name, city, state).
Extract Emails + LinkedIn
Crawl business websites for contact info
scrape-emails.ts --limit 500Fetches homepage + /contact, /about pages. Extracts emails + LinkedIn URLs. Zero API cost.
Score Leads
100-point rules engine → premium / standard / skip
score-deterministic.tsVertical: 30pts • Reviews: 20pts • Rating: 15pts • Website: 10pts • Email: 10pts • DM name: 10pts • Phone: 5pts
Premium: 70-100 • Standard: 50-69 • Skip: 0-49
Generate Icebreakers
Personalized opening lines from 24 template variants
generate-icebreakers-template.ts6 scenarios × 4 variants. Deterministic selection by lead ID.
Verify Emails
MX record check, syntax validation, disposable filter
verify-emails.tsUses
dig for MX lookups (free). Filters disposable domains (26 blocked) and role addresses. Invalid emails auto-suppressed.Export Premium → Instantly
Push top-tier verified leads to premium email campaign
export-instantly.ts --tier premiumCampaign
5dbd3854. Filters: verified, not bounced, not suppressed, not contacted. Batches of 500.Export Standard → Instantly
Push mid-tier leads to standard email campaign
export-instantly.ts --tier standardCampaign
bc52b241. Same filters, separate email sequence.Pipeline Hygiene
Auto-correct status mismatches across the database
pipeline-hygiene.tsBounced→lost, stale 30d→lost, positive reply 7d→qualified, meeting done→show, orphaned booked_at→booked.
Process Touchpoints
Fire drip sequences for inbound calculator leads
process-touchpoints.ts6-stage drip for statement uploaders (AI results → confirmation → progress → value nugget → anticipation → quote ready).
4-stage followup for non-uploaders.
Lead Lifecycle
Free — Runs Daily (Unlimited)
osm-scraper.tsQueries Overpass QL with bounding boxes (~15km per city). Maps verticals to OSM tags. This is the workhorse.
Free Tiers Available — Not Yet Activated
These APIs have generous free tiers we should be using alongside OSM for better data coverage.
gmaps-scraper.ts — needs GOOGLE_API_KEYAfter free credit: ~$5/1K calls. Budget-gated via api-tracker. Already built and tested.
yelp-scraper.ts — needs YELP_API_KEYFree tier is very generous for our volume. Captures yelp_url and yelp_id for enrichment.
here-scraper.ts — needs HERE_API_KEYFree tier is massive. Sign up at developer.here.com.
foursquare-scraper.ts — needs FOURSQUARE_API_KEYSign up at developer.foursquare.com for free tier.
bing-scraper.ts — needs BING_MAPS_KEYVia Azure portal. Good fallback when Google quota is exhausted.
state-registry-scraper.tsFree public data. Limited to 3 states — needs expansion.
Inbound Leads
calculator-webhook.tsCaptures: email, industry, monthly volume, savings estimate, contact preference, phone, has_statement.
If has_statement → immediate 6-stage drip. Otherwise → 24h followup.
Always listening — event-driven, real-time
instantly-webhook.tsBounced → Mark bounce + suppress
Replied → Classify sentiment (Haiku), Telegram alert if positive, suppress if negative
Opened/Clicked → Record timestamp
Unsubscribed/Complained → Suppress
All events logged to
lead_communications.calcom-webhook.tsCreates cal_booking record, sets lead to "booked", backfills FK columns.
calculator-webhook.tsCreates calculator_lead, auto-links if email matches crabill_leads.
Search Leads
Search for leads or click Search to browse all...
System Health Checks
Click "Run Check" or connect to EDDIE to see system health...
Scheduled Reports (via Telegram)
pipeline-review.tsQueries all lead tables. Sent to Telegram at 8am.
call-prep.tsOne Telegram message per Cal.com booking today.
win-loss-analysis.tsRuns 1st of month at 9am. Telegram + markdown report in Brain Vault.
On-Demand CLI
mine-lost-leads.tsFlags:
--dry-run, --export-csv, --limit Nsync-instantly-emails.tsFlags:
--dry-run, --since YYYY-MM-DDsuppress.tsapi-tracker.tsCore Tables
CRM Intelligence
Config
Scraped but not in campaign: Salon, Spa, Veterinary, Gym, Real Estate, Optometry, Insurance
Quick Wins — Free, Just Need API Keys
.env.baremetal on homelabx. Could 5-10x our data quality overnight.crabill campaign profile in leadgen-config.ts. These leads are sitting in the DB ready to go.Fixes Needed
instantly-webhook.ts, touchpoint-scheduler.ts, non-uploader-followup.tsMove to
LEADGEN_FROM_EMAIL env var.gmaps-scraper.ts ON CONFLICT should use COALESCE to preserve existing data, like other scrapers do.Code Cleanup
osm-scraper.ts, bing-scraper.ts, here-scraper.ts all have identical city coordinate maps.score-deterministic.ts, generate-icebreakers-template.ts, verify-emails.tsFuture Upgrades (Paid)
score-leads.ts and generate-icebreakers.ts. Just need API credits.