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 onboardinguv tool install openoutreach && openoutreach walks 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 & sendingOpenOutSend 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 CSVopenoutreach find 10 emails > leads.csv produces 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)

  1. You give a short product + market description.
  2. The LLM generates search keywords.
  3. OpenOutFind queries BetterContact’s licensed index (free) for matching firms.
  4. 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.
  5. When the confidence gate is passed, a paid BetterContact lookup fetches a verified work email (one credit per hit).
  6. 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; add emails to 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 uv or 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


All details are taken directly from the repository’s README; no additional features are inferred.

Related

  • Dispatch
  • Project
  • Project
  • Project
  • Project