Skip to content

eracle/OpenOutreach

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OpenOutreach Logo

The open-source growth engine that puts your LinkedIn B2B lead generation on autopilot.

GitHub stars GitHub forks License: GPLv3 Open Issues


Demo:

Demo Animation

πŸš€ What is OpenOutreach?

OpenOutreach is a self-hosted, open-source LinkedIn automation tool designed for B2B lead generation, without the risks and costs of cloud SaaS services.

It automates the entire outreach process in a stealthy, human-like way:

  • Discovers and enriches target profiles
  • Sends personalized connection requests
  • Follows up with custom messages after acceptance
  • Tracks everything in a local database (full data ownership, resumable workflows)

Why choose OpenOutreach?

  • πŸ›‘οΈ Undetectable β€” Playwright + stealth plugins mimic real user behavior
  • 🐍 Fully customizable β€” Python-based campaigns for unlimited flexibility
  • πŸ’Ύ Local execution β€” You own your workflow
  • 🐳 Easy deployment β€” Dockerized, one-command setup
  • ✨ AI-ready β€” Built-in templating for hyper-personalized messages (integrate GPT easily)

Perfect for founders, sales teams, and agencies who want powerful automation without account bans or subscription lock-in.


⚑ Quick Start (Local Installation)

Get up and running in minutes by running the application directly on your machine.

Prerequisites

  • Git
  • Python (3.11+ recommended)
  • venv for creating virtual environments (usually included with Python)

1. Clone the Repository

git clone https://github.com/eracle/OpenOutreach.git
cd OpenOutreach

2. Set Up a Virtual Environment

It's highly recommended to use a virtual environment to manage dependencies.

# Create the virtual environment
python -m venv venv

# Activate it
source venv/bin/activate

3. Install Dependencies

We use uv for fast dependency management, which will be installed first.

# Install uv
pip install uv

# Install project dependencies
uv pip install -r requirements/local.txt

# Install required browser assets
playwright install --with-deps chromium

4. Configure the Application

You need to provide your LinkedIn credentials and target profiles.

  1. Configure LinkedIn accounts

    cp assets/accounts.secrets.template.yaml assets/accounts.secrets.yaml

    Edit assets/accounts.secrets.yaml with your credentials.

  2. Add target profiles
    Paste LinkedIn profile URLs into assets/inputs/urls.csv.

5. Run the Application

You can run the main script directly:

python main.py

The tool is fully resumable β€” stop/restart anytime without losing progress.

🐳 Docker Installation

We also support running the application via Docker. This is a great option for ensuring a consistent environment and simplifying dependency management.

For full instructions, please see the Docker Installation Guide.


✨ Features

Feature Description
πŸ€– Advanced Browser Automation Powered by Playwright with stealth plugins for human-like, undetectable interactions.
πŸ›‘οΈ Reliable Data Scraping Uses LinkedIn's internal Voyager API for accurate, structured profile data (no fragile HTML parsing).
🐍 Python-Native Campaigns Write flexible, powerful automation sequences directly in Python.
πŸ”„ Stateful Workflow Engine Tracks profile states (DISCOVERED β†’ ENRICHED β†’ CONNECTED β†’ COMPLETED) in a local DB – resumable at any time.
πŸ’Ύ Persistent Local Database Full data ownership via dedicated SQLite DB per account.
🐳 Containerized Setup One-command Docker + Make deployment.
πŸ–₯️ Visual Debugging Real-time browser view via built-in VNC server (localhost:5900).
✍️ AI-Ready Templating Jinja or AI-prompt templates for hyper-personalized messages (easy GPT integration).

❀️ Support OpenOutreach – Keep the Leads Flowing!

This project is built in spare time to provide powerful, free open-source growth tools.

Maintaining stealth, fixing bugs, adding features (multi-account scaling, better templates, AI enhancements), and staying ahead of LinkedIn changes takes serious effort.

Your sponsorship funds faster updates and keeps it free for everyone.

Sponsor with GitHub


Popular Tiers & Perks:

Tier Monthly Benefits
β˜• Supporter $5 Huge thanks + name in README supporters list
πŸš€ Booster $25 All above + priority feature requests + early access to new campaigns
🦸 Hero $100 All above + personal 1-on-1 support + influence roadmap
πŸ’Ž Legend $500+ All above + custom feature development + shoutout in releases

Thank you to all sponsors β€” you're powering open-source B2B growth! πŸš€


πŸ—“οΈ Book a Free 15-Minute Call

Got a specific use case, feature request, or questions about setup?

Book a free 15-minute call β€” I’d love to hear your needs and improve the tool based on real feedback.

Book a 15-min call


πŸ“– Usage & Customization

The default campaign (linkedin/campaigns/connect_follow_up.py) handles:

  • Profile enrichment
  • Connection requests
  • Personalized follow-ups

Profile states: DISCOVERED β†’ ENRICHED β†’ CONNECTED β†’ COMPLETED (or FAILED)

Edit the campaign file directly for custom logic, templates, or AI integration.


πŸ“‚ Project Structure

β”œβ”€β”€ assets/
β”‚   β”œβ”€β”€ accounts.secrets.yaml      # LinkedIn credentials
β”‚   └── inputs/
β”‚       └── urls.csv               # Target profiles
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ docker.md                  # NEW: Docker setup guide
β”‚   └── ...
β”œβ”€β”€ linkedin/
β”‚   β”œβ”€β”€ actions/                   # Browser actions
β”‚   β”œβ”€β”€ api/                       # Voyager API client
β”‚   β”œβ”€β”€ campaigns/                 # Workflows
β”‚   β”œβ”€β”€ db/                        # SQLite utilities
β”‚   β”œβ”€β”€ navigation/                # Login helpers
β”‚   └── sessions/                  # Session management
β”œβ”€β”€ main.py                        # Entry point
β”œβ”€β”€ local.yml                      # Docker Compose
└── Makefile                       # Shortcuts

πŸ“š Documentation


πŸ’¬ Community

Join for support and discussions:
Telegram Group


βš–οΈ License

GNU GPLv3 β€” see LICENCE.md


πŸ“œ Legal Disclaimer

Not affiliated with LinkedIn.

Automation may violate LinkedIn's terms (Section 8.2). Risk of account suspension exists.

Use at your own risk β€” no liability assumed.


Made with ❀️

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Contributors 5