Overview
What it is: An automated lead generation + deep personalization system that finds leads, verifies + enriches contact data, researches each company website, and drafts hyper-personalized cold emails.
Who it’s for: B2B outbound campaigns targeting niches like Solar/Renewables, YC startups, and Home Services.
Core idea: Use AI for high-leverage reasoning and writing, but keep execution deterministic and reliable via scripts.
Architecture (3-layer system)
- Layer 1: Directives (
directives/)
- Markdown “SOPs” that define campaign rules, tools, and quality checks.
- Layer 2: Orchestration (AI agent)
- The agent reads directives and delegates work to scripts.
- Acts like a manager, not a monolithic do-everything model.
- Layer 3: Execution (
execution/)
- Python scripts for scraping, API calls, verification, and data ops.
How it works (pipeline)
- Scraping & sourcing
- Uses Apify to scrape sources like LinkedIn, ProductHunt, and YC directories.
- Example scripts:
run_apify_actor.py, scrape_yc.py, scrape_producthunt_90d.py.
- Lead targeting is driven by job titles (Founder/CEO) and keyword filters.
- Verification & filtering
- Removes bad contacts early using concurrent verification.
- Checks include syntax validation and MX record lookups.
- Example scripts:
verify_emails_concurrent.py, verify_leads.py.
- Enrichment (finding missing emails)
- For incomplete leads, runs enrichment with external APIs (ex: Anymail Finder).
- Example scripts:
batch_enrichment.py, enrich_startups_anymail.py.
- Deep research & personalization (the “secret sauce”)
execution/deep_research_main.py aggressively scrapes each company’s website.
- Uses GPT-4o to:
- Understand positioning and business model.
- Identify a hidden pain / inefficiency.
- Generate a “sniper” subject line + hacker-toned personalized email.
- Extra social dynamics:
add_cofounder_snippet.py can add a cofounder icebreaker.
- A/B testing (simulation)
- Runs large-scale simulations against AI personas to predict reply-rate lift.
- Example:
ab_test_personalization.py.
- UI / Operations
- CLI run:
python execution/master_run.py --limit 2000.
- Local web UI:
app.py runs Flask on http://localhost:5000.
- Trigger runs and watch live output in-browser.
Key files
README.md + CLAUDE.md: project philosophy + setup
app.py: Flask UI
execution/master_run.py: end-to-end run (scrape → verify → enrich)
execution/deep_research_main.py: AI personalization engine