A multi-agent AI system for automated lead enrichment, audience expansion, and cold outbound campaign management.
Imagine hiring a dream team of specialists to handle your cold outbound operations:
- A Supervisor who analyzes your lead data and coordinates the team
- A Lead Enrichment Expert who finds verified emails and contact info
- An Audience Expansion Specialist who finds lookalike companies and people
- An Email Campaign Specialist who manages your email sequences in Instantly
- A LinkedIn Outbound Specialist who manages LinkedIn campaigns in HeyReach
- A Research Analyst who gathers intelligence from company websites
This project brings that dream team to life using AI agents. Drop in a CSV of leads, and watch as the agents work together to enrich your data, expand your audience, and prepare it for outreach.
graph TB
subgraph "๐ฏ Input"
CSV[CSV Lead List]
end
subgraph "๐ง Supervisor Layer"
S[Supervisor Agent<br/>GPT-5.1<br/><i>Orchestrates the team</i>]
end
subgraph "๐ฅ Specialist Agents"
LM[LeadMagic Agent<br/>GPT-4o-mini<br/><i>Email finding & validation</i>]
LA[Lookalike Agent<br/>GPT-4o-mini<br/><i>Audience expansion</i>]
IA[Instantly Agent<br/>GPT-4o-mini<br/><i>Email campaigns</i>]
HR[HeyReach Agent<br/>GPT-4o-mini<br/><i>LinkedIn campaigns</i>]
FC[Firecrawl Agent<br/>GPT-4o-mini<br/><i>Web intelligence</i>]
end
subgraph "๐ External APIs"
LM_API[LeadMagic API<br/><i>Lead enrichment</i>]
OC_API[Ocean.io API<br/><i>Lookalike discovery</i>]
IA_API[Instantly API v2<br/><i>Email campaigns</i>]
HR_API[HeyReach API<br/><i>LinkedIn outbound</i>]
FC_API[Firecrawl API<br/><i>Web scraping</i>]
end
subgraph "๐ค Output"
OUTPUT[Enriched Leads +<br/>Expanded Audience +<br/>Email & LinkedIn Ready]
end
CSV --> S
S --> |delegates| LM
S --> |delegates| LA
S --> |delegates| IA
S --> |delegates| HR
S --> |delegates| FC
LM --> |calls| LM_API
LA --> |calls| OC_API
IA --> |calls| IA_API
HR --> |calls| HR_API
FC --> |calls| FC_API
LM --> |reports| S
LA --> |reports| S
IA --> |reports| S
HR --> |reports| S
FC --> |reports| S
S --> OUTPUT
- ๐ง Email Finder - Discover business emails from name + company
- โ Email Validation - Verify deliverability before sending
- ๐ค LinkedIn Enrichment - Extract profile data from LinkedIn URLs
- ๐ฑ Mobile Finder - Discover phone numbers
- ๐ข Company Search - Get company details from domain
- ๐ Reverse Lookup - Find profiles from email addresses
- ๐ Lookalike Companies - Find companies similar to your best customers
- ๐ฅ Lookalike People - Find decision makers matching your ICP
- ๐ List Expansion - Multiply your target list with quality lookalikes
- ๐ฏ Decision Maker Discovery - Find the right contacts at target companies
- ๐ Campaign Creation - Set up new email outreach campaigns
- ๐ฅ Lead Import - Bulk import enriched leads
- ๐ Analytics - Monitor campaign performance
- ๐ฌ Account Management - Manage sending accounts
- ๐ผ LinkedIn Campaigns - Manage LinkedIn outbound sequences
- ๐ค Connection Requests - Automate connection requests
- ๐ฌ LinkedIn Messaging - Send follow-up messages
- ๐ Campaign Analytics - Track acceptance and reply rates
- ๐ค Account Management - Manage LinkedIn sender accounts
- ๐ Website Scraping - Extract content from company sites
- ๐บ๏ธ Site Mapping - Discover all pages on a domain
- ๐ Structured Extraction - Pull specific data points
git clone https://github.com/yourusername/cold-outbound-dream-team.git
cd cold-outbound-dream-team# Create virtual environment (requires Python 3.10-3.13)
python3.12 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt# Copy the example environment file
cp .env.example .env
# Edit .env with your API keysRequired API Keys:
| Service | Get Key From | Purpose |
|---|---|---|
| OpenAI | platform.openai.com/api-keys | Powers the AI agents |
| LeadMagic | app.leadmagic.io/settings/api | Lead enrichment |
| Ocean.io | app.ocean.io/settings/api | Lookalike discovery |
| Instantly | app.instantly.ai/app/settings/integrations | Email campaigns |
| HeyReach | app.heyreach.io โ Settings โ API | LinkedIn campaigns |
| Firecrawl | firecrawl.dev | Web scraping |
# Analyze a CSV to see enrichment recommendations
python -m src.main analyze data/input/sample_leads.csvSee what enrichment your data needs:
python -m src.main analyze your_leads.csvOutput:
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ Cold Outbound Dream Team โ
โ Analyzing your lead data... โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
Data Summary
โโโโโโโโโโโโโโโโโโโโฌโโโโโโ
โ Total Rows โ 100 โ
โ Missing Emails โ 45 โ
โ Has LinkedIn โ Yes โ
โ Has Website โ Yes โ
โโโโโโโโโโโโโโโโโโโโดโโโโโโ
Enrichment Recommendations:
1. Use LeadMagic Email Finder for 45 missing emails
2. Use LeadMagic Email Validation to verify existing emails
3. Use Firecrawl to scrape company websites for context
Run the full enrichment workflow:
python -m src.main enrich your_leads.csvOptions:
--output,-o- Custom output path--skip-email-finder- Skip finding missing emails--skip-validation- Skip email validation--skip-scraping- Skip website scraping
Find lookalike companies and people:
# Find companies similar to your best customers
python -m src.main expand "stripe.com,shopify.com" --factor 20
# Also find decision makers
python -m src.main expand "stripe.com" --titles "CEO,VP Sales,CTO"Options:
--factor,-f- How many lookalikes per seed (default: 10)--find-people/--no-people- Also find decision makers--titles,-t- Job titles to target
Enrich leads and create an Instantly campaign:
python -m src.main campaign your_leads.csv --name "Q1 Outreach"Monitor your API credit balances:
python -m src.main creditsYour input CSV should contain lead data. The system automatically detects columns:
| Column Type | Detected Keywords |
|---|---|
| email, mail, e-mail | |
| Name | name, first, last, contact |
| Company | company, organization, business |
| linkedin, profile_url | |
| Website | website, url, domain |
| Phone | phone, mobile, cell, tel |
Example CSV:
first_name,last_name,company,website,linkedin_url,email
John,Smith,Acme Corp,https://acme.com,https://linkedin.com/in/johnsmith,
Sarah,Johnson,TechStart,https://techstart.io,,sarah@techstart.iocold-outbound-dream-team/
โโโ src/
โ โโโ main.py # CLI entry point
โ โโโ config.py # Configuration management
โ โโโ agents/ # AI agent definitions
โ โ โโโ supervisor.py # Orchestrator (GPT-4o)
โ โ โโโ leadmagic_agent.py
โ โ โโโ lookalike_agent.py
โ โ โโโ instantly_agent.py
โ โ โโโ heyreach_agent.py # NEW! LinkedIn outbound
โ โ โโโ firecrawl_agent.py
โ โโโ tools/ # API integrations
โ โ โโโ leadmagic/ # LeadMagic API tools
โ โ โโโ ocean/ # Ocean.io API tools
โ โ โโโ instantly/ # Instantly API tools
โ โ โโโ heyreach/ # HeyReach API tools (NEW!)
โ โ โโโ firecrawl/ # Firecrawl API tools
โ โโโ crews/ # CrewAI orchestration
โ โ โโโ outbound_crew.py
โ โโโ utils/ # Helper functions
โ โโโ csv_handler.py
โ โโโ validators.py
โโโ data/
โ โโโ input/ # Drop CSVs here
โ โโโ output/ # Enriched results
โโโ diagrams/
โ โโโ architecture.svg # System diagram
โโโ examples/
โ โโโ run_enrichment.py # Example script
โโโ .env.example # Environment template
โโโ requirements.txt
โโโ README.md
Supervisor Agent (GPT-5.1)
"I analyze your lead data, create enrichment strategies, and coordinate my specialist team to deliver the best results."
- Examines CSV structure and data quality
- Prioritizes enrichment tasks
- Delegates to specialist agents
- Aggregates results
LeadMagic Agent (GPT-4o-mini)
"I'm your lead enrichment expert. Give me a name and company, and I'll find their verified email, phone, LinkedIn, and more."
- Finds missing email addresses
- Validates email deliverability
- Enriches LinkedIn profiles
- Discovers mobile numbers
Lookalike Agent (GPT-4o-mini) ๐
"I expand your audience by finding companies and people similar to your best customers. Give me your seed accounts, and I'll multiply your list."
- Finds similar companies using Ocean.io
- Identifies decision makers at target accounts
- Expands lead lists with quality lookalikes
- Matches your ideal customer profile
Instantly Agent (GPT-4o-mini)
"I manage your cold email campaigns. I'll create sequences, import leads, and monitor performance."
- Creates email campaigns
- Imports enriched leads
- Monitors analytics
- Manages sending accounts
HeyReach Agent (GPT-4o-mini) ๐
"I manage your LinkedIn outbound campaigns. I'll add leads to LinkedIn sequences, send connection requests, and follow up with personalized messages."
- Adds leads to LinkedIn campaigns
- Manages connection requests
- Sends LinkedIn messages
- Monitors acceptance and reply rates
- Manages LinkedIn sender accounts
Firecrawl Agent (GPT-4o-mini)
"I research companies online. I'll scrape their websites to find personalization opportunities for your outreach."
- Scrapes company websites
- Extracts structured data
- Discovers site structure
- Gathers intelligence for personalization
1. CSV Upload โ Supervisor analyzes data structure
2. Strategy โ Supervisor creates enrichment plan
3. Expansion โ Lookalike Agent finds similar companies (optional)
4. Enrichment โ LeadMagic Agent finds/validates emails
5. Research โ Firecrawl Agent gathers company context
6. Campaign โ Instantly Agent creates campaign + imports leads
7. Output โ Enriched CSV ready for outreach
| Variable | Required | Default | Description |
|---|---|---|---|
OPENAI_API_KEY |
Yes | - | OpenAI API key for LLM |
LEADMAGIC_API_KEY |
Yes | - | LeadMagic API key |
OCEAN_API_KEY |
Yes | - | Ocean.io API key |
INSTANTLY_API_KEY |
Yes | - | Instantly API key |
HEYREACH_API_KEY |
Yes | - | HeyReach API key |
FIRECRAWL_API_KEY |
Yes | - | Firecrawl API key |
SUPERVISOR_MODEL |
No | gpt-5.1 |
Model for supervisor |
AGENT_MODEL |
No | gpt-4o-mini |
Model for specialists |
VERBOSE |
No | false |
Enable verbose logging |
This system uses paid APIs. Estimated costs per operation:
| Operation | Service | Credits/Call | Approximate Cost |
|---|---|---|---|
| Email Finder | LeadMagic | 1 | ~$0.03 |
| Email Validation | LeadMagic | 1 | ~$0.01 |
| Profile Search | LeadMagic | 1 | ~$0.05 |
| Mobile Finder | LeadMagic | 1 | ~$0.10 |
| Lookalike Companies | Ocean.io | 1 | ~$0.02 |
| Lookalike People | Ocean.io | 1 | ~$0.03 |
| Website Scrape | Firecrawl | 1 | ~$0.01 |
๐ก Tip: Use the analyze command first to estimate costs before running enrichment.
Contributions welcome! Please read our contributing guidelines.
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
- CrewAI - Multi-agent orchestration framework
- LeadMagic - Lead enrichment API
- Ocean.io - Lookalike audience discovery
- Instantly - Cold email platform
- HeyReach - LinkedIn automation platform
- Firecrawl - Web scraping API
- OpenAI - Large language models
MIT License - see LICENSE for details.
Built with โค๏ธ for the cold outbound community