# An open-source AI SDR for LinkedIn

> HeyLead is an open-source (MIT) AI SDR for LinkedIn. Self-host it with your own Unipile account and LLM key, or use the hosted plan. Source on GitHub.

This is the Markdown twin of https://heylead.dev/open-source-ai-sdr (the page, in text). Index for agents: https://heylead.dev/llms.txt

Last updated 19 September 2026

HeyLead is an AI SDR for LinkedIn, and the code is on GitHub under the MIT licence. It finds the right people, writes to them in your voice, follows up and handles replies. You can run it yourself or use the hosted plan.

Source: [github.com/D4umak/linkedin-outreach-mcp](https://github.com/D4umak/linkedin-outreach-mcp). Package: [heylead on PyPI](https://pypi.org/project/heylead/).

## What is in the repo

- The MCP server, with 22 tools for your AI client (47 with HEYLEAD_TOOLS=all) (Claude Code, Claude Desktop, Cursor, any stdio MCP client)
- Targeting: buyer personas from a plain description, LinkedIn search and fit scoring
- Writing: voice matching from your own LinkedIn posts, openers and follow-ups
- Replies: reading and answering replies, meeting booking
- A local scheduler with rate limits and quiet hours

## Self-host it

You need two accounts of your own:

1. **Unipile**, which connects to LinkedIn. Sign up at [unipile.com](https://www.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](https://docs.astral.sh/uv/getting-started/installation/) 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 around the clock, 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), 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](https://heylead.dev/terms).

Related: [LinkedIn MCP server](https://heylead.dev/linkedin-mcp-server) · [LinkedIn outreach from Claude](https://heylead.dev/claude-linkedin-outreach) · [What is HeyLead?](https://heylead.dev/what-is-heylead)
