eracle/OpenOutreach
Open-source AI agent for B2B lead generation — describe your product, it finds the people who fit, explains why each one does, and emails them from your mailbox. Self-hosted CLI, one install.
OpenOutreach – Self‑hosted AI lead‑generation agent
What it is – An open‑source command‑line tool that lets you describe your product and target market, then uses a language model and a licensed lead‑data service to discover, qualify, and email prospects. All processing runs on your own machine; the only external calls are to an LLM API (e.g., OpenAI or Anthropic) and to the BetterContact email‑finder service.
Who it’s for – Small‑to‑medium B2B teams, founders, or developers who want automated outbound outreach without paying a SaaS cold‑email platform or uploading a pre‑made list.
Key features
- One‑command onboarding –
uv tool install openoutreach && openoutreachwalks you through four inputs (LLM key, BetterContact key, product description, target market) and stores them in~/.openoutreach. - Lead discovery & qualification – The companion OpenOutFind searches a licensed data source, the LLM turns your description into search keywords, and a small active‑learning loop decides which candidates are a fit, attaching a human‑readable reason for each lead.
- Email enrichment & sending – OpenOutSend resolves a verified work email (paid per lookup) and sends a personalized opener from your own mailbox, respecting pacing and daily caps.
- CLI‑only, no browsers or social‑media accounts – No scraping, no platform‑ToS risk.
- Export‑ready CSV –
openoutreach find 10 emails > leads.csvproduces a file with columns that match common sequencer imports (email,first_name,last_name,company,title,website,linkedin_url,reason,…). - Claude Code integration – A ready‑made Claude plugin/skill lets any LLM‑driven agent invoke the same commands.
How it works (high‑level)
- You give a short product + market description.
- The LLM generates search keywords.
- OpenOutFind queries BetterContact’s licensed index (free) for matching firms.
- An LLM evaluates each candidate against your Ideal Customer Profile, writes a plain‑language reason, and a Gaussian‑process model learns from those verdicts to prioritize the next batch.
- When the confidence gate is passed, a paid BetterContact lookup fetches a verified work email (one credit per hit).
- OpenOutSend composes an opener using the same product description and sends it via your SMTP credentials.
Installation & quick start
uv tool install openoutreach # installs the package and its two child CLIs
openoutreach # runs the wizard, then finds & emails leads
# or more explicit
openoutreach run 5 # find up to 5 qualified leads with emails and send them
All state lives under ~/.openoutreach; re‑running the command continues where it left off.
Core commands
openoutreach– full wizard + find + send (default).openoutreach init– only run the onboarding wizard.openoutreach find <n> [emails]– fetch n qualified leads; addemailsto spend credits for verified addresses.openoutreach send [<n>]– send emails for stored leads, optionally limiting to n.openoutreach status– show configuration, credit usage, and queued leads.
Dependencies
- Python (installed via
uvor pip). - An LLM API key (OpenAI, Anthropic, or compatible).
- A BetterContact API key (free tier provides 40 email‑lookup credits).
- SMTP credentials for the mailbox you’ll send from.
Project layout
openoutreach/– orchestrator code (__main__.py, settings, wizard).- Child projects (
OpenOutFind,OpenOutSend) are pulled in as pinned dependencies and can be used separately. - Tests, Docker compose (
local.yml), and Makefile for development.
License & sustainability
- Licensed under GPL‑v3.
- The tool stays free by earning affiliate commissions from the BetterContact sign‑up link; you may use any other provider if you prefer.
Where to get help
- Telegram channel: https://t.me/openoutreach
- Issues on GitHub, or book a free 15‑minute call via the badge in the README.
All details are taken directly from the repository’s README; no additional features are inferred.
Related
- Dispatch
- Project
- Project
- Project
- Project