How to give Claude access to LinkedIn data
You get a Claude Code command that connects the LinkedIn company Actors in this catalogue, so Claude can read public company posts, company headcount and company pages and answer with real rows. There is no open LinkedIn data API for this: LinkedIn's APIs are partner-only, and Proxycurl, a widely used shortcut, shut down on July 4, 2025 after LinkedIn's lawsuit.
Checked 2026-11-12
Do it now
The config for every LinkedIn Actor in the catalogue (6 in this bundle), for each client. Claude Code is first.
Claude Code configterminal or .mcp.json
claude mcp add --transport http apify-linkedin "https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/linkedin-company-page-post-and-engagement,nimbryxo-studio/linkedin-company-headcount-and-team-directory,nimbryxo-studio/linkedin-company-pages-with-funding-and-affiliates,vexaloom-labs/linkedin-keyword-and-hashtag-post-discovery,nimbryxo-studio/linkedin-profile-scraper-with-company,nimbryxo-studio/linkedin-people-finder-by-role-seniority" - Run the command in your project folder. Add --scope user to make it available in every project.
- Start Claude Code, type /mcp, pick the server and sign in to Apify in the browser window.
- No browser sign-in? Add --header "Authorization: Bearer YOUR_APIFY_TOKEN" to the command instead.
Sign-in: OAuth sign-in on first use, or a token header.
Claude Desktop configclaude_desktop_config.json
{
"mcpServers": {
"apify-linkedin": {
"command": "npx",
"args": [
"-y",
"@apify/actors-mcp-server",
"--tools",
"fetch-actor-details,vexaloom-labs/linkedin-company-page-post-and-engagement,nimbryxo-studio/linkedin-company-headcount-and-team-directory,nimbryxo-studio/linkedin-company-pages-with-funding-and-affiliates,vexaloom-labs/linkedin-keyword-and-hashtag-post-discovery,nimbryxo-studio/linkedin-profile-scraper-with-company,nimbryxo-studio/linkedin-people-finder-by-role-seniority"
],
"env": {
"APIFY_TOKEN": "YOUR_APIFY_TOKEN"
}
}
}
} - Easiest: open Customize, then Connectors, choose Add custom connector, paste the server URL (the ChatGPT tab shows it on its own) and sign in to Apify.
- Local alternative (needs Node.js): merge this into claude_desktop_config.json (Settings, Developer, Edit config) and replace YOUR_APIFY_TOKEN.
- Restart Claude Desktop and enable the server from the tools menu in a chat.
Sign-in: Connector with OAuth, or a token in the local config.
Cursor config~/.cursor/mcp.json
{
"mcpServers": {
"apify-linkedin": {
"url": "https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/linkedin-company-page-post-and-engagement,nimbryxo-studio/linkedin-company-headcount-and-team-directory,nimbryxo-studio/linkedin-company-pages-with-funding-and-affiliates,vexaloom-labs/linkedin-keyword-and-hashtag-post-discovery,nimbryxo-studio/linkedin-profile-scraper-with-company,nimbryxo-studio/linkedin-people-finder-by-role-seniority",
"headers": {
"Authorization": "Bearer ${env:APIFY_TOKEN}"
}
}
}
} - Save as ~/.cursor/mcp.json for every project, or .cursor/mcp.json for one project. Merge with servers you already have.
- Set APIFY_TOKEN in the environment Cursor starts from, or replace ${env:APIFY_TOKEN} with your token.
- Open Cursor Settings, then MCP, and check that the server lists its tools.
Sign-in: Token read from the APIFY_TOKEN environment variable.
VS Code config.vscode/mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "apify-token",
"description": "Apify API token",
"password": true
}
],
"servers": {
"apify-linkedin": {
"type": "http",
"url": "https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/linkedin-company-page-post-and-engagement,nimbryxo-studio/linkedin-company-headcount-and-team-directory,nimbryxo-studio/linkedin-company-pages-with-funding-and-affiliates,vexaloom-labs/linkedin-keyword-and-hashtag-post-discovery,nimbryxo-studio/linkedin-profile-scraper-with-company,nimbryxo-studio/linkedin-people-finder-by-role-seniority",
"headers": {
"Authorization": "Bearer ${input:apify-token}"
}
}
}
} - Save as .vscode/mcp.json in your workspace.
- Start the server from the file or the MCP servers view. VS Code asks for the token once and stores it securely.
- Use the tools from Copilot Chat in agent mode.
Sign-in: Token prompted once and stored by VS Code.
ChatGPT configPlugins > Add custom MCP server
https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/linkedin-company-page-post-and-engagement,nimbryxo-studio/linkedin-company-headcount-and-team-directory,nimbryxo-studio/linkedin-company-pages-with-funding-and-affiliates,vexaloom-labs/linkedin-keyword-and-hashtag-post-discovery,nimbryxo-studio/linkedin-profile-scraper-with-company,nimbryxo-studio/linkedin-people-finder-by-role-seniority - In ChatGPT on the web, open Plugins, select + and choose Add custom MCP server.
- Name it, paste the URL under Connection as the Server URL and choose OAuth for authentication.
- Accept the risk warning (I understand and want to continue), select Create as a plugin, then install the plugin from your plugins, sign in to Apify and use it in a new chat.
Sign-in: OAuth sign-in with your Apify account.
Codex CLI config~/.codex/config.toml
[mcp_servers.apify-linkedin]
url = "https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/linkedin-company-page-post-and-engagement,nimbryxo-studio/linkedin-company-headcount-and-team-directory,nimbryxo-studio/linkedin-company-pages-with-funding-and-affiliates,vexaloom-labs/linkedin-keyword-and-hashtag-post-discovery,nimbryxo-studio/linkedin-profile-scraper-with-company,nimbryxo-studio/linkedin-people-finder-by-role-seniority"
bearer_token_env_var = "APIFY_TOKEN" - Add the block to ~/.codex/config.toml, or .codex/config.toml in a project.
- Export APIFY_TOKEN in the shell that starts Codex. Or skip the token line and run codex mcp login to sign in.
- Start codex and type /mcp to check that the tools are listed.
Sign-in: Token read from the APIFY_TOKEN environment variable.
Gemini CLI configterminal (writes ~/.gemini/settings.json)
gemini mcp add -t http -s user -H "Authorization: Bearer $APIFY_TOKEN" apify-linkedin "https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/linkedin-company-page-post-and-engagement,nimbryxo-studio/linkedin-company-headcount-and-team-directory,nimbryxo-studio/linkedin-company-pages-with-funding-and-affiliates,vexaloom-labs/linkedin-keyword-and-hashtag-post-discovery,nimbryxo-studio/linkedin-profile-scraper-with-company,nimbryxo-studio/linkedin-people-finder-by-role-seniority" - Export APIFY_TOKEN first: the shell expands it and Gemini CLI saves the header, token included, in plain text in ~/.gemini/settings.json (keep that file private). In PowerShell write $env:APIFY_TOKEN instead of $APIFY_TOKEN. Drop -s user to save it in the project's .gemini/settings.json.
- Start gemini and type /mcp to check that the server is connected and lists its tools.
- Saved by hand, a remote server uses the httpUrl key for streamable HTTP (url means the older SSE transport).
Sign-in: Token header saved by gemini mcp add.
n8n AI Agent configMCP Client Tool node
https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/linkedin-company-page-post-and-engagement,nimbryxo-studio/linkedin-company-headcount-and-team-directory,nimbryxo-studio/linkedin-company-pages-with-funding-and-affiliates,vexaloom-labs/linkedin-keyword-and-hashtag-post-discovery,nimbryxo-studio/linkedin-profile-scraper-with-company,nimbryxo-studio/linkedin-people-finder-by-role-seniority - Add an AI Agent node, then attach an MCP Client Tool node to its tool input.
- Paste the URL as the endpoint and choose HTTP Streamable as the transport.
- Choose Bearer auth and create a credential that holds your Apify token.
Sign-in: Bearer auth credential.
Validated, not executed: 7 of 7 checks pass
- Uses Apify's hosted MCP endpoint over HTTPS
- The tools parameter lists exactly the chosen Actors as owner/name
- JSON configs parse and use the client's top-level key and the same URL
- Codex TOML has a [mcp_servers.<name>] table with url and bearer_token_env_var
- CLI commands quote the same URL and use the streamable HTTP transport
- One-click install links decode back to the same URL and carry no token
- Only placeholders, no real token
A route that lasts uses public company pages through a hosted Actor with a published input and output schema, not a login bypass or a scraped personal account. The bundle on this page starts with company posts, headcount and company pages; it also lists a profile tool and a people finder, which you can untick on the LinkedIn MCP page if you only want company data.
What you need
- Claude Code, Claude Desktop or another MCP client from the Do it now block.
- An Apify account, signed in through OAuth or with an APIFY_TOKEN.
- The company page URLs you care about, for example competitors or target accounts.
- For a daily feed instead of chat, the LinkedIn jobs to Notion workflow linked below.
Where it breaks
LinkedIn shows logged-out visitors less than members see, so some posts, counts or employee lists come back partial. Ask Claude for company-level questions such as recent posts, hiring signals or headcount trends rather than private member data, and keep the scope to public pages. Never put your own LinkedIn session or password into a tool.
Method
Copy the claude mcp add command for the LinkedIn bundle from the Do it now block and run it, or paste the matching config into Claude Desktop, Cursor or VS Code.
Untick the profile and people tools on the LinkedIn MCP page first if you want a company-only bundle, then copy the updated command.
Ask Claude a company question with the page URL, for example: list the last five posts from this company page with reactions and comments.
For a standing feed, import the LinkedIn jobs to Notion workflow, add the Header Auth credential with Bearer and your Apify token, and pick your Notion database.
Ready-made recipe
LinkedIn jobs to Notion: an n8n workflow you can import, using LinkedIn Jobs Scraper with Salary & Company Enrichment.
Troubleshooting
Why does the client say Unauthorized or invalid token?
Every Apify Actor tool needs a signed-in Apify account. Reconnect the server so the OAuth sign-in runs again, or switch to the token variant: an Authorization: Bearer header with an API token from Apify Console, Settings, API and integrations. For a local server the token must be in the server's own env block, not only in your shell.
Source: Apify MCP server README
Why did my agent's tool list change after an update?
Without a tools parameter Apify's server loads its default tool set, which changes between releases. The URLs on this site pin the tools with ?tools=, so the agent always gets the same Actor tool plus fetch-actor-details. Apify's README gives the same advice for production.
Source: Apify MCP server README
What happens when the agent sends input the Actor rejects?
The server answers with the Actor's input schema, so the agent can fix the arguments and call again. The fetch-actor-details tool in every scoped URL lets it read that schema before the first call.
Source: Apify MCP server README
Claude Code shows Needs authentication. Why?
The server is added but not signed in. Type /mcp in an interactive session and authenticate, or run claude mcp login with the server name. Headless runs with claude -p cannot complete OAuth, so sign in once interactively or use the --header token variant.
Source: Claude Code MCP documentation
Claude Code warns that a tool result is too large. What can I change?
Claude Code warns above 10,000 tokens of tool output and caps it at 25,000 by default (MAX_MCP_OUTPUT_TOKENS raises it). Ask the agent for fewer results per call, for example a lower result limit for the Actor.
Source: Claude Code MCP documentation
Questions
Is there an official LinkedIn API for this?
Not for general use. LinkedIn's APIs are partner-only programmes, so most builders cannot get company or post data from them.
What happened to Proxycurl?
It shut down on July 4, 2025 after LinkedIn's lawsuit. Tools that depended on it need another source, such as public company pages through a hosted Actor.
Can Claude read people's profiles?
The bundle includes a public profile tool, but this guide keeps to company data. Untick the people tools if your use is company research only.
Does this log in to LinkedIn?
No. The Actors read public pages without your account, so there is no session to protect or lose.
Sources
- LinkedIn API documentation, checked 2026-11-09
- Proxycurl shutdown, checked 2026-11-09
- Apify MCP documentation, checked 2026-11-09