LinkedIn Profile Scraper & Email Finder ๐ง โ No Login Required
Pricing
from $20.00 / 1,000 profile scrapeds
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
Maintained by CommunityActor stats
0
Bookmarked
495
Total users
37
Monthly active users
19 days ago
Last modified
Categories
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
profileUrlswhen you already have exact LinkedIn profile links. - Use
publicIdentifierswhen you have slugs or usernames from a spreadsheet. - Use
searchQuerywhen the input is a role, industry, location, or niche description. - Enable
includeEmailwhen 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,
maxResultsset to three,includeEmailturned on because the hiring team wants contact details when visible.
The Actor returns:
full_namefor each candidate,headlinefor current positioning,current_company_namefor employer context,experienceandeducationfor background review,skillsfor matching,emailwhen publicly visible,_statusso 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
| Field | Type | Purpose |
|---|---|---|
profileUrls | array of strings | Full LinkedIn profile URLs, short /in/ paths, or bare usernames. Use for specific people. |
publicIdentifiers | array of strings | Slugs or usernames such as williamhgates. Merged with profileUrls before scraping. |
searchQuery | string | People search query such as a role, industry, or location description. |
includeEmail | boolean | Adds email enrichment when publicly visible. |
maxResults | integer | Maximum number of profiles to scrape, up to 1,000 per run. |
proxyConfiguration | object | Proxy 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
| Field | Type | Purpose |
|---|---|---|
_status | string | Scrape status such as scraped or not_found. |
full_name | string or null | Person's displayed full name. |
headline | string or null | LinkedIn professional headline. |
location | string or null | Location as shown on the profile. |
summary | string or null | About section text. |
profile_url | string | Canonical LinkedIn profile URL. |
profile_picture_url | string or null | Public profile photo URL. |
connections_count | integer or null | Parsed connections count when visible. |
current_company_name | string or null | Current employer from the latest experience entry. |
current_company_url | string or null | LinkedIn company URL for the current employer when visible. |
experience | array | Reverse-chronological work history entries. |
education | array | Education entries with school, degree, field, and years. |
skills | array | Skills listed on the profile, up to 50. |
certifications | array | Professional certifications. |
languages | array | Languages listed on the profile. |
email | string or null | Email address when includeEmail is enabled and publicly visible. |
phone | string or null | Phone number when includeEmail is enabled and publicly listed. |
source_url | string | The LinkedIn URL that was scraped. |
scraped_at | string | ISO 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
_statusfirst to separate fully scraped records from records that were not returned in full. - Use
profile_urlandsource_urlas provenance fields. - Use
scraped_atto understand when the profile was extracted. - Use
emailandphoneonly whenincludeEmailis enabled and the public profile exposes those fields.
Scope and pagination guidance:
maxResultscontrols the number of profiles requested in a run, up to 1,000.profileUrlsandpublicIdentifiersare the most precise inputs for agent workflows.searchQueryis 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.