LinkedIn Profile Scraper & Email Finder ๐Ÿ“ง โœ… No Login Required avatar

LinkedIn Profile Scraper & Email Finder ๐Ÿ“ง โœ… No Login Required

Pricing

from $20.00 / 1,000 profile scrapeds

Go to Apify Store
LinkedIn Profile Scraper & Email Finder ๐Ÿ“ง โœ… No Login Required

LinkedIn Profile Scraper & Email Finder ๐Ÿ“ง โœ… No Login Required

Find public LinkedIn profiles from URLs, slugs, or search. Returns professional data; optional email enrichment is billed separately. No login or cookies. MCP/API-ready.

Pricing

from $20.00 / 1,000 profile scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

495

Total users

37

Monthly active users

19 days ago

Last modified

Share

This Apify Actor accepts LinkedIn profile URLs, short slugs, bare public identifiers, or a people search query. It returns one dataset record per profile with public professional fields such as full name, headline, location, summary, current company, experience, education, skills, certifications, languages, and optional email and phone fields when email enrichment is enabled. The outcome is structured profile data that is ready for lead generation, CRM import, analysis, and AI-agent workflows. It runs on Apify and is usable through Apify MCP.

Best fit and connected workflows

This Actor fits workflows where you already know the people you want to inspect, or where you want LinkedIn to surface matching profiles from a search query.

Typical routing patterns:

  • Use profileUrls when you already have exact LinkedIn profile links.
  • Use publicIdentifiers when you have slugs or usernames from a spreadsheet.
  • Use searchQuery when the input is a role, industry, location, or niche description.
  • Enable includeEmail when the workflow needs contact enrichment for outreach, CRM enrichment, or lead lists.
  • Start with LinkedIn Company Search Scraper when the workflow begins with company discovery, then pass the verified public profile links or identifiers into this Actor for person-level enrichment.

Practical scenario

A recruiter has a shortlist of candidate profile URLs for three engineers and wants a clean summary for review.

They start with:

  • a set of LinkedIn URLs,
  • maxResults set to three,
  • includeEmail turned on because the hiring team wants contact details when visible.

The Actor returns:

  • full_name for each candidate,
  • headline for current positioning,
  • current_company_name for employer context,
  • experience and education for background review,
  • skills for matching,
  • email when publicly visible,
  • _status so the recruiter can separate scraped profiles from records that were not returned in full.

The recruiter then uses the returned fields to decide which candidates deserve a manual review and which profile to send to the hiring manager next.

Input fields

FieldTypePurpose
profileUrlsarray of stringsFull LinkedIn profile URLs, short /in/ paths, or bare usernames. Use for specific people.
publicIdentifiersarray of stringsSlugs or usernames such as williamhgates. Merged with profileUrls before scraping.
searchQuerystringPeople search query such as a role, industry, or location description.
includeEmailbooleanAdds email enrichment when publicly visible.
maxResultsintegerMaximum number of profiles to scrape, up to 1,000 per run.
proxyConfigurationobjectProxy settings. The Actor calls its high-availability API directly and uses the default configuration.

Input example

{
"profileUrls": [
"https://www.linkedin.com/in/williamhgates/"
],
"includeEmail": true,
"maxResults": 1
}

Output fields

FieldTypePurpose
_statusstringScrape status such as scraped or not_found.
full_namestring or nullPerson's displayed full name.
headlinestring or nullLinkedIn professional headline.
locationstring or nullLocation as shown on the profile.
summarystring or nullAbout section text.
profile_urlstringCanonical LinkedIn profile URL.
profile_picture_urlstring or nullPublic profile photo URL.
connections_countinteger or nullParsed connections count when visible.
current_company_namestring or nullCurrent employer from the latest experience entry.
current_company_urlstring or nullLinkedIn company URL for the current employer when visible.
experiencearrayReverse-chronological work history entries.
educationarrayEducation entries with school, degree, field, and years.
skillsarraySkills listed on the profile, up to 50.
certificationsarrayProfessional certifications.
languagesarrayLanguages listed on the profile.
emailstring or nullEmail address when includeEmail is enabled and publicly visible.
phonestring or nullPhone number when includeEmail is enabled and publicly listed.
source_urlstringThe LinkedIn URL that was scraped.
scraped_atstringISO 8601 timestamp of extraction.

Output example

{
"_status": "scraped",
"full_name": "Bill Gates",
"headline": "Co-chair, Bill & Melinda Gates Foundation",
"location": "Seattle, Washington, United States",
"profile_url": "https://www.linkedin.com/in/williamhgates/",
"current_company_name": "Gates Foundation",
"current_company_url": "https://www.linkedin.com/company/bill-melinda-gates-foundation/",
"skills": ["Leadership", "Strategic Planning"],
"email": "contact@billgates.com",
"source_url": "https://www.linkedin.com/in/williamhgates/",
"scraped_at": "2026-03-30T14:30:00.000Z"
}

How it works

This Actor accepts either direct profile references or a people search query. It normalizes public identifiers into LinkedIn profile URLs, applies the selected result limit, and writes one dataset item per profile. The dataset schema includes an _status field so downstream tools can filter records before processing. When includeEmail is enabled, the output may also include email and phone fields if they are publicly visible on the profile.

The Actor is built for public LinkedIn profile extraction and is configured for Apify MCP and API usage. The live contract also shows environment variable support for SCRAPECREATORS_API_KEY, SOCIAVAULT_API_KEY, and SOCIALVAULT_API_KEY.

Pricing

This Actor uses Pay per event on the Apify platform. Charges are split into platform usage and per-event actor charges, so the final run cost depends on the selected plan, actor memory, and whether email enrichment is used.

The live Pricing tab in Apify shows the current billing details for:

  • profile scraping events,
  • profile-with-email events,
  • Apify platform usage.

For a simple event-count example: if a execution processes one hundred profiles, the bill reflects one hundred charged profile events, plus any applicable Apify platform usage from the execution configuration. Check the live Pricing tab for current rates before running.

Use with AI agents (MCP)

This Actor is available on Apify and can be used through Apify MCP for AI-agent workflows. It is designed for structured profile extraction with a stable schema that agents can read, filter, and pass to other tools.

Actor identity: khadinakbar/linkedin-profile-email-scraper

Tool description: use this tool to scrape public LinkedIn profile data from profile URLs, slugs, public identifiers, or a people search query, and optionally enrich results with publicly visible email information.

Find these LinkedIn profiles by URL, return a dataset with full name, headline, company, skills, and email when visible, then summarize the people who look relevant for outreach.

Output interpretation:

  • Use _status first to separate fully scraped records from records that were not returned in full.
  • Use profile_url and source_url as provenance fields.
  • Use scraped_at to understand when the profile was extracted.
  • Use email and phone only when includeEmail is enabled and the public profile exposes those fields.

Scope and pagination guidance:

  • maxResults controls the number of profiles requested in a run, up to 1,000.
  • profileUrls and publicIdentifiers are the most precise inputs for agent workflows.
  • searchQuery is the right input when the request describes a role, industry, or niche rather than exact profile links.
  • Costs depend on the event type selected in the run and Apify platform usage; review the live Pricing tab for current billing information.

API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const run = await client.actor('khadinakbar/linkedin-profile-email-scraper').call({
profileUrls: ['https://www.linkedin.com/in/williamhgates/'],
includeEmail: true,
maxResults: 1,
});
const items = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.items);

Best results and outcome guidance

Use the most specific input available:

  • exact URLs for known profiles,
  • slugs when copying from spreadsheets,
  • search queries when prospecting by role or niche.

Keep profileUrls and searchQuery aligned with the actual task. If the work starts from a company list, a company-discovery Actor can help identify candidate profiles before passing them into this Actor for person-level enrichment. If the work centers on outreach, enable includeEmail only when contact enrichment is needed for that run.

Design note

I found that the output contract includes both profile_url and source_url as required fields, which makes provenance easy to carry into downstream automation.

FAQ

When should I use profileUrls instead of searchQuery?
Use profileUrls when you already have specific people. Use searchQuery when the request is framed as a role, industry, location, or niche.

How does publicIdentifiers help workflows?
It lets you paste LinkedIn slugs or usernames directly from spreadsheets, and the Actor converts them into full profile URLs before scraping.

What is the role of _status in the dataset?
It tells downstream systems whether the profile was scraped in full or returned as not_found, so agents can filter records before processing.

How does this Actor connect to company discovery workflows?
Start with LinkedIn Company Search Scraper when the workflow begins with companies, then pass verified public profile links or identifiers into this Actor for profile enrichment.

What changes when includeEmail is enabled?
The Actor can include email and phone fields when those details are publicly visible on the profile, and the live contract marks those fields as optional outputs.

Responsible use

Use this Actor on publicly accessible profile information and respect applicable laws, platform terms, and internal data-handling rules. Review the live Pricing tab before running, especially when using email enrichment or larger maxResults values. When integrating with AI agents, treat the returned fields as structured public profile data and apply your own review and governance before outreach or import.