# HeyLead (heylead.dev): AI agent for LinkedIn outreach. MCP server for Claude Code, Cursor and any MCP client

> HeyLead (heylead.dev) is an AI agent for LinkedIn outreach: it finds the right people, writes in the voice of your own LinkedIn posts, follows up, and handles replies. Free to start.

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

AI agent for LinkedIn outreach

# Ship the product. Agents bring the first users.

It finds the right people, writes to them, follows up, and handles replies. From Claude Code, Cursor or a web dashboard.

Paste into Claude Code or your AI chat

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

Connect HeyLead, sign in, then describe who you want to reach. [Setup help](https://heylead.dev/linkedin-mcp-server)

[Start free, no card](https://heylead.dev/dashboard/login) [Install in Claude Code](https://heylead.dev/#install)

From Claude Code, Cursor or any MCP client

```
> I shipped a webhook debugger for Stripe. Find 40 people who would buy it.
  generate_icp     2 personas
  create_campaign  draft · 40 people · nothing sent

> Launch it.
  campaign launch  warm-up starts 08:00 your time
```

Runs in the tools you already open

Claude Code · Claude Desktop · Cursor · Windsurf · Gemini CLI · VS Code · Web dashboard

[Source on GitHub · MIT client](https://github.com/D4umak/linkedin-outreach-mcp) · [PyPI heylead](https://pypi.org/project/heylead/) · [MCP Registry](https://registry.modelcontextprotocol.io/?search=heylead)

## One line. One sign-in. Then one sentence. Install it where you already work.

Connect the hosted server and sign in in your browser. No Python, uv or API key needed.

### Paste into your AI chat

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

### Or run in the Claude Code terminal

`claude mcp add --transport http --scope user heylead https://heylead.dev/mcp`

Then open `/mcp`, select HeyLead and sign in. If the server is not listed, start a new session.

Using Claude Desktop or claude.ai? In Connectors, choose **Add custom connector**, paste this URL, then click Connect:

`https://heylead.dev/mcp`

Using VS Code? Merge this into `.vscode/mcp.json` in the project (the key is `servers`, not `mcpServers`), then start the server from the MCP panel and sign in:

`{"servers":{"heylead":{"type":"http","url":"https://heylead.dev/mcp"}}}`

- Your AI checks the setup for your client. No CLI? Use the desktop connector or the settings-file steps in the guide.
- Sign in with Google, then connect LinkedIn in the dashboard.
- Ask “Show my HeyLead status” to check the connection. Draft a campaign before launching outreach.

[Full setup guide](https://heylead.dev/linkedin-mcp-server) [Instructions for your agent →](https://heylead.dev/llms.txt)

## Try it now, no account needed. Type what you built. See who would buy it.

Two sentences in, buyer personas and a first message out, in about 30 seconds.

Press the button and your personas appear here, in about 30 seconds. Nothing is sent to anyone. Below is an example, for the placeholder text above.

### Payments engineering lead

fit 91%

Debugs webhook retries by hand. Gets paged for silent failures.

title: payments · seniority: lead+ · size: 11-200

### Fintech founder, seed stage

fit 84%

No infra team. Every failed payment is a support ticket.

title: founder · industry: fintech · size: 1-50

First message, drafted for the first persona

Hi Ana. Saw you run the Stripe integration at Nexo on your own. I built a debugger that replays failed webhooks with the diff. Want the two-minute version?

Free to start, one LinkedIn seat

Monthly cancel any time

2 min from install to first draft

Ready agents plan every step for you

Free: one LinkedIn seat, cloud sending included. Pro: $29 per connected account per month.

What is HeyLead?

HeyLead is an AI agent for LinkedIn outreach: it finds the right people, writes to them in the voice of your own LinkedIn posts, follows up, and handles replies. It runs from Claude Code, Cursor, any MCP client or a web dashboard. Made by Olnesta Ltd in London. Not heylead.com, heylead.ai or heylead.de.

Against the sequence builders

Others give you a dashboard and a sequence builder. HeyLead gives you a tool call and a set of agents. [More about the name →](https://heylead.dev/what-is-heylead)

## Use one part or all of it. Everything outreach needs, as tools your agent can call.

### [ICP](https://heylead.dev/product/icp)

Buyer personas from one sentence.

generate_icp

### Search

The exact search, previewed first.

icp preview all

### Enrichment

Profile, company, posts behind every message.

contacts

### [Signals](https://heylead.dev/product/signals)

40+ signal types. A strong one starts outreach.

signals all

### Warm-up

View, follow, comment. Then invite.

engage_prospect all

### Messaging

Invitation, opener, follow-ups, InMail, email.

send_message

### Agents in the loop

Five agents decide. You read why.

inspect all

### Scheduling

Cloud, every 5 minutes, inside your caps.

scheduler

### Replies and booking

Replies answered. A yes becomes a meeting.

check_replies · book_meeting

### Analytics and CRM

Rates per campaign. Won deals to HubSpot.

analytics · crm_sync all

### Posts and brand

Posts that read like your own, on a schedule.

create_post all

### Or all of it, from chat

"How is my outreach doing?" answered with numbers.

show_status

all = HEYLEAD_TOOLS=all, or the dashboard.

## Signals. A signal is the reason to write.

It watches for the moment something changes, and the first message says why now.

What we collect

### On LinkedIn

Posts, job changes, hiring, profile viewers, competitors' commenters.

### Around the web

Funding and hires from news. Reddit, Hacker News, G2, job boards.

### Your site and your tools

Which companies visit which pages. An ingest API. Webhooks out.

### Inbound

Every request qualified. Strangers' DMs triaged. Pitches filtered.

### What we store

Each signal with its source, score and expiry. Provenance on every prospect.

### How we analyse

Type × confidence × freshness. Two signals on one person form a pattern.

### What it triggers

Above the threshold, the person joins a campaign and the opener says why now.

Signals add prospects on top of the ICP search; they are not the main source yet. In chat they need HEYLEAD_TOOLS=all.

[Start free, see your signals](https://heylead.dev/dashboard/login) [How signals work →](https://heylead.dev/product/signals)

## ICP and enrichment. Grounded, not guessed.

One sentence in. Two to four buyer personas out, grounded in your website and 22 sales books.

### Preview before you spend an invite.

The exact search, filter by filter. Creates nothing.

### A judge that asks the question most tools skip.

Can this audience buy what you sell?

### Every person enriched from LinkedIn itself.

Profile, company, posts. No claim outside the facts.

excludes your connections · excludes competitors' staff · excludes open-to-work · fit floor before first touch · CSV import, every row accounted for

LinkedIn-only enrichment. 150 profile reads per seat a day.

icp preview · one campaign, filter by filter

## Agents in the loop. Nothing to build. Agents decide, and you can read why.

No sequence editor. A planner writes each person's day; a strategist rewrites it when something changes.

### Planner

Today's action per person.

### Strategist

Replans when a signal, accept or reply lands.

### Send-fit judge

Refuses a follow-up a human would not send.

### Reply agent

Answers from your facts. Holds the rest for you.

### Closer

Books the meeting once they say yes.

Each agent is act, observe or off per campaign.

inspect(action='journal')

Opening messages and follow-ups wait for your approval until you switch to autopilot. Invitations are not held.

## Working while you sleep. Runs with your laptop closed. Sends only when a person would.

Ticks every five minutes. Sends Mon–Fri, 08–22, your time zone. No LinkedIn call at night.

Every 5 min the scheduler ticks

Mon–Fri 08–22 your time zone, by default

22:00–08:00 no LinkedIn call at all

5 min → 6 h backoff when LinkedIn pushes back

Limits follow your LinkedIn plan. One command stops everything.

## What people run. Sales, your network, vendor scouting, job search, agencies.

### Founder-led sales

Describe what you shipped. Answer replies yourself if you like. [How it runs](https://heylead.dev/use-cases/founder-led-sales)

### Your network

Message the people you already know, without spam. [How it runs](https://heylead.dev/use-cases/your-network)

### Vendor scouting

You are the buyer. Messages written from your side. [How it runs](https://heylead.dev/use-cases/vendor-scouting)

### Job search

Reach hiring managers. Every reply is held for you. [How it runs](https://heylead.dev/use-cases/job-search)

### Agencies

One workspace per client, billed per connected LinkedIn account. [How it runs](https://heylead.dev/use-cases/agencies)

Cold outreach

33% of 405 invitations accepted. 14 of 79 new connections replied. Acceptance took 2 days 8 hours.

People you already know

45 of 120 replied.

Founder's own workspace, 21 Sep 2026, reviewed by Denys Chumak.

Recruiting and partner outreach work with a custom brief.

## Optional. A dashboard, if you want one.

After a one-time sign-in, everything on it is also a tool call.

Numbers from the founder's own workspace, 21 Sep 2026.

## Open client. Read it. Fork it. Point your agent at it.

### Source on GitHub

The MCP client is MIT. The hosted backend and prompts are not.

[Star on GitHub · MIT licence](https://github.com/D4umak/linkedin-outreach-mcp)

### Self-host

Your own Unipile account and LLM key, data in local SQLite.

uvx heylead

### For your agent

[/llms.txt](https://heylead.dev/llms.txt), [/llms-full.txt](https://heylead.dev/llms-full.txt), [/.well-known/mcp.json](https://heylead.dev/.well-known/mcp.json).

heylead.dev/llms.txt

[Every release, one address each, and an RSS feed →](https://heylead.dev/changelog)

## Pricing. Free means free, with the limits printed.

Free

$0

One LinkedIn seat. Cloud sending included.

- ICP, search, warm-up, invitations, opener
- Up to 2 follow-ups per person
- Replies, signals, analytics
- Invitation limits follow your LinkedIn plan: about 100 a week on a free one

[Start free, no card](https://heylead.dev/dashboard/login)

Pro

$29 per connected account, per month

Everything on Free, plus:

- Up to 5 follow-ups per person
- More than one LinkedIn account
- Monthly. Cancel any time. No setup fee.

[Start free, upgrade later](https://heylead.dev/dashboard/login)

Self-hosted is free with its own monthly quotas: 50 invitations, 20 messages, 30 engagements, 1 active campaign, 3 ICP generations.

[Full pricing: the invitation ceilings per LinkedIn plan and what a week looks like →](https://heylead.dev/pricing)

## Safety and trust. Nothing sends until you launch. Messages wait for your approval.

Nothing is sent until you press Launch. One command stops everything.

Opening messages and follow-ups wait for your approval. Invitations are not held.

Limits follow your LinkedIn plan and back off when LinkedIn pushes back.

Sends in working hours, your time zone. Nothing at night.

Your LinkedIn password never touches HeyLead.

Existing connections are excluded from cold campaigns. An opt-out is honoured for good.

Export your contacts any time with `contacts(action='export')`. Finished job rows are kept 7 days, action counters 2 days, the event log 30 days. Deleting the workspace (Settings → Workspace) removes its members and releases the LinkedIn seat; to have your campaigns, contacts and messages erased, write to [hello@heylead.dev](mailto:hello@heylead.dev).

The fine print

HeyLead is not affiliated with LinkedIn. It reaches LinkedIn through Unipile, which is also not affiliated. LinkedIn's own rules are in the [Terms](https://heylead.dev/terms). Since 2 August 2026 the EU AI Act asks an AI that writes to people to say so unless a person reviews each message. HeyLead does not add that disclosure yet. By default a person reviews opening messages and follow-ups; invitations, InMail and automatic replies go out unreviewed, and autopilot turns the review off.

Questions people ask

How does HeyLead pace itself?

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. No LinkedIn call is made between 22:00 and 08:00. HeyLead is not affiliated with LinkedIn; it connects through Unipile, which is not affiliated either. LinkedIn's own rules are in the [Terms](https://heylead.dev/terms).

Does HeyLead send LinkedIn messages automatically?

Not until you say so twice. create_campaign saves a draft and sends nothing; outreach starts with campaign(action='launch'). A new workspace runs in approval mode: opening messages and follow-ups wait until you approve them, and the approved text is what goes out. Invitations, InMail and email are not held. Switch to autopilot and the agents send inside your working hours and caps. campaign(action='emergency_stop') pauses everything.

Is HeyLead free, and what does the free plan include?

Free is $0 with no contract and no setup fee: one LinkedIn seat, cloud sending with your laptop closed, ICP generation, search preview, warm-up, invitations, the opening message, up to 2 follow-ups per person, replies, signals and analytics. Invitation limits follow your LinkedIn plan. Pro is $29 per connected account per month, cancel any time: up to 5 follow-ups per person and more than one LinkedIn account. Self-hosted installs are free with monthly quotas.

Can I use HeyLead from Claude Code or Cursor without the dashboard?

Yes. Copy the setup prompt above into your AI chat. HeyLead connects over remote MCP with browser sign-in, with no Python or uv installation. Connect LinkedIn once in the dashboard, then ask your AI to show your HeyLead status and draft a campaign.

What happens when a prospect replies?

The reply agent reads the intent and the objection type and answers from your campaign's facts. Anything ambiguous, or a question outside the brief, is held for you. "Not now" gets a check-in in 30 days. When someone says yes and a time is on the table, the closer books it on your Google Calendar; it never invents a time and books at most five a day. To answer every reply yourself, turn off automatic replies (the campaign's Auto-reply setting, or edit_campaign(enable_auto_replies='off')).

Is HeyLead (heylead.dev) the same as heylead.com or heylead.ai?

No. HeyLead (heylead.dev) is the AI agent for LinkedIn outreach made by Olnesta Ltd in London. heylead.com is a US agency, heylead.ai a Swiss leads company and heylead.de a German recruiting agency; none is related.

[More questions →](https://heylead.dev/faq)

## Describe what you shipped. Go back to shipping.

[Start free, no card](https://heylead.dev/dashboard/login) [Install in Claude Code](https://heylead.dev/#install)

[Not ready? See your buyer personas first →](https://heylead.dev/quiz)

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