HeyLead

LinkedIn outreach through the HeyLead MCP server. Use when the user wants to find and message people on LinkedIn - sales prospecting and lead generation, recruiting and candidate s…

D4umak

@d4umak

Install

$ openclaw skills install @d4umak/heylead

HeyLead — AI agent for LinkedIn outreach

One sentence starts a draft campaign. Nothing is sent until you launch it.

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. This skill connects it to your OpenClaw agent.

What This Skill Does

This skill connects HeyLead as an MCP server in your OpenClaw agent, giving it 22 specialized LinkedIn outreach tools:

  • ICP Generation — RAG-powered buyer personas with pain points, fears, barriers, and LinkedIn search parameters
  • Campaign Management — Create, pause, resume, archive, and compare outreach campaigns
  • Personalized Outreach — Voice-matched connection invitations that sound like you, not a bot
  • Multi-Touch Sequences — Follow-up DMs, engagement warm-ups (comments, likes, endorsements)
  • Reply Handling — Sentiment classification, auto-responses, meeting scheduling
  • Brand Strategy — Auto-audit your LinkedIn profile, generate a 4-week improvement plan, ICP-aware headline/summary optimization
  • Analytics — Funnel reports, conversion rates, stale lead detection, engagement ROI
  • Autonomous Scheduling — Cloud is the default sender; move to this machine with scheduler(action='send_from', host='local')
  • Strategy Engine — Cross-campaign pattern detection, revenue estimation, auto-optimization

Use cases

A campaign has one of six goals, and the ICP, the fit check and the messages follow it: Sell a product or service, Find a job, Hire people, Find partners or investors, Find a vendor and Research interviews.

  • Sell a product or service: Reach the people who buy what you built.
  • Find a job: Reach the people who hire for the role you want.
  • Hire people: Reach candidates for a role you are filling. Works with a custom brief.
  • Find partners or investors: Reach the people who can sign a partnership or an investment. Works with a custom brief.
  • Find a vendor: You are the buyer. Reach the people who sell what you need.
  • Research interviews: Reach people to interview, survey or test with. Works with a custom brief.

Hire people, Find partners or investors and Research interviews run on a custom brief until their message sets exist.

Setup

Prerequisites

  • uv installed (brew install uv on Mac; other systems: see uv's install page)

Configuration

Add to your openclaw.json:

{
  "mcp": {
    "servers": [
      {
        "name": "heylead",
        "command": "uvx",
        "args": ["heylead"]
      }
    ]
  }
}

First-Time Account Setup

After adding the MCP server, tell your OpenClaw agent:

"Set up my HeyLead profile"

Hosted: take the 90-second quiz, Sign in, connect LinkedIn on Account, then launch the draft campaign. Or start at heylead.dev/auth/login-url. Paste the token message into chat — the backend handles LinkedIn access and AI calls. The quiz waitlist is marketing-only.

Self-hosted: requires a Unipile account for LinkedIn access and your own LLM API key (a free Gemini key works). Pass the key to setup_profile, open the LinkedIn link it returns, then run setup_profile again.

Usage Examples

"Find me CTOs at fintech startups in New York"
"Generate an ICP for AI SaaS founders"
"Create a campaign targeting VP of Sales at Series B startups"
"Send outreach to the campaign"
"Check my replies"
"How's my outreach doing?"
"Suggest next action"
"Analyze my LinkedIn brand"
"Enable the cloud scheduler"

Typical Workflow

1. setup_profile(backend_jwt="...")             → Connect LinkedIn
2. generate_icp(target_description="CTOs fintech") → Create buyer personas
3. create_campaign(target_description="...", icp_id="...") → Find prospects (saved as a draft)
4. campaign(action="launch", campaign_id="...") → Start outreach
5. scheduler(action="status")                   → Confirm cloud sending (or send_from host=local)
6. inspect() / check_replies() / show_status()  → Monitor pipeline and agent holds
7. prospect(action="close", outcome="won")      → Track conversions

Agent ops

When the user asks what the agents did, who is held, or why a reply was skipped, call inspect() first. It is read-only and never writes. If they ask what the agents decided on a hosted account, call inspect(action='journal'). If a campaign looks idle in the send window, call inspect(action='review'). If they ask what the agents left for the next tick, what the swarm thinks, or who went dark, call inspect(action='commons'). A campaign-wide coordinator hold: campaign(action='clear_coordinator_hold', campaign_id='...').

A hold: prospect(action="conversation", outreach_id="...") then send_message(action="reply", outreach_id="..."). Operator replies skip the reply agent.

Never paste model-authored text as the LinkedIn message. The send tools generate it.

Never launch a draft unless the user asked.

In-process agents default to act. Use edit_campaign(enable_reply_agent="observe"), edit_campaign(enable_strategist_replan_agent="observe"), edit_campaign(enable_hot_lead_closer="observe"), or edit_campaign(enable_coordinator_agent="observe") to return to logging-only, "off" to disable. product(action='tick') can patch this git checkout and open a PR — never from the send path; cloud workers and uvx installs without .git refuse.

Sending model

Campaigns are created as drafts and only start when explicitly launched. Every send passes rate limits, working-hours checks, and a 1st-degree connection guard. 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.

All 22 Tools

Brand and content, signals, bulk import, CRM sync and the shared network pool are registered only when the client is started with HEYLEAD_TOOLS=all, which brings the full set of 47.

ToolWhat it does
setup_profileConnect LinkedIn, analyze writing style, create voice signature
accountManage LinkedIn accounts — list, switch, or disconnect
organizationHosted orgs — list, switch, invite editor/viewer, create a client workspace
generate_icpCreate Ideal Customer Profiles with buyer personas
icpPreview which LinkedIn profiles a saved ICP matches, without creating a campaign
profile_signalsCompile a targeting request (country ties, interests) into LinkedIn recall queries and profile evidence
create_campaignFind prospects and build an outreach campaign (as a draft)
campaignLaunch, pause, resume, archive, delete, emergency stop, retry failed
edit_campaignUpdate name, mode, booking link, preferences, or agent act flags
import_prospectsImport prospects from CSV
generate_and_sendSend personalized connection invitations
send_messageFollow-up DMs and replies
send_emailSend email via Unipile (Gmail/Outlook). Never Mail.app.
check_repliesMonitor inbox, classify sentiment, surface hot leads
book_meetingPut an agreed call on your Google Calendar and invite the prospect
show_statusCampaign dashboard with stats and health; links to the matching heylead.dev/dashboard page and, on hosted accounts, attaches a snapshot card
engage_prospectComment, react, follow, or endorse prospects
inboxBrowse and read LinkedIn inbox messages
backfill_inboxProcess unreplied inbox messages through the inbound pipeline
create_postGenerate and publish posts to LinkedIn, X/Twitter, or both
prospectSkip, close with outcome, view conversation or timeline
contactsSearch and manage the global contact base
partnerTrack follow-ups with partners, vendors, and investors
crm_syncSync won deals to HubSpot CRM
analyticsReports, comparisons, and exports
inspectRead-only digest of operator holds, replans, closer decisions, reply skips, gated jobs, and (hosted) action='journal'
suggest_next_actionAI-recommended next step
signalsView and analyze buying signals
manage_watchlistManage signal keyword watchlists
networkNetwork intelligence across connected accounts
brand_strategyLinkedIn personal brand audit and strategy
profileView and restore LinkedIn profile change history
schedulerAutonomous scheduler — status, on/off, send_from (cloud default / local opt-in), always-on
knowledgeKnowledge base that grounds messages — list, add, remove, refresh, search sources. Hosted only
productLocal git checkout only — patch this repo and/or open a PR

Pricing

PlanPriceLimits
Free$0Up to 2 follow-ups per prospect
Pro$29 per connected LinkedIn account per monthUp to 5 follow-ups per prospect

Invitation limits follow the LinkedIn account (free, Premium or Sales Navigator), not the HeyLead plan. Self-hosted free installs have monthly quotas: 50 invitations, 20 messages, 30 engagements, 1 active campaign, 3 ICP generations.

Privacy

  • Contacts and messages stored in local SQLite database
  • AI calls routed through HeyLead backend or your own key
  • No messages or contacts stored on HeyLead servers

Links

License

MIT

Top skills in this category