LinkedIn People Search Scraper avatar

LinkedIn People Search Scraper

Pricing

from $10.00 / 1,000 person founds

Go to Apify Store
LinkedIn People Search Scraper

LinkedIn People Search Scraper

Find public LinkedIn people by keyword, job title, company, school and location. Cookieless, no login. Optional deep profile enrichment. MCP/API-ready.

Pricing

from $10.00 / 1,000 person founds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

79

Total users

44

Monthly active users

11 days ago

Last modified

Share

Find public LinkedIn people by job title, company, school, location, or free-text keywords, then optionally enrich each profile with additional public fields. This Apify Actor accepts either structured search input or direct LinkedIn personal profile URLs, and returns one record per person with fields such as name, headline, current company, location, profile URL, public identifier, search snippet, enrichment status, about, experience, education, skills, connection and follower counts, and a scraped timestamp. It is cookieless, requires no login, and is usable through Apify MCP and the Apify API.

Best fit and connected workflows

This Actor fits workflows that start with a people-search question and end with structured public profile data.

Use it when you want to:

  • source people by role, company, school, or location
  • build a targeted prospect list from public LinkedIn results
  • enrich a known list of LinkedIn personal profile URLs
  • feed downstream enrichment or outreach workflows with a clean person record

Use A natural connected workflow is discovery here and enrichment afterward with LinkedIn Profile Scraper & Email Finder 📧 ✅ No Login Required. This Actor returns public LinkedIn people first, and the downstream Actor can work from a returned public URL or identifier when you need a later step focused on profile enrichment and email-finder routing.

One practical scenario

Maya, a recruiter, starts with "Head of Growth" in London and adds a company keyword to narrow the search. The run returns matching people with fullName, headline, currentCompany, location, profileUrl, publicIdentifier, and rank. Maya reviews the results, uses isEnriched to separate fast search records from deeper profile records, and then opens the most relevant profile URLs for sourcing review or sends them into a downstream workflow.

Input

The Actor accepts these input fields:

FieldTypePurpose
jobTitlestringSearch for people by role, quoted as a phrase on Google. Combine with other filters to narrow the search.
locationstringFilter by city, region, or country using public location text. Leave empty for worldwide search.
currentCompanystringSearch by company name as a quoted phrase.
schoolstringSearch by school or university for alumni sourcing.
keywordsstringAdd free-text keywords and Google operators to the query.
profileUrlsarrayProvide LinkedIn personal profile URLs for direct enrichment instead of search.
enrichProfilesbooleanWhen true, returns deeper public profile fields such as about, experience, education, skills, and counts.
maxResultsintegerCaps the number of people returned and the total run scope.
resultsRegionstringSets the Google search region by two-letter country code.

Focused input example

{
"jobTitle": "Head of Growth",
"location": "San Francisco",
"currentCompany": "Stripe",
"enrichProfiles": true,
"maxResults": 10,
"resultsRegion": "US"
}

Output

Each dataset item represents one public LinkedIn person found by the run.

FieldTypePurpose
fullNamestring or nullPerson's full name.
firstNamestring or nullFirst name, when available.
lastNamestring or nullLast name, when available.
headlinestring or nullPublic headline or role line.
currentCompanystring or nullavailable current company.
locationstring or nullPublic location text.
profileUrlstring or nullCanonical LinkedIn personal profile URL.
publicIdentifierstring or nullProfile slug.
snippetstring or nullSearch snippet from the discovery step.
rankinteger or nullResult position in the search output.
aboutstring or nullPublic summary from enrichment.
experiencearray or nullPublic experience entries from enrichment.
educationarray or nullPublic education entries from enrichment.
skillsarray or nullPublic skills from enrichment.
connectionsCountinteger or nullPublic connection count.
followerCountinteger or nullPublic follower count.
enrichmentSourcestring or nullSource used for enrichment.
isEnrichedboolean or nullIndicates whether deep enrichment was fetched.
scrapedAtstring or nullISO timestamp of the scrape.

Illustrative output record

{
"fullName": "Avery Chen",
"firstName": "Avery",
"lastName": "Chen",
"headline": "Head of Growth at Example Company",
"currentCompany": "Example Company",
"location": "San Francisco, California, United States",
"profileUrl": "https://www.linkedin.com/in/avery-chen",
"publicIdentifier": "avery-chen",
"snippet": "Head of Growth at Example Company",
"rank": 1,
"about": "Growth leader focused on product-led acquisition.",
"experience": [],
"education": [],
"skills": [],
"connectionsCount": 500,
"followerCount": 1200,
"enrichmentSource": "ScrapeCreators",
"isEnriched": true,
"scrapedAt": "2026-01-01T12:00:00.000Z"
}

How it works

This Actor uses two modes that are defined in the live contract:

  1. Search mode: it runs Google discovery queries that target public LinkedIn personal profiles with site:linkedin.com/in.
  2. Direct-URL mode: it accepts a list of LinkedIn personal profile URLs and enriches those profiles directly.

The manifest also states the enrichment implementation uses ScrapeCreators for LinkedIn profile enrichment with SociaVault as a fallback. The dataset stores one person per record, and the overview table surfaces fullName, headline, currentCompany, location, profileUrl, and isEnriched.

Pricing

LinkedIn People Search Scraper uses Pay per event pricing plus Apify platform usage.

The live charge events are:

  • Actor start
  • Person found
  • Person enriched

maxResults controls how many people can be processed, which helps bound total cost. With enrichment turned on, each found person can also include a per-person enrichment charge. For example, a run that finds twelve people and enriches each one produces twelve "Person found" events and twelve "Person enriched" events, plus one start event. For current pricing and platform usage details, check the live Pricing tab in the Apify console.

Use with AI agents (MCP)

This Actor is available as an Apify Actor that can be called through Apify MCP. It accepts search terms or direct profile URLs and returns structured public LinkedIn people records that agents can read, route, and hand off to later steps.

Exact Actor identity: khadinakbar/linkedin-people-search-scraper

Tool description: search public LinkedIn people by role, company, school, location, keywords, or direct profile URL, then return one dataset item per person with optional enrichment fields.

Find public LinkedIn people for the query "Head of Growth" in London, return the top 10 records, and include enrichment so I can review headline, company, profile URL, about, and experience.

Output interpretation:

  • profileUrl and publicIdentifier identify the public LinkedIn person record.
  • isEnriched shows whether the record includes deeper public profile fields.
  • rank and snippet help rank and review search results.
  • about, experience, education, skills, connectionsCount, and followerCount are available when enrichment is enabled.

Provenance and scope:

  • Results are based on public LinkedIn profile data.
  • Search mode uses Google discovery.
  • Direct-URL mode processes the LinkedIn personal profile URLs you provide.

Pagination and cost guidance:

  • maxResults limits how many people the Actor processes.
  • Search depth and enrichment volume both affect total event count.
  • Use direct URLs when you already have a curated list and want focused enrichment.

Apify API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const input = {
jobTitle: 'Head of Growth',
location: 'San Francisco',
enrichProfiles: true,
maxResults: 5,
resultsRegion: 'US',
};
const run = await client.actor('khadinakbar/linkedin-people-search-scraper').call(input);
const datasetItems = await client.dataset(run.defaultDatasetId).listItems({
clean: true,
format: 'json',
});
console.log(datasetItems.items);

Best results and outcome guidance

Use specific search phrases when you already know the role, company, or school. Add location when you want public profiles from a particular market, and use keywords for extra targeting such as industry terms or niche descriptors. If you already have LinkedIn personal profile URLs, use direct-URL mode to focus the run on those records. Keep maxResults aligned with the number of records you actually need, and use enrichProfiles when the workflow benefits from deeper public profile fields.

Design note

I found that the dataset overview view is centered on fullName, headline, currentCompany, location, profileUrl, and isEnriched, which makes the output easy to scan before opening the full record.

FAQ

When should I use search mode versus direct-URL mode?

Use search mode when you want the Actor to discover people from a query such as title, company, school, or location. Use direct-URL mode when you already have LinkedIn personal profile URLs and want the Actor to enrich those profiles directly.

How does this Actor connect to a downstream enrichment workflow?

Use This Actor returns public LinkedIn people first. If your next step needs a profile-centric workflow, send the returned profileUrl or public identifier into LinkedIn Profile Scraper & Email Finder 📧 ✅ No Login Required when the next workflow needs that Actor's focused input and output contract.

How do jobTitle, keywords, and location work together?

jobTitle targets a role phrase, keywords adds extra free-text terms, and location narrows the public profile location text. Together they form a more specific people search.

What fields appear when enrichment is enabled?

Enrichment adds public profile sections such as about, experience, education, skills, connectionsCount, and followerCount, along with enrichmentSource and isEnriched.

How can I control the amount of data processed?

Use maxResults to cap the number of people returned and choose whether enrichProfiles should be enabled for deeper public fields.

Responsible use

This Actor collects public LinkedIn profile data and returns it in structured form. Use the output in ways that align with your organization's privacy practices, the applicable laws in your region, and LinkedIn's terms. Keep search criteria focused, review records before downstream use, and prefer the smallest useful result set for each task.