Skip to content

voidd0/outbound-flow

Repository files navigation

OutboundFlow — AI-Powered B2B Outreach Automation

Eliminate the manual research-to-pitch loop. URL in → personalized email out.

OutboundFlow automates the full B2B outreach workflow: crawl a prospect's website, analyze their business situation with AI, and generate a personalized email — all without human research.

Built for the AI Workflow Automation Challenge 2026.

What It Does

Traditional B2B outreach is broken: reps spend 4-8 hours per week manually researching prospects, then send generic emails that read like templates. OutboundFlow fixes both problems:

  1. Crawls the prospect's website — extracts headline, description, tech stack, CTAs, nav items, and contact info using Playwright (with a requests fallback for simpler sites)
  2. Analyzes fit with Gemini AI — produces a structured fit score (0-100), pain points, value props, and personalization hooks specific to that company
  3. Writes the email — generates a subject line and 5-sentence body that references something real from the prospect's own website

Every step degrades gracefully: if Gemini is unavailable, deterministic heuristics run instead. The pipeline always completes.

Architecture

┌─────────────────┐    ┌──────────────────┐    ┌────────────────────┐    ┌───────────────┐
│  Lead CSV/URL   │───▶│  Crawler Agent   │───▶│  Analyzer Agent   │───▶│ Pitch Builder │───▶ Email
│                 │    │  (Playwright +   │    │  (Gemini AI +     │    │ (Gemini AI +  │
│                 │    │   requests)      │    │   stub fallback)  │    │  templates)   │
└─────────────────┘    └──────────────────┘    └──────────────────┘    └───────────────┘
                                                                                │
                                                                        SMTP Delivery

Modules

Module Role Lines
agent/crawler.py Playwright + requests website intelligence extractor 219
agent/analyzer.py Gemini fit scoring + deterministic fallback 157
agent/pitch_builder.py Gemini personalized email + template fallback 120
outbound_flow.py CLI orchestrator + SMTP delivery 273

Quick Start

pip install -r requirements.txt
playwright install chromium

# Demo mode (3 fixture leads, no API key required)
python outbound_flow.py --demo

# Analyze a single URL
python outbound_flow.py --url https://example.com --demo

# Full pipeline with leads CSV
export GEMINI_API_KEY="your-key"
export SMTP_HOST="smtp.example.com"
export SMTP_USER="you@example.com"
export SMTP_PASS="password"
export SENDER_NAME="Your Name"
export SENDER_EMAIL="you@example.com"

python outbound_flow.py --leads fixtures/leads.csv --output output/run.json

Output Format

Each lead produces a structured JSON result:

{
  "url": "https://example.com",
  "contact_email": "hello@example.com",
  "intel": {
    "company_name": "Acme Corp",
    "headline": "Scale your sales pipeline",
    "fit_score": 78,
    "fit_tier": "hot"
  },
  "analysis": {
    "fit_score": 78,
    "pain_points": ["Manual prospect research consuming 4-8 hours per rep"],
    "personalization_hooks": ["Their headline 'Scale your sales pipeline' signals growth focus"],
    "recommended_tier": "professional"
  },
  "pitch": {
    "subject": "quick question about Acme's outreach workflow",
    "body": "I noticed your headline...",
    "_source": "gemini"
  },
  "status": "sent",
  "duration_s": 4.2
}

AI Integration

  • Model: gemini-2.5-flash-lite (low latency, sufficient for structured extraction)
  • Temperature: 0.2 for analysis (deterministic), 0.6 for pitch (creative variety)
  • Schema enforcement: JSON schema in system prompt + regex cleanup prevents parse failures
  • Graceful degradation: heuristic stub runs when API is unavailable

Automation Depth

OutboundFlow removes human work at every stage:

  • Research: replaced by Playwright crawler (JS-rendered pages supported)
  • Qualification: replaced by Gemini fit scoring
  • Copywriting: replaced by Gemini pitch generation with site-specific hooks
  • Delivery: SMTP with retry logic built into the orchestrator

A rep using this tool goes from a URL to a sent email in ~6 seconds per lead.

Fixture Demo

Run python outbound_flow.py --demo for a full offline demo using 3 fixture companies. No API key required — the stub analyzer and template pitch builder run the complete pipeline.


Built by vøiddo — a small studio shipping AI-flavoured products, free dev tools, Chrome extensions and weird browser games.

About

AI-Powered B2B Outreach Automation — URL in, personalized email out. AI Workflow Automation Challenge 2026.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors