OpenOutreach Review
Open-source AI lead finder: describe your product and it finds and qualifies the leads
Email Marketing · Open Source · OPEN SOURCE
Overview
OpenOutreach is an open-source AI agent for B2B lead generation, and it inverts the usual cold-email workflow: you do not bring a list. You describe your product and your target market, and the agent finds the people who fit, writes a reason for each one, and emails them from your own mailbox. It is a self-hosted Python CLI installed with two commands, uv tool install openoutreach and then openoutreach, organized as three packages on one Django registry and database: OpenOutFind for discovery, qualification, and CRM, OpenOutSend for the outreach agent, mailbox, and send guards, and OpenOutreach as the wizard that ties them together. Lead discovery runs on BetterContact's Lead Finder, a licensed data provider, with a confidence gate that rations the paid email lookups, which cost one credit per verified work email; a free account comes with 40 credits and no card required. The AI work is split into named steps: an LLM turns your product description into search keywords, another pass qualifies candidates against your ICP and writes the plain-language reason (there is deliberately no score column), and the agent writes each opener while send guards handle the sending window, daily cap, and pacing. A Gaussian Process over profile embeddings that learns from your verdicts is documented as an active experiment that has not been shown to beat random ordering. LLM access is verified at the prompt and accepts OpenAI, Anthropic, or any OpenAI-compatible endpoint; any SMTP or IMAP mailbox with an app password works, and Google Workspace works out of the box. A Claude Code plugin is included, and the same logic ships as a skill for Codex or Cursor. CSV export is shaped for Instantly and Smartlead importers with no column mapping. GPLv3, around 2,900 GitHub stars, funded by affiliate links rather than subscriptions.

AI Capabilities
- LLM keyword generation from your product description
- LLM qualification with a written reason per lead
- Gaussian Process learning over verdicts (experimental)
- Agent-written openers
- Confidence gate on paid email lookups
Key Integrations
Pricing
OpenOutreach is free to self-host under the GPL-3.0 licence.
Free, GPLv3, self-hosted. You pay your own LLM keys and mailbox, plus BetterContact credits for discovery (1 credit per verified work email; free account includes 40 credits, no card)
How to install
- Install the CLI with uv tool install openoutreach, then run openoutreach to start the wizard. State lives in ~/.openoutreach.
- Describe your product and target from files so you are not re-typing them: openoutreach init --product-docs product.md --target target.md.
- Find before you send: openoutreach find 10 lists candidates with written reasons, openoutreach find 10 emails spends credits on verified addresses, and openoutreach send 5 mails them. openoutreach status and openoutreach run 5 cover the rest of the verb set.
- Configure providers when prompted: OpenAI, Anthropic, or any OpenAI-compatible endpoint for the LLM, and any SMTP/IMAP mailbox with an app password for sending, with Google Workspace working out of the box. Headless setups name missing OPENOUTFIND_* and OUTSEND_* variables instead of prompting.
- Optional: install as a Claude Code plugin with /plugin marketplace add eracle/OpenOutreach then /plugin install openoutreach@openoutreach, or point Codex or Cursor at skills/find-leads/SKILL.md. Server deploys have a Docker Compose file (local.yml) and an image on GitHub Container Registry.
Best for
Technical founders and small teams that want to generate qualified outbound lists from a product description, keep prospect data on their own infrastructure, and export straight into Instantly or Smartlead.
Not for
Teams that already hold lead lists and only need sequencing, anyone who wants a graphical interface, and senders unwilling to own SPF, DKIM, warm-up, and data-controller duties.
Review notes
OpenOutreach's differentiator is the verdict, not the volume: every lead comes back with a written reason in plain language, and the README states there is no score column by design. That is a real advantage if you want to audit why someone was contacted, and a real cost if you want to sort thousands of rows by fit. Assessed from the repository and its docs; we have not run a campaign with it.
The cost structure is unusual and worth understanding before you start. The tool is free, but discovery runs on BetterContact's paid Lead Finder at one credit per verified work email, with 40 free credits on a no-card account. A confidence gate rations those paid lookups, and the affiliate link to that provider is the project's only stated revenue alongside GitHub Sponsors. Budget in credits, not subscription fees.
The compliance surface is deliberately narrow. The README claims zero platform-ToS exposure because it is browserless and holds no social-network accounts, and the legal notice puts data-controller duties and sender responsibility on you, stating use at your own risk with no liability assumed. Self-hosting means your domain carries the sending reputation, so SPF, DKIM, and warm-up discipline still decide whether any of this works.
The AI layer is documented with unusual honesty. The Gaussian Process model over profile embeddings, which learns from your accept and reject verdicts, is labeled an active experiment and not shown to beat random ordering. Most vendors would have shipped that as a headline feature.
Verdict
A different shape of cold-outreach tool: lead finding with written reasons instead of a list to upload, priced in data-provider credits rather than seats, and candid about which parts are still experimental.
Pros and cons
| Pros | Cons |
|---|---|
| ✓ GPL-3.0 licence with free self-hosting | ✗ No hands-on test - this assessment is based on vendor documentation and the public repository |
| ✓ AI capabilities: LLM keyword generation from your product description | |
| ✓ Established community (2,952 GitHub stars) | |
| ✓ Native integrations include BetterContact (Lead Finder), OpenAI, Anthropic (9 listed) |
Building your martech shortlist?
The weekly newsletter: one tool teardown, one workflow, no fluff. Free.
Frequently asked questions
What is OpenOutreach?
Open-source AI lead finder: describe your product and it finds and qualifies the leads. It ships with LLM keyword generation from your product description, 2,952 GitHub stars. MartechSignal's review covers features, pricing, and how it compares to alternatives.
How much does OpenOutreach cost?
OpenOutreach is open source - GPL-3.0 licensed and free to self-host; the public repository carries 2,952 stars; native integrations cover BetterContact (Lead Finder), OpenAI, Anthropic. You pay in server time and maintenance, not licences.
Is OpenOutreach a good Email Marketing tool in 2026?
A different shape of cold-outreach tool: lead finding with written reasons instead of a list to upload, priced in data-provider credits rather than seats, and candid about which parts are still experimental.
Is OpenOutreach an Instantly or Smartlead alternative?
It solves the other half of the problem. OpenOutreach finds and qualifies leads and can send from your own mailbox, but it also exports a CSV with columns already shaped for Instantly and Smartlead importers (email, first_name, last_name, company, title, website, linkedin_url, reason, lead_id, qualified_at) with no column mapping. A common pattern is OpenOutreach for sourcing and a dedicated sequencer for sending at volume.
Is OpenOutreach safe for cold email and GDPR?
The project is explicit that the obligations stay with you: the legal notice covers data-controller duties and sender responsibility and states use at your own risk with no liability assumed. The README argues the tool has zero platform-ToS surface because it is browserless and holds no social-network accounts. Self-hosting keeps prospect data on your servers, which is what makes it interesting for EU teams, but lawful basis, suppression lists, and warm-up are still yours to manage.
How does OpenOutreach decide which leads to qualify next?
With a Gaussian Process over 384 dimensional FastEmbed profile embeddings. When negative verdicts outnumber positive ones it exploits, taking the profile with the highest predicted fit probability; otherwise it explores using a BALD score, which favours profiles the model is most uncertain about. Passing qualification gates the paid email lookup. Cold start is seeded with synthetic ideal profiles that are flagged as synthetic and never contacted or exported. The README is candid that this loop is an active experiment not yet shown to beat picking at random.
What does an OpenOutreach export look like?
One CSV written to stdout with email, first_name, last_name, company, title, website, linkedin_url, reason, lead_id, and qualified_at. There is no score column by design: the written reason carries the qualification instead. The shape matches Instantly and Smartlead importers without column mapping, so the handoff is a file redirect rather than a transformation. In Docker you get a container that runs one job and exits with no open ports, which suits a scheduled pipeline rather than a dashboard.