LinkedIn Scraper for Claude: Automate Prospecting in 2026
By Kushal Magar · August 15, 2026 · 12 min read
Key Takeaway
Claude cannot touch LinkedIn by itself — it needs an MCP server that retrieves the data for it. Once SyncGTM's server is connected, one prompt can pull the engagers on a competitor's post, enrich each profile, resolve a verified work email, and draft outreach that references the exact reason the prospect surfaced. The retrieval happens server-side, so your own LinkedIn session is never the thing doing the scraping.
Claude is very good at reasoning over a list of prospects. It is completely blind to LinkedIn. That gap is the entire problem a LinkedIn scraper Claude setup solves — you give the model a retrieval layer, and it turns a public signal into a qualified, contactable list without you opening a single browser tab.
This guide is the workflow, not another install walkthrough. If you want the tooling comparison and setup detail, read our LinkedIn scraper MCP breakdown. Here we go signal → list → enrich → outreach, using SyncGTM's MCP server as the data layer.
TL;DR
- The gap: Claude has no native LinkedIn access. Anthropic ships none, LinkedIn ships none. An MCP server is how you close it.
- One command:
claude mcp add --scope user --transport http syncgtm https://api.syncgtm.com/mcpthen authenticate in the browser. No API key. - The loop: pull a signal list → enrich the profiles → resolve verified contact details → draft outreach that cites the signal.
- Best signals: post engagers and commenters, recent job changes, promotions, and newly hired executives. All beat a static title filter.
- Cost shape: discovery is cheap (0.2–0.5 credits per record), work email is 1, mobile numbers are 12. Filter hard before you enrich.
- Account safety: retrieval happens server-side. Your LinkedIn session and cookies are never involved, unlike extension or headless-browser scrapers.
What a LinkedIn Scraper for Claude Actually Does
A LinkedIn scraper for Claude is an MCP server that exposes LinkedIn retrieval as callable tools, so Claude can fetch profile and engagement data mid-conversation. Claude never browses LinkedIn — it asks the server, gets structured JSON, and reasons over it.
That distinction matters more than it sounds. The model is not parsing a page; it is receiving typed fields it can filter, rank, and chain into the next call without hallucinating the gaps.
Three ways to get LinkedIn data into Claude
| Approach | Whose account is exposed | Fits the Claude loop? |
|---|---|---|
| Browser automation / extension | Yours — session cookie required | Partly. Slow, brittle, rate-limited by your own account. |
| Official LinkedIn APIs | None | Rarely. Partner-gated and scoped to ads and marketing, not prospecting. |
| Vendor MCP server (SyncGTM) | None — server-side retrieval | Yes. Structured JSON, chains straight into enrichment. |
The third row is what this tutorial builds on. For a wider view of the standalone tools in this space, see our roundup of LinkedIn scrapers.
Why Signal-First Beats Bulk Scraping
Most people wire up a LinkedIn scraper and immediately do the wrong thing with it: dump 5,000 profiles matching a title filter and blast them. Claude makes a different pattern cheap, and it is the one worth adopting.
Start from a signal — something a person did in the last 30 days — and let the signal define the list. The list is smaller, the intent is higher, and the first line of your outreach writes itself.
- Engagement signal. Someone reacted to or commented on a post about the problem you solve. Pulled with
linkedin_post_engagersorlinkedin_post_commenters. - Job-change signal. New role means new budget and a mandate to change things.
check_job_changeconfirms it for a known contact;newly_hired_executivesfinds them at an account list. - Promotion signal.
check_promotionscatches the internal move that a title-based list would miss entirely. - Interest signal.
linkedin_profile_reactionsandlinkedin_profile_commentsshow what a specific prospect has been engaging with — the raw material for a genuinely personalised opener.
We covered the engagement play in depth in how to get warm leads from LinkedIn posts. The version below is the same idea, driven entirely from Claude.
Prerequisites
Four things, and none of them involve your LinkedIn password.
- A Claude client that supports MCP. Claude Code, the Claude app (custom connector), or Claude Cowork. Cursor, Codex, ChatGPT, and Gemini CLI work against the same endpoint.
- A SyncGTM account. Free signup, free starting credits. See pricing for how credits scale.
- To be signed into SyncGTM in your default browser. Authentication is a browser OAuth handshake, so the sign-in has to be live where the redirect lands.
- A target to point at. A post URL, a list of company domains, or an ICP definition. Without one, you are back to bulk scraping.
Connect SyncGTM to Claude in One Command
For Claude Code, the whole setup is a single claude mcp add call.
claude mcp add --scope user --transport http syncgtm https://api.syncgtm.com/mcpRestart Claude Code, run /mcp, pick syncgtm → Authenticate, and finish the sign-in in your browser. Drop --scope user if you only want the server in the current project.
There is no API key and no Authorization header. If a client prompts you for a token, leave the field blank — the setup docs list the equivalent field for every supported client.
Sanity-check the connection by asking Claude to call check_credits. It is free, and a successful response confirms both the transport and the OAuth session in one shot.
The Four-Stage Prospecting Loop
Every useful LinkedIn workflow in Claude is the same four stages. Learn the shape once and you can swap the signal at the front without rethinking anything downstream.
Step 1: Pick a Signal, Pull the Source List
Give Claude a post URL and ask for the people who engaged with it. It calls linkedin_post_engagers for reactors and linkedin_post_commenters for the higher-intent subset who actually typed something.
Commenters are worth more than reactors. Treat the two lists separately rather than merging them into one undifferentiated blob.
No post to work from? Use find_people for a role-and-company ICP search, or newly_hired_executives to surface leaders who started recently at your target accounts.
Step 2: Enrich Profiles Into Real Records
An engager list gives you names and profile URLs. That is not enough to qualify anyone, so run linkedin_profile_enrich across the list to pull current title, company, seniority, tenure, and work history.
Now filter — and do it before you spend anything on contact data. Tell Claude the exact disqualifiers: wrong seniority, wrong company size, competitors, current customers, anyone under six months in role.
This is the step people skip, and it is where the credit waste happens. Enriching 200 profiles at 1 credit each to find 30 real matches is far cheaper than buying emails for all 200.
Step 3: Waterfall to Verified Contact Details
On the survivors, run find_work_email to go from LinkedIn URL to business email, then verify_email to confirm deliverability before anything touches a sequence.
Add find_mobile_number only for the shortlist you actually intend to call. At 12 credits it is the single most expensive call on the server, and it should be a deliberate decision rather than a default step.
The same waterfall logic applies whether Claude is driving it or you are running it in the app — see lead enrichment in Claude Code for the batching patterns.
Step 4: Draft Outreach From the Signal Itself
This is where Claude earns its place in the stack. It already has the signal, the profile, and the company context in the same conversation, so it can write an opener grounded in a specific fact rather than a merge field.
Feed it the constraint explicitly: reference the post they engaged with or the role they just started, keep it under 60 words, and no compliments about their "impressive background".
For the sequence layer that follows, our automated LinkedIn prospecting guide covers cadence and volume limits.
Three Prompt Recipes to Paste Into Claude
Each of these assumes the SyncGTM server is connected. Swap the bracketed values and run them as-is.
1. Competitor post → qualified warm list
Pull the commenters and engagers on [POST_URL].
Enrich each profile, then keep only people who are:
- Director level or above
- at companies with 50-1000 employees
- not at [MY_COMPANY] or [COMPETITOR_LIST]
For the survivors, find and verify a work email.
Return a table: name, title, company, LinkedIn URL,
email, verification status, and whether they
commented or only reacted.
Tell me the total credits spent before you start.2. Job-change sweep across an account list
Here are 40 target domains: [DOMAINS].
Find executives who recently started at these companies,
plus anyone in my existing list [CSV_PATH] who has
changed jobs or been promoted in the last 90 days.
Group the output into "new to company" and
"promoted internally" — I want different messaging
for each. Skip anyone under 30 days in role.3. Deep-context opener for one named prospect
Prospect: [LINKEDIN_URL].
Enrich the profile, pull their last 10 posts and
their recent reactions and comments.
Summarise in 5 bullets what they clearly care about
professionally right now. Then draft one LinkedIn
connection note (under 300 characters) and one email
(under 60 words) that reference a specific thing they
said. No flattery, no "I noticed you're passionate about".Prompt three is the one that changes how people work. It takes about 90 seconds and produces something you would otherwise have spent 15 minutes reading a profile to write.
What Each Run Actually Costs in Credits
SyncGTM meters per call, so the cost of a workflow is knowable before you run it. These are the published costs for the tools used above.
| Tool | What it returns | Credits |
|---|---|---|
| check_credits | Remaining balance | Free |
| linkedin_profile_reactions | Posts a profile engaged with | 0.2 per reaction |
| linkedin_post_engagers | People who reacted to a post | 0.3 per profile |
| linkedin_post_commenters | People who commented on a post | 0.3 per profile |
| linkedin_profile_posts | A prospect's recent posts | 0.3 per post |
| find_people | ICP search across companies | 0.5 per profile |
| newly_hired_executives | Recent exec hires with start dates | 0.5 per profile |
| verify_email | Deliverability check | 0.3 |
| linkedin_profile_enrich | Title, tenure, education, skills | 1 |
| find_work_email | LinkedIn URL → business email | 1 |
| check_job_change / check_promotions | Recent move or advancement | 2 each |
| find_mobile_number | Personal mobile | 12 |
Costs per the SyncGTM MCP tools reference. Check the docs for the current list — tools are added regularly.
The practical takeaway: discovery and profile enrichment are cheap, contact resolution is not. Filter at step two, spend at step three, and phone numbers only for the shortlist.
Ask Claude to estimate credits before executing a batch. It has the tool costs available and will happily quote you a number to approve.
Lead-Source Coverage Beyond LinkedIn
LinkedIn is the anchor, but the same MCP connection gives Claude several other sources it can cross-reference in the same conversation.
- Company pages and posts.
linkedin_page_postsandenrich_linkedin_pagefor the account-level view. - Firmographics and tech stack.
enrich_organizationandfind_company_techstackto qualify an account before you work its people. - Hiring and growth signals. Headcount growth, departmental splits, and job-opening trajectory — useful for timing rather than targeting.
- Other social graphs. X, Instagram, and TikTok engagement tools exist on the same server if your ICP lives somewhere other than LinkedIn.
The full catalogue of retrieval actions is browsable on the lead sources page — including LinkedIn post engagers and post commenters, plus the job-change signal.
Staying on the Right Side of LinkedIn's Rules
Be clear-eyed about this rather than hand-wavy. LinkedIn's User Agreement prohibits using software, bots, or automated methods to copy data or access the service. Any tool that drives your logged-in session is operating against that agreement, whatever the vendor's marketing says.
The legal picture is more nuanced than "scraping is illegal". In hiQ Labs v. LinkedIn, the Ninth Circuit held that scraping publicly available profiles does not violate the Computer Fraud and Abuse Act — but hiQ later settled and accepted an injunction on breach-of-contract grounds. Public access is one question; the terms you agreed to are another.
What that means practically: the exposure that ends careers is account-level, and it lands on whoever's session did the work. A server-side MCP tool does not use your session, which is why it does not get your profile restricted.
Do this regardless of tooling
- Only work with data people made public on their own profile or post.
- Honour opt-outs and unsubscribes immediately — including on LinkedIn DMs.
- If you contact people in the EU or UK, have a documented lawful basis under GDPR. Legitimate interest is a position you must be able to defend, not a checkbox.
- Keep outreach volumes human. Signal-based lists are small by design, which helps here.
- Never resell or republish scraped profile data.
Tips and Best Practices
- Make Claude quote the cost first."Estimate credits, then wait for my go-ahead" belongs in every batch prompt. It prevents a 400-profile enrichment you did not intend.
- Cap the batch. Ask for 25 records first, inspect the output shape, then scale. Bad filters are much cheaper to discover at 25 than at 500.
- Persist the results. Have Claude write each run to CSV. Chat history is not a database, and you will want to dedupe against previous runs.
- Separate commenters from reactors. Different intent, different opener. Merging them wastes your best segment.
- Re-run job-change checks monthly. A dormant list refreshed with
check_job_changeoften outperforms net-new sourcing. - Store the standing instructions. Put your ICP, disqualifiers, and tone rules in a project file or CLAUDE.md so you are not restating them every session — the pattern in Claude skills for LinkedIn.
- Verify before sending, always. A 0.3-credit
verify_emailcall is cheaper than the domain reputation damage from a bounce spike.
Conclusion
The interesting part of a LinkedIn scraper for Claude is not the scraping. It is that retrieval, qualification, contact resolution, and drafting collapse into one conversation instead of four tools and a spreadsheet.
Start narrow. Pick one post your ICP engaged with, pull the commenters, enrich them, verify 20 emails, and let Claude draft the openers.
That is under 50 credits and about ten minutes. If the replies are better than your current list — and with a real signal behind them, they usually are — scale the pattern rather than the volume.
Next: the tooling comparison in LinkedIn scraper MCP, or the broader prospecting workflows in Claude Code for sales prospecting.
