Linkedin People Search

io.github.johnisanerdPublished by GitHub account johnisanerdv1.0.0Updated Nov 13, 2026

Find LinkedIn people by name, title, employer or school. Paid, on Apify's hosted MCP.

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingBusiness & Commerce

Overview

AI-generated overview

Hosted Apify MCP tool that finds LinkedIn people by name, title, employer, school or location and returns public profile details.

What you can do
  • Search people by first and last name, keywords, job title, company, school or location
  • Return profile URL, name, headline, current employer, location and photo
  • Optionally enrich each profile with about text, work history, education, languages and follower counts
  • Check run status, page through large result sets, read stored records and abort runs
When to use it
Useful when you need to find people you have no profile links for, such as building prospect or recruiting lists or locating the right contact at a company.
Requirements
Remote Streamable HTTP endpoint on Apify's hosted MCP server; nothing to install. Requires an Apify account with OAuth sign-in on first use, or an Apify API token sent as a Bearer authorization header. Calls run on your own Apify account.
Before you install
Every tool call is billed to your Apify account per person found and per person enriched, plus small per-run and per-row charges; cached rows are billed like fresh ones. Results come from scraping public LinkedIn pages, so you are responsible for complying with the source's terms and applicable law. The server can start and abort Actor runs and read stored records.

Installation

In SourceWeft

  1. Open Linkedin People Search in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.johnisanerd%2Flinkedin-people-search/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "linkedin-people-search": {
      "type": "http",
      "url": "https://mcp.apify.com/?tools=johnvc/linkedin-people-search-api"
    }
  }
}

README

LinkedIn People Search MCP server

Registry name: io.github.johnisanerd/linkedin-people-search. Maintained by AlphaOSINT (Apify developer johnvc, GitHub johnisanerd).

What it does

Find people by name, job title, employer, school or location and get profile URL, headline, current employer, location, and optionally about text, work history and education.

When to use it

Finds people you don't have profile links for yet, where profile tools need the URL first. Use it for prospect lists, recruiting searches and finding the right contact at a company.

How it works

The server runs on Apify's hosted MCP endpoint, so there is nothing to install or host. Its URL pins one Actor with ?tools=johnvc/linkedin-people-search-api, which gives your agent a single tool, johnvc--linkedin-people-search-api, whose parameters are the Actor's typed input schema. The agent can call that tool directly without searching for an Actor first, and it can't start other Actors through this server. For general access to the whole Apify Store, use https://mcp.apify.com without the tools parameter.

Pricing

Each tool call runs the Apify Actor johnvc/linkedin-people-search-api on your own Apify account and is billed there at the Actor's prices:

ChargePrice (USD)What it covers
Person found$0.0006Fee per person delivered to the dataset, with their public LinkedIn profile URL, name, headline and current employer. Charged once per person, never per search page, and never twice for the same person in one run.
Person enriched$0.0025Fee per person whose public profile page was opened and parsed, adding the about text, work history, education, follower count, photo and languages. Charged only when the enrichment actually returned data.

Free-plan rates as of 2026-11-12; paid Apify plans pay less per event. Apify also bills a token amount per run start and stored row ($0.00001, $0.00001). Current prices are on the Actor's page: https://apify.com/johnvc/linkedin-people-search-api

Endpoint

  • Transport: Streamable HTTP
  • URL: https://mcp.apify.com/?tools=johnvc/linkedin-people-search-api
  • Auth: Apify OAuth (opens on first use), or the header Authorization: Bearer <APIFY_TOKEN> (Apify Console → Settings → API & Integrations)

Setup

Claude Code

bash
claude mcp add --transport http linkedin-people-search "https://mcp.apify.com/?tools=johnvc/linkedin-people-search-api"

VS Code (.vscode/mcp.json)

json
{  "servers": {    "linkedin-people-search": {      "type": "http",      "url": "https://mcp.apify.com/?tools=johnvc/linkedin-people-search-api"    }  }}

Cursor (~/.cursor/mcp.json)

json
{  "mcpServers": {    "linkedin-people-search": {      "url": "https://mcp.apify.com/?tools=johnvc/linkedin-people-search-api"    }  }}

Claude Desktop: Settings → Connectors → Add custom connector, and paste the URL. Older versions without remote connectors can bridge through mcp-remote in claude_desktop_config.json:

json
{  "mcpServers": {    "linkedin-people-search": {      "command": "npx",      "args": [        "-y",        "mcp-remote",        "https://mcp.apify.com/?tools=johnvc/linkedin-people-search-api"      ]    }  }}

Tools

ToolWhat it does
johnvc--linkedin-people-search-apiRuns the Actor with the parameters below and returns the result rows.
get-actor-runStatus of a run the tool started (for long runs).
get-dataset-itemsPages through a run's full output when it is larger than the inline result.
get-key-value-store-recordReads a record a run stored.
abort-actor-runStops a run.

Apify's endpoint adds the four helper tools whenever an Actor tool is loaded.

Parameters of johnvc--linkedin-people-search-api

ParameterTypeRequiredDefaultDescription
firstNamestringFirst name of the person to find, for example Jane. Combined with lastName into an exact-phrase search, so the two together find people by full name. Leave both name fields empty only if you are searching with the keywo…
lastNamestringLast name of the person to find, for example Doe. Combined with firstName into an exact-phrase search.
keywordsstringExtra search terms to add to the query, for example a skill, an employer or an industry word. Use this on its own to search without a specific name, or alongside a name to narrow the matches.
jobTitlestringJob title to require, for example Software Engineer. Only people whose public profile or search snippet mentions this title are returned.
companystringEmployer name to require, for example Microsoft. Matches people whose public profile mentions this company, current or past.
schoolstringSchool or university name to require, for example Stanford University.
locationstringPlace to require, for example San Francisco or United Kingdom. Matched as text against the public profile, so a city, region or country all work.
maxResultsinteger25Stop after delivering this many people. You are charged only for the people actually returned. Each search fetches a full page of ten results at once, so a run returns at least ten people when the query has that many ma…
enrichProfilesbooleantrueWhen enabled, each person's public LinkedIn profile page is opened to add their about text, work history with job titles, education, connection and follower counts, photo and languages. Turn this off for a faster, cheap…

Example

Ask the agent in plain language, or call johnvc--linkedin-people-search-api with arguments such as:

json
{  "jobTitle": "CTO",  "company": "Stripe",  "maxResults": 10}

Output

JSON rows with these fields:

FieldTypeDescription
resultTypestring: person, errorRow kind. 'person' is a matched person. 'error' reports a page that could not be read and is never charged.
profileUrlstringCanonical public LinkedIn profile URL, with all tracking parameters removed.
publicIdentifierstringThe profile slug, which is the last path segment of the profile URL. Stable per person and useful as a deduplication key.
fullNamestringThe person's name as shown on their public profile.
headlinestringThe professional headline shown under the person's name, usually their role and employer.
currentCompanystringEmployer the person currently lists first on their profile.
currentCompanyUrlstringLinkedIn company page for the current employer, when the profile links one.
aboutstringThe person's public About/summary text. Present only when the profile was opened for enrichment.
locationLocalitystringCity or metropolitan area from the public profile.
locationCountrystringTwo-letter country code from the public profile.
profilePhotoUrlstringPublic profile photo. Absent when the person has no public photo.
followerCountintegerNumber of followers shown on the public profile.
experiencearrayPositions listed on the public profile, most recent first. Each entry has organizationName, organizationUrl, organizationLocation, role, startDate and endDate where the profile shows them.
educationarraySchools listed on the public profile. Each entry has organizationName, organizationUrl, startDate and endDate where shown.
languagesarrayLanguages listed on the public profile.
awardsarrayHonours and awards listed on the public profile.
isEnrichedbooleanTrue when the person's public profile page was opened and parsed. False when the row carries search-level data only, which happens when enrichment is off or the profile would not open.
searchRankintegerPosition of this person in the search results, starting at 1.
searchQuerystringThe exact public search query this run used, so every row can be traced back to what was asked.
searchHeadlinestringThe headline text the search result showed, kept when the opened profile page has its own headline (which then fills headline). Absent on rows that were not enriched, where headline is the search text.
currentTitlestringJob title at the current employer, from the public profile. Each experience entry also carries its own title when the profile shows one.
connectionsintegerConnection count shown on the public profile. LinkedIn caps the display at 500, so 500 means 500 or more; see connectionsText.
connectionsTextstringThe connection count as LinkedIn shows it, for example 500+.
memberIdstringLinkedIn's numeric member id for the profile, when the public page exposes it. Stable even if the profile URL changes.
positionsarrayEvery position in the profile's experience section, past roles included. Each entry has title, companyName, companyUrl, startDate, endDate, duration, location and isCurrent where the profile shows them.
fromCachebooleanTrue when this row was served from the shared result cache instead of a new request: the opened profile for an enriched row, the search page otherwise. Billed like a fresh row. Search result pages are reused for up to 1…
fetchedAtstringUTC time the row's data was fetched from LinkedIn's public pages (the profile page for an enriched row, the search page otherwise). For a cached row this is the original fetch time.
errorTypestringShort error class on error rows: 'SearchUnavailable' when the search could not be served (retry later). Absent on other error rows and on people.
errorMessagestringWhy a page could not be read. Only present on rows where resultType is 'error'.

Data source and terms

Public LinkedIn profiles found through web search and read from their public pages, collected by scraping. No login or cookies are used. The server returns the data as published at the time of the call. You are responsible for using it in line with the source's terms and the laws that apply to you. AlphaOSINT is not affiliated with the source.

Links

Source: servers/linkedin-people-search/README.md at commit e4211a5

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

1
  1. v1.0.0LatestNov 13, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts