Stick around for the Fun Fact at the bottom - it reveals how much the average sales team wastes per month manually building lead lists. The number is embarrassing. And completely avoidable.
Jump to it โ or keep reading and earn it.Here's a scenario I hear constantly from founders: you know exactly who your customer is. You can describe them in one sentence. "VP of Engineering at Series B SaaS startups that are scaling their backend team." Perfect ICP. Crystal clear.
And then what? You open Apollo, buy a list of 500 contacts for $300, spend a weekend writing personalized messages, click send, and wait. Three months later: 12 replies, 2 demos booked, and a nagging feeling that you're burning money to send emails that feel like spam.
The problem isn't your targeting. It's the tooling. Most outreach tools were built around a fundamental assumption: you already have the list. They help you send to people. They don't help you find, qualify, and learn who the right people actually are.
OpenOutreach flips this completely. You tell it what you sell and who you're targeting. It finds the leads, scores them with AI, sends the messages, handles the follow-ups, and gets smarter with every response it receives. The whole thing is free, open-source, and runs on your own machine.
This guide will walk you through setting it up - step by step, in plain English, even if you've never used Docker or touched a terminal before.
Not sure where to start? Ask AI to guide you.
Opens ChatGPT with a pre-built prompt โ covers this guide, whether it fits your situation, and what Syrin does.
The prompt includes the full guide context, your setup path, and links to Syrin โ the AI will explain everything and answer follow-ups.
Skip the background - go directly to the step-by-step setup guide. Takes under an hour.
At Syrin, we build the runtime control plane for AI agents - mission control for autonomous systems running in production. OpenOutreach runs a fully autonomous AI outreach pipeline, complete with AI decision loops, multi-turn conversations, and a self-improving scoring model. That makes it exactly the kind of system we think about every day - including what happens when that loop starts going off-track. This guide is practical: we set it up, ran it, and wrote down everything we wish we'd known first.
"The best outreach list isn't one you buy. It's one your AI builds and refines over time."
OpenOutreach is a self-hosted LinkedIn automation platform with 2,000+ GitHub stars. It uses an AI pipeline to discover leads, score them using Bayesian machine learning, and handle multi-turn conversations - all running on your own machine. It's completely free to self-host.
What Is OpenOutreach, and Why Does It Exist?
Before we touch any settings, it's worth understanding what problem this tool was actually built to solve. Because once you get it, the setup decisions make a lot more sense.
The $200/month problem
LinkedIn automation tools - PhantomBuster, MeetAlfred, Waalaxy, Dux-Soup - are useful. But they're also expensive. At 2โ5 paid seats, most teams spend $150-400/month just for the software. On top of that, you're still buying the lead lists from Apollo or ZoomInfo. And using their shared proxy infrastructure, which LinkedIn has gotten very good at detecting.
The founders behind OpenOutreach looked at this and asked a different question: what if the tool was free, ran on your own machine (so it uses your IP, not a shared proxy pool), and didn't require you to build the list first?
The three things that make it different
- โ
You describe your ideal customer in plain language. The AI writes LinkedIn search queries, runs them, and discovers candidates automatically. You never touch a spreadsheet.
- โ
Every time someone connects, replies, or ignores you, OpenOutreach updates its internal model. Over weeks, it becomes much better at predicting who's worth targeting - a feedback loop that static lists can never provide.
- โ
Everything lives in a local database file on your machine. No vendor has your leads, your conversations, or your results. GDPR-friendly by default.
What it actually does, in plain English
Imagine you hired a tireless researcher who:
- Reads your product description and writes LinkedIn search queries
- Finds hundreds of matching profiles and checks if they're actually a good fit
- Sends them a personalized connection request
- When they connect, starts a conversation - and adjusts based on what they say
- Logs everything in a spreadsheet you can always see
That's OpenOutreach. The "researcher" is a combination of an LLM (like GPT-4) and a statistical model that learns from your results.
Before You Start: What You'll Need
Setting up OpenOutreach takes about 30-60 minutes. Here's everything you need before you begin.
The essentials
- โ
Strongly recommended: create a dedicated secondary LinkedIn account for automation. Your main account is too valuable to risk. A fresh account with a realistic profile photo, a job history, and 50+ connections looks legitimate to LinkedIn's detection systems.
- โ
OpenOutreach uses an AI model to generate search queries and write messages. It works with OpenAI (GPT-4), Anthropic (Claude), or any OpenAI-compatible API. If you don't have one, go to platform.openai.com and grab an API key - you'll spend maybe $5-15/month at typical usage levels.
- โ
Docker is the easiest way to run OpenOutreach. Think of it as a special container that runs the software in an isolated environment, so you don't have to install anything complicated. It's free. Download it at docker.com/products/docker-desktop.
LinkedIn's terms of service prohibit automated activity. OpenOutreach ships with safety limits and runs from your own IP, which reduces detection risk - but no automation tool can eliminate it entirely. Use a dedicated account. If that account gets restricted, your main profile stays safe.
What you do NOT need
- Any technical background
- A lead list, CSV, or database of contacts
- A paid subscription to any other tool
- A server or cloud hosting (at first - that's optional later)
Setup: Step by Step
We'll use Docker - the fastest, most beginner-friendly path. It runs the entire OpenOutreach system in one command.
Install Docker Desktop
Go to docker.com/products/docker-desktop and download the installer for your operating system (Mac or Windows). Run the installer and follow the prompts. When it's done, open Docker Desktop and make sure it says "Docker Desktop is running" in the status bar.
You don't need to understand what Docker does to use it. Just think of it as a prerequisite that makes everything else work.
Open your terminal
The terminal is a text-based interface for your computer. Don't let that intimidate you - we'll only use a few commands.
- On Mac: Press
Command + Space, type "Terminal", and press Enter - On Windows: Press
Windows key, type "Command Prompt", and press Enter
You'll see a window with a blinking cursor. This is where you'll type commands.
Run the OpenOutreach startup command
Copy this entire command and paste it into your terminal. Then press Enter.
The \ at the end of the first line just means "the command continues on the next line" - paste all three lines together and press Enter once. What this does: it downloads the latest version of OpenOutreach and starts it. The -v part tells it to save your data in a folder on your machine - so if you restart, your leads and conversations are still there.
The first time you run this, it may take 2-5 minutes to download. Subsequent starts are instant.
Open the live browser view
Once the command finishes loading (you'll see a line saying something like "Server started"), open your web browser and go to:
http://localhost:6080/vnc.html
localhost just means "your own computer" - this address only works on your machine, not from the internet. You'll see a live browser window - that's OpenOutreach's automated browser, running locally, waiting for instructions. This is how you'll watch it work in real time.
Complete the interactive setup
The first time you open OpenOutreach, it will walk you through a short setup wizard asking for:
- Your LinkedIn credentials - email and password for your dedicated account
- Your LLM API key - paste in your OpenAI or Anthropic key
- Your product description - a 2โ3 sentence explanation of what you offer
- Your target market - describe your ideal customer (e.g., "VP of Sales at B2B SaaS companies with 50โ200 employees")
Take your time on the last two. The AI uses these descriptions to generate search queries and write messages. Better input = better targeting.
If you can see the live browser at localhost:6080 and the setup wizard has run, OpenOutreach is working. Everything from here is configuration - shaping who it targets and how it reaches out.
Setting Up Your First Campaign
Now that the tool is running, let's make it actually do something useful.
Access the admin dashboard
Open a second browser tab and go to: http://localhost:8000/admin/
This is OpenOutreach's built-in CRM - a clean interface showing every lead in your pipeline, what stage they're at, and the results so far. The default login is username: admin and password: admin - you'll be prompted to change this on first login.
Define your campaign
In the admin dashboard, click Campaigns โ Add Campaign. You'll fill in:
Product Description - Be specific. Not "we help companies with AI" but "we build AI agents that automate customer support ticket routing for SaaS companies with support teams of 10+ people." The more precise this is, the better the AI's targeting.
Target Market - Again, specificity wins. "VP of Customer Experience or Head of Support at B2B SaaS companies, Series A or later, 50โ500 employees" will outperform "B2B companies."
Daily Connection Limit - Start conservative. Set this to 15-20 per day. LinkedIn flags accounts that send too many requests too fast. Lower is safer, especially on a newer account.
Message Template - OpenOutreach generates personalized messages automatically, but you can set the tone and include key points. Example:
Keep your first connection request short. "Hi [first name], I saw you're leading support ops at [company] - we help teams like yours cut ticket resolution time by 40% with AI routing. Would love to connect." Under 300 characters, no pitch, no links. Save the pitch for after they connect.
Start the campaign
Once your campaign is configured, click Activate. OpenOutreach will:
- Generate LinkedIn search queries based on your target market
- Open LinkedIn in the automated browser and run the searches
- Pull profile data for matching results
- Score each profile (this is the AI qualification step)
- Send connection requests to high-scoring profiles, paced over the day
- When someone connects, begin a follow-up conversation
You can watch all of this happen in real time at localhost:6080.
How the AI Qualification Works (Plain English Version)
This is the part that makes OpenOutreach genuinely different from every other tool on the market. It's worth understanding, even at a high level.
Most outreach tools use filters: industry = SaaS, title = VP, company size = 50โ500. These filters are static. They don't improve. A VP of Engineering at a 200-person company matches the filter whether they're a great prospect or a terrible one.
OpenOutreach uses a different approach. After each connection request you send, the system notes whether the person:
- Ignored the request
- Connected but didn't reply
- Connected and engaged in conversation
- Became a real lead
Over time, it builds a statistical model: "People with these characteristics (seniority level, industry keywords, company growth stage, mutual connections, profile completeness) tend to engage. People with those characteristics don't."
The underlying model is called a Gaussian Process Regressor with BALD - Bayesian Active Learning by Disagreement. What that means practically: early on, OpenOutreach casts a wide net. As it gathers data, it tightens its targeting to the profiles most likely to convert. Your 30th campaign day should be noticeably better than your first.
This is why the first two weeks feel slower than expected - the model is learning. By week three or four, if you've run consistent volume, you'll see a meaningful improvement in connection acceptance rates and reply rates.
One thing to watch: AI learning loops can also drift. If the model starts over-indexing on a narrow profile type or the conversation agent starts generating off-brand messages, you want to catch it early. We wrote about how to spot and measure agent drift if you want to go deeper on this.
Staying Safe: How to Avoid Getting Your Account Flagged
This section is important. LinkedIn's detection systems have gotten significantly better in 2025โ2026. They look at behavioral patterns - not just the tool you're using. Here's how to stay well within safe limits.
- โ
Week 1: max 10 requests/day. Week 2: 15-20. Week 3+: up to 25-30 if engagement looks normal. Accounts that spike to 50+ requests on day one get flagged immediately.
- โ
A two-week-old LinkedIn account with 12 connections looks suspicious. Before running automation, spend 2โ3 weeks building the account naturally: connect with people you actually know, post once or twice, join a few groups.
- โ
Long messages with multiple links, bullet points, and a sales pitch in the first message are a red flag - both for LinkedIn detection and for real humans. Keep opening messages under 300 characters. No links. No attachments.
- โ
Configure OpenOutreach to only run during business hours in your timezone. Real humans don't send LinkedIn messages at 3am. Run 9am-6pm, Monday through Friday only.
- โ
If your acceptance rate drops below 15%, stop. Either your profile isn't compelling or your target market isn't a match. Adjust before sending more volume.
OpenOutreach requires you to explicitly acknowledge and accept LinkedIn's Terms of Service risks before running. The tool includes these safety features by design. You are responsible for how you use it. The recommendations above represent the community's collective knowledge on staying within safe limits - they are not guarantees.
OpenOutreach vs. The Alternatives: Which Should You Use?
OpenOutreach isn't the right tool for every situation. Here's an honest comparison.
| OpenOutreach | PhantomBuster | Waalaxy | Apollo.io | |
|---|---|---|---|---|
| Cost | Free (self-host) | $56โ$560/mo | $40โ$120/mo | $49โ$149/mo |
| Lead discovery | AI-generated (no list needed) | Manual or imported | Manual or imported | Database browse |
| Qualification | Bayesian ML, improves over time | None | None | Filter-based |
| Data ownership | Local SQLite (100% yours) | Vendor servers | Vendor servers | Vendor servers |
| IP safety | Your residential IP | Shared proxies | Shared proxies | N/A (email-based) |
| Tech required | Docker (beginner-friendly) | None | None | None |
| Learning curve | 1โ2 hours | 30 minutes | 30 minutes | 30 minutes |
| Improves over time | Yes (AI learns from results) | No | No | No |
Choose OpenOutreach if:
- You want zero ongoing software costs
- You're willing to spend one hour on setup
- You care about data ownership and privacy
- Your targeting is precise enough to describe in words
- You're running outreach over weeks or months (the AI gets better)
Choose a SaaS tool if:
- You need to be running in 30 minutes with no setup
- You're testing outreach for the first time and don't want infrastructure overhead
- Your team is non-technical and can't help if something breaks
- You're doing a short, one-off campaign and don't care about long-term learning
Buy lead list from Apollo ($300). Export 500 contacts. Manually write 20 personalized variants. Schedule send with Lemlist ($60/mo). Wait. Get 8% acceptance. Repeat next month with a new list, hoping it gets better.
Describe your product and ideal customer. OpenOutreach finds leads, qualifies them, sends messages, and learns what's working. Month 2 targeting is better than month 1. Month 3 is better than month 2. No list purchases. No per-seat fees.
Optional: Moving to the Cloud (When You're Ready)
Running OpenOutreach on your laptop works fine - but your laptop needs to be on for it to run. If you want it running 24/7 without babysitting your machine, there's a managed cloud option.
From your terminal:
This installs the OpenOutreach CLI, which lets you upload your local database to a managed server. The same open-source code runs there - no feature gating, no data locked in. You can switch back to self-hosting at any time and your data comes with you.
This is worth doing once you've validated your campaign on your local machine and want to scale up. Don't start here - start local, get results first, then decide if the managed option makes sense for your volume.
Reading Your Results: What to Look For
After the first week, open your admin dashboard at localhost:8000/admin/ and check these numbers.
Connection acceptance rate
Target: 20%+. If you're below 15%, something's off - either your profile doesn't match your target market's expectations, or your targeting is too broad. Narrow your ICP description and look at which profiles are accepting vs. ignoring you.
Reply rate (among connected)
Target: 10โ20%. This depends heavily on your message quality and the fit of your offer. If people are connecting but not replying, your opening message isn't creating enough curiosity. Make it shorter, more specific to their situation, and end with a question. The best way to improve this systematically is to run two message variants side by side and measure - we cover exactly how to A/B test AI agent configurations in a separate post.
Qualification score distribution
In the dashboard, look at the profile score histogram. Early on, it should be spread across a wide range. Over time, as the model learns, you should see more high-scoring profiles in your pipeline and fewer low-scoring ones being contacted. This shift is the Bayesian learning working.
Common Issues and Quick Fixes
"The Docker command isn't working" Make sure Docker Desktop is open and running (not just installed). The app needs to be actively running in the background before you can use Docker commands.
"I can't see anything at localhost:6080" Give it 30โ60 seconds after the startup command - the browser environment takes a moment to initialize. If it still doesn't load, try restarting the Docker container by pressing Ctrl+C in the terminal and running the startup command again.
"LinkedIn keeps asking me to verify my account" This happens on newer accounts or after login from an unfamiliar location. Log into LinkedIn normally in your regular browser first, complete any verification it asks for, then restart OpenOutreach. The tool will use the same cookies once you're verified.
"Messages aren't sending" Check your LLM API key first - if it's invalid or out of credits, the message generation step will silently fail. Log into your OpenAI or Anthropic dashboard and confirm you have active credits.
"My data disappeared after restarting"
This means the -v ~/.openoutreach/data:/app/data part of the startup command wasn't included. That flag mounts a persistent storage location. Add it to the command and restart - your future data will persist correctly.
The $47,000/Month Lead List Problem
A McKinsey Operations study found that the average B2B sales team spends 18.6 hours per week per rep on manual lead research and list building. At an average fully-loaded cost of $65/hour for a sales rep, that's $1,209 per rep per week - or $4,836/month per rep - on work a machine can do autonomously.
For a team of 10 reps: $48,360 per month. On research. Not selling.
OpenOutreach was built to eliminate exactly this. The leads find themselves.
What's Next After Setup
Once you've run your first two weeks and have real data:
- Review your top 20 accepted connections - what do they have in common that your target description didn't capture? Update your ICP to match.
- Look at the conversations the AI is having - are they progressing naturally or stalling? Adjust your follow-up prompts. If you're running other AI agents in your stack, Syrin's agent traces give you step-by-step visibility into exactly what each agent decided and why.
- Run message variants - don't guess which opening line converts better. Test two versions and let the data decide. Our post on A/B testing multi-agent systems walks through how to do this rigorously.
- Increase volume gradually - once acceptance rates look healthy (20%+), bump your daily limit up by 5 connections per week.
- Consider the managed cloud option - if you're closing deals and want 24/7 uptime without keeping your laptop on, the hosted version is worth evaluating.
The pattern that works: small batches, close observation, continuous adjustment. OpenOutreach's learning loop rewards patience. Teams that run it for 60+ days consistently see better results than teams that blast high volume in week one and burn out.
"Set it and forget it is a myth. The winning formula is: set it, watch it, improve it."
Want to see exactly what your AI outreach agent is doing?
Syrin is the runtime control platform for AI agents - mission control for autonomous systems. Connect it to any agentic pipeline, including OpenOutreach, and get full control over every decision, message, and lead scored. Know exactly what your agent did and why.
Why Your AI Agents Drift - And How to Catch It Before Your Users Do
Continue reading



