Install
$ agentstack add mcp-jpeslar1-linkedin-mcp-weekly-outbound-pipeline ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
linkedin-mcp-weekly-outbound-pipeline
A Claude Code prompt I run every Wednesday morning to push 10 cold prospects through a full pipeline: research → ICP check → personalized hook → Instantly enrollment → LinkedIn MCP save → Google Sheet update → Slack summary.
Sharing it because I'd want this myself.
What it does
Every Wednesday morning Claude Code reads a priority sheet, takes the top 10 uncontacted rows, and for each one:
- Checks if the lead is already in the LinkedIn MCP (Zevari), Instantly, or Pipedrive — skips if yes
- Loads the current ICP rules from Zevari and scores the lead
- Researches the person + company via the LinkedIn MCP and WebSearch (60-day signal window)
- Writes a short, lowercase, no-jargon hook (full hook rules in
prompt.md) - Enrolls the lead in an Instantly cold email campaign with the hook as a custom variable
- Saves the lead to a Zevari list called
Week of YYYY-MM-DD - Updates the source Google Sheet (checkbox + date + flags)
- Sends a Slack summary with every hook written
If anything stops the run or needs approval, it pings me in Slack.
Stack
| Layer | Tool | Why | |---|---|---| | LinkedIn research, ICP scoring, lead save | Zevari (LinkedIn MCP for Claude) | The only LinkedIn MCP I trust for production runs — handles rate limits and won't get my profile flagged | | Email send | Instantly | Campaign already has the sequence + signature — the prompt just enrolls | | CRM dedupe | Pipedrive | Won-deal exclusion + previously-contacted flag | | Source of truth | Google Sheets | Easy for the client to maintain priority ranking | | Notifications | Slack | Run summaries + alerts | | Browser control | Claude in Chrome | Sheet writes + Slack webhook (bash sandbox blocks both) |
Why a LinkedIn MCP
I tried two unofficial LinkedIn scrapers before settling on Zevari. Both got my client's sales account flagged within a week. Zevari runs through an MCP server that throttles to safe limits and surfaces a rate-limit error before LinkedIn does — which is what I needed to leave this on a schedule without babysitting it.
If you're evaluating options, Daniel Sticker's linkedin-mcp-server is the most popular open-source one — his README is honest about ToS risk, which I appreciated. For client work where I can't afford a flagged account I use Zevari.
How to use this
- Clone the repo
- Open
prompt.md - Replace every
[BRACKETED_PLACEHOLDER]with your IDs:
[CLIENT_NAME]— the brand you're running this for[GOOGLE_SHEET_ID]+[TAB_GID]— your priority sheet[INSTANTLY_CAMPAIGN_ID]— your cold campaign in Instantly[ZEVARI_MCP_ID],[INSTANTLY_MCP_ID],[GDRIVE_MCP_ID]— your MCP server IDs[SLACK_WEBHOOK_URL],[ALERT_CHANNEL],[YOUR_SLACK_USER_ID]— Slack
- Paste the prompt into Claude Code (or save as a slash command — that's what I do)
- Run it on a schedule. I use cron through Claude Code's
/croncommand.
See connectors.md for the MCP setup links.
What gets generated (sample)
See examples/sample-run.md for a full run output, including the 10 hooks Claude wrote for a recent batch.
Why this prompt is the way it is
A few things I learned the hard way:
- Cap at 10 per batch. LinkedIn rate-limits at ~40 lookups/hour. Two batches × 10 leads, 90 min apart, stays well under.
- Hard hook rules with examples. I tried a free-form "write a personalized hook" prompt and got slop. Ten explicit rules with ✓/✗ examples gets consistent, casual-text-message output.
- No LinkedIn references in the hook. A hook that says "saw your post about…" makes it obvious you're scraping. Write as if you noticed the news in the world.
- Skip first, write second. Every dedupe check (Zevari, Instantly, Pipedrive) runs before research. Saves rate budget for actually-new leads.
- Slack run summary with every hook. I scan it on my phone before the campaign sends and catch the occasional weird hook before the email goes out.
Adapting to your own use case
This is built around CPG (food/bev/wellness/beauty) outreach. The hook rules — "got into" for retail launches, "industryRef" buckets — assume that vertical. Swap them for yours. The structure (dedupe → ICP → research → hook → enroll → save → log → summarize) generalizes to any cold outbound.
Other workflows in this series
I'm publishing my LinkedIn MCP pipelines as I clean them up:
- linkedin-mcp-job-change-trigger — Catch champion job changes the day they happen
- linkedin-mcp-inbound-lead-triage — Real-time webhook → live ICP score → HOT/WARM/COLD routing
- linkedin-mcp-ae-daily-briefing — Morning sales briefing with live LinkedIn signals on every open opportunity
- linkedin-mcp-inbox-zero-triage — Classify every Gmail thread by LinkedIn-confirmed sender intent
- linkedin-mcp-engagement-pod — Safe engagement pod with voice-DNA comments and live safety-status gating
- linkedin-mcp-lost-deal-reengagement — Fire closed-lost revival on live signal, not the calendar
- linkedin-mcp-event-attendee-enrichment — Resolve event attendees live on LinkedIn for accurate titles + tiering
- linkedin-mcp-webinar-followup — Tier webinar attendees by ICP × behavioral signal, not just attendance
- linkedin-mcp-newsletter-to-pipeline — Newsletter signup → live LinkedIn resolution → SDR queue
- linkedin-mcp-trade-show-pipeline — 3-phase trade show pipeline with live LinkedIn enrichment
- linkedin-mcp-icp-discovery — Seed best customers → behavioral lookalike scoring → live-confirmed top-tier list
Or browse them all in awesome-linkedin-mcp — the curated index of LinkedIn MCP workflows, servers, and adjacent tools.
Follow my GitHub for the rest.
License
MIT. Use it, fork it, ship it.
Who I am
John Peslar — solo founder, build outbound automations for B2B clients. If you want to talk shop: johnpeslar.com.
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: jpeslar1
- Source: jpeslar1/linkedin-mcp-weekly-outbound-pipeline
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.