A LinkedIn outreach agent you can self-host: the MIT client, source on GitHub

Last updated 29 September 2026

HeyLead is an AI agent for LinkedIn outreach, and its client is on GitHub under the MIT licence. It finds the right people, writes to them in the voice of your own LinkedIn posts, follows up and handles replies. You can run the client yourself or use the hosted plan. The hosted backend, its prompts and its knowledge base are proprietary.

Source: github.com/D4umak/linkedin-outreach-mcp. Package: heylead on PyPI.

What is in the repo

Self-host it

You need two accounts of your own:

  1. Unipile, which connects to LinkedIn. Sign up at unipile.com and put the DSN and API key in ~/.heylead/config.json as unipile_api_url and unipile_api_key.
  2. An LLM API key from Gemini, Claude or OpenAI. AI calls are billed to you; a free Gemini key is enough to start.

For this local option, install uv and the Claude Code CLI first. Verify uvx --version and claude --version, then run:

claude mcp add --scope user heylead -- uvx heylead

Start a new Claude Code session and check /mcp. If either command is missing, use the hosted setup below.

Then tell your AI: "Set up my HeyLead profile with this Gemini key: ...". Contacts and messages stay on your machine in a local SQLite database. Sending runs from your machine, so it stops when the machine sleeps.

Or use the hosted plan

Paste the prompt below into your AI chat, sign in in your browser, and connect LinkedIn in the dashboard. No Unipile account and no API keys. Campaigns run from the cloud with your laptop closed, and there is a web dashboard next to the chat.

Set up HeyLead using https://heylead.dev/llms.txt

How it reaches LinkedIn

Through Unipile's API. It does not use a Chrome extension or drive your browser. HeyLead sends from your own LinkedIn account at a human pace: at most 20 invitations a day and 100 a week on a free LinkedIn account (more on Premium or Sales Navigator: a newly connected paid account starts at 20 a day and doubles each week up to its limit), Monday to Friday 08:00 to 22:00 in your time zone, minutes apart. It backs off when LinkedIn pushes back and resumes on its own. You can pause any campaign at any time. LinkedIn's own rules are in the Terms.