LinkedIn Guest-View Profile Data Extractor
Pricing
from $0.49 / 1,000 results
LinkedIn Guest-View Profile Data Extractor
Extract names, headlines, work history, education, certifications, honors, volunteer work, projects, and follower counts from public LinkedIn profiles, with optional current-employer enrichment. No login or cookies required.
Pricing
from $0.49 / 1,000 results
Rating
0.0
(0)
Developer
vexaloom-labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 days ago
Last modified
Categories
Share
Read the public side of any LinkedIn profile the way an anonymous, logged-out visitor sees it — no LinkedIn account, login, cookies, or proxy setup. Give the actor a list of profile URLs or usernames (or just a set of names to search for) and get back one row per profile: identity, About, followers, connections, current company and school, every self-authored section LinkedIn renders to guests, and (optionally) firmographics for the current employer.
What this actor does
- Reads only what LinkedIn already serves to logged-out visitors — no account, session cookie, or credential is ever used, and you never configure a proxy
- Extracts name, headline line, location, About, followers, the public connections indicator, current company, current school, and profile photo for each profile
- Reads each profile's public sections when the owner filled them in: certifications, recommendations received, languages, services, publications, patents, courses, LinkedIn Learning courses, honors & awards, organizations, volunteer experience, projects, skills, badges (Top Voice / Creator), and listed websites
- Extracts each profile's full Experience and Education lists with per-role titles, dates and durations whenever LinkedIn renders those blocks to guests, and adds the education list with dates and GPA whenever LinkedIn publishes it in its richer logged-out view
- Recovers the real headline for many profiles whose headline LinkedIn otherwise withholds from anonymous visitors, by cross-checking the member's name and the exact redaction pattern against the public search index — recovered values carry
headlineSource: "serp"and are never a guess - Searches people by name through LinkedIn's public people directory (
searchNames), then scrapes every discovered profile through the same pipeline - Optionally enriches the current employer with employee count, size, industry, headquarters, address, founded year, followers, website, logo, description, slogan, and specialties, pulled from the company's own public page
- Cross-checks that the data returned actually belongs to the profile you asked for, and omits any field LinkedIn has redacted rather than returning masked placeholder text
- Fields that can't be extracted for a profile (because LinkedIn doesn't expose them, or the owner never filled them in) are left out of that row — no
nullvalues
Output per profile
name,headline,location,summaryheadlineSource— where the headline came from:page(the profile page itself) orserp(recovered from the public search index and verified against the profile's redaction pattern)profileUrl,profilePicturecurrentTitle— current job title, when LinkedIn exposes it publicly for this profile/viewer combinationheadlineRedacted—truewhen LinkedIn substituted the current company for a withheld headline in its public preview lineallTitles— the job titles LinkedIn publishes in the profile's structured datacurrentCompany— current employer:name,url,slug, andcompanyIdwhen the company link is numeric. WithenrichCompanyon and the company page readable, it also gainsemployeeCount,size,industry,website,headquarters,address,foundedYear,followersCount,description,slogan,organizationType,logoUrlandspecialtiescurrentSchool— the school shown on the profile's top card (name,url)currentPositions,pastPositions—company,companyUrl, and dates; on profiles where LinkedIn renders the full Experience list, each entry also carriestitle,dateRange,durationandlocationexperiences—currentPositionsandpastPositionscombined into a single listeducation(andeducations, the same list under both keys) —school,schoolUrl,startDate,endDate, plusgpaanddateRangefrom the richer logged-out education list when present, anddegree,fieldOfStudywhen LinkedIn renders the full Education listfollowersCount,connectionsCount(exact number when the profile shows one),connectionsText(e.g."500+"when only the capped form is public)recentArticles— recent posts/articles withtitle,url,publishedDate,textandlikescertifications—name,issuer,issuerUrl,issueDate,credentialId,credentialUrlrecommendations—recommender,recommenderUrl,textlanguages—language,proficiencyservices—name,urlpublications—title,url,publisher,date,descriptionpatents—title,url,filedDate,number,descriptioncourses—title,numberinstructorCourses—title,url,durationhonorsAndAwards—title,issuer,date,descriptiontestScores—name,score,dateorganizations—name,position,descriptionvolunteerExperience—role,organization,descriptionprojects—title,dateRange,descriptionskills— public skill names when the profile shows thembadges,isTopVoice,isCreator— public profile badgeswebsites—label,urlaccessRung— how the page was read for this profile (direct,crawlerorunblocker), for transparency about the access pathsearchQuery,discoveredVia— set on profiles found throughsearchNames(the name that found them, and whether they came from the public directory or the search-index fallback)enrichedFromCookies—trueonly when the optional cookies input was supplied and it actually added datainputUrl— the URL or handle you suppliedorder— zero-based position of this profile in the input listscrapedAt— ISO 8601 timestamp of extraction
When LinkedIn only shows a profile's sign-up preview, the row is built from the page's preview tags and carries just name, headline, location, summary, profileUrl and profilePicture (plus inputUrl, order, scrapedAt).
Status rows
The dataset can also contain one status row per run (turn it off with includeStatusRows: false):
- If none of the requested profiles could be read:
_status: "no_data",_reason(no_resultsorno_search_results),_message,_help(common causes) andscrapedAt. - If only some profiles failed:
_status: "partial_results",_reason(the single failure reason, ormixed),_failureBreakdown(count per reason:auth_wall,not_found,blocked,identity_mismatch,invalid_url,error),_messageandscrapedAt, added alongside the successful profile rows.
Filter on _status if you only want profile rows.
Input
| Field | Type | Default | Description |
|---|---|---|---|
profileUrls | array | – | LinkedIn profile URLs (e.g. https://linkedin.com/in/username) or bare usernames. Optional when searchNames is set. |
searchNames | array | – | Find people by full name (e.g. "Satya Nadella") through LinkedIn's public people directory, then scrape every discovered profile. Combine with profileUrls or use alone. |
searchCompany | string | – | With searchNames: keep only directory candidates whose card lists this company (substring, case-insensitive). |
searchLocation | string | – | With searchNames: keep only directory candidates whose card lists this location (substring, case-insensitive). |
maxSearchResults | integer | 25 | Upper bound on profiles discovered and scraped in search mode (1–100). |
enrichCompany | boolean | true | Also fetch the current employer's public company page for firmographics (employee count, size, industry, HQ, website, logo, founded year, followers, description). Uses a free public mirror, so it adds no proxy cost. |
includeStatusRows | boolean | true | Add one structured status row to the dataset when a run returns no profile rows or only some of the requested profiles. Turn off for profile records only. |
cookies | string | – | Optional and never needed for the standard run. Supply your own LinkedIn session cookies to additionally fill fields LinkedIn withholds from logged-out visitors (real headline, exact connections, full Experience list). cookie is accepted as an alias. |
The actor normalizes https://www.linkedin.com/in/username, regional subdomains such as https://uk.linkedin.com/in/username, linkedin.com/in/username, in/username, and a bare username to the same profile.
Example: default run with company enrichment
{"profileUrls": ["https://www.linkedin.com/in/williamhgates","satyanadella","in/reidhoffman"]}
Example: find people by name and scrape them
{"searchNames": ["Satya Nadella", "Abdul Manan Raja"],"searchCompany": "Microsoft","maxSearchResults": 10,"enrichCompany": true}
Example: faster run, no company enrichment, no status rows
{"profileUrls": ["https://www.linkedin.com/in/satyanadella"],"enrichCompany": false,"includeStatusRows": false}
Use cases
- Lead generation & sales prospecting — enrich a list of LinkedIn URLs with current role, employer, and company details
- Recruiting & talent sourcing — find candidates by name and verify work history, education, and certifications at scale
- Sales intelligence — keep track of role and company changes for key contacts at target accounts
- CRM enrichment — append verified profile and company fields to existing contact records
- Academic & market research — study career trajectories, credentials, and industry trends across large profile sets
- Background and credential checks — cross-reference publicly listed honors, certifications, and project history
Data source
This actor reads only LinkedIn's public, logged-out pages: profile pages' structured data and server-rendered sections, the public company page of the current employer, and the public people directory for name searches. For profiles whose headline block is redacted for anonymous visitors, the actor may additionally consult the public search index and accepts a value only when it matches the member's name and the exact redaction pattern of that profile's structured data. It selects its own access path per request (starting with a direct fetch and escalating only when the target blocks it), so no proxy configuration or login is ever required from you.
FAQ
Do I need a LinkedIn account, login, or cookie?
No. The actor never requires LinkedIn credentials or session cookies — it only reads what LinkedIn serves to anonymous visitors. No proxy setup is needed either. The optional cookies field exists only for users who want to add detail from their own logged-in session; the actor fully works without it and the standard output never depends on it.
Can I get someone's email address or phone number? No. LinkedIn does not expose contact details on the public profile page to logged-out visitors, so the actor never returns them — and never fabricates a guess.
Why is headline sometimes missing or marked headlineRedacted?
LinkedIn's public preview line shows the member's real headline only when the guest view leaves it unredacted. For most profiles it substitutes the current company or the location. A company substitution is returned as no headline with headlineRedacted: true; a location substitution is omitted. When the headline block is redacted, the actor tries to recover the real headline from the public search index — a recovered value is accepted only when it matches the member's name and the word-for-word pattern of the redacted title, and it is marked headlineSource: "serp".
Why are currentTitle or some past employers missing?
LinkedIn withholds job titles, most past employers, and most school names from logged-out viewers by replacing them with asterisk masks. Masked values are omitted rather than pushed as placeholder text. Titles and dates appear for every profile whose full Experience list LinkedIn still renders publicly.
Is the connections count exact?
When LinkedIn shows an exact number publicly, it's returned in connectionsCount. When only the capped form is public (very common), connectionsText carries "500+" instead — the actor never guesses a number.
How does search by name work?
The actor resolves each name against LinkedIn's public people directory, which lists matching members with their current company and location; searchCompany/searchLocation filter those cards, and maxSearchResults bounds how many profiles are scraped. Common names can return many people with the same name — the directory ranks them and the filters are the way to narrow down. Every record found this way carries searchQuery so you can tell which search produced it.
Does this only work on well-known profiles?
No. Any profile LinkedIn shows to logged-out visitors can be read. LinkedIn does sometimes refuse a request even for a public profile; such profiles are counted as blocked in the status row, and re-running them later often succeeds.
What happens if a profile is set to fully private? If the owner has hidden their profile from logged-out visitors, no data is returned for it. That reflects the owner's own privacy setting, not a gap in the actor.
How current is the data? Every field is read directly from LinkedIn's public page at run time — nothing is cached or backfilled from a stored copy. A headline recovered from the search index reflects what that index currently shows for the profile.
Are skills or languages included? They are included when the profile shows them publicly. Languages and skills are among the sections LinkedIn only renders to guests when the owner has made them public, so they appear on some profiles and not others.
Does this work for profiles on regional LinkedIn domains?
Yes — profiles reached via uk.linkedin.com, de.linkedin.com, and other regional LinkedIn domains are supported the same way as linkedin.com.
Is this affiliated with LinkedIn? No. This is an independent, third-party actor that reads publicly available LinkedIn pages; it is not operated by or affiliated with LinkedIn.