LinkedIn Guest-View Profile Data Extractor avatar

LinkedIn Guest-View Profile Data Extractor

Pricing

from $0.49 / 1,000 results

Go to Apify Store
LinkedIn Guest-View Profile Data Extractor

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

vexaloom-labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 days ago

Last modified

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 null values

Output per profile

  • name, headline, location, summary
  • headlineSource — where the headline came from: page (the profile page itself) or serp (recovered from the public search index and verified against the profile's redaction pattern)
  • profileUrl, profilePicture
  • currentTitle — current job title, when LinkedIn exposes it publicly for this profile/viewer combination
  • headlineRedacted — true when LinkedIn substituted the current company for a withheld headline in its public preview line
  • allTitles — the job titles LinkedIn publishes in the profile's structured data
  • currentCompany — current employer: name, url, slug, and companyId when the company link is numeric. With enrichCompany on and the company page readable, it also gains employeeCount, size, industry, website, headquarters, address, foundedYear, followersCount, description, slogan, organizationType, logoUrl and specialties
  • currentSchool — 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 carries title, dateRange, duration and location
  • experiences — currentPositions and pastPositions combined into a single list
  • education (and educations, the same list under both keys) — school, schoolUrl, startDate, endDate, plus gpa and dateRange from the richer logged-out education list when present, and degree, fieldOfStudy when LinkedIn renders the full Education list
  • followersCount, connectionsCount (exact number when the profile shows one), connectionsText (e.g. "500+" when only the capped form is public)
  • recentArticles — recent posts/articles with title, url, publishedDate, text and likes
  • certifications — name, issuer, issuerUrl, issueDate, credentialId, credentialUrl
  • recommendations — recommender, recommenderUrl, text
  • languages — language, proficiency
  • services — name, url
  • publications — title, url, publisher, date, description
  • patents — title, url, filedDate, number, description
  • courses — title, number
  • instructorCourses — title, url, duration
  • honorsAndAwards — title, issuer, date, description
  • testScores — name, score, date
  • organizations — name, position, description
  • volunteerExperience — role, organization, description
  • projects — title, dateRange, description
  • skills — public skill names when the profile shows them
  • badges, isTopVoice, isCreator — public profile badges
  • websites — label, url
  • accessRung — how the page was read for this profile (direct, crawler or unblocker), for transparency about the access path
  • searchQuery, discoveredVia — set on profiles found through searchNames (the name that found them, and whether they came from the public directory or the search-index fallback)
  • enrichedFromCookies — true only when the optional cookies input was supplied and it actually added data
  • inputUrl — the URL or handle you supplied
  • order — zero-based position of this profile in the input list
  • scrapedAt — 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_results or no_search_results), _message, _help (common causes) and scrapedAt.
  • If only some profiles failed: _status: "partial_results", _reason (the single failure reason, or mixed), _failureBreakdown (count per reason: auth_wall, not_found, blocked, identity_mismatch, invalid_url, error), _message and scrapedAt, added alongside the successful profile rows.

Filter on _status if you only want profile rows.

Input

FieldTypeDefaultDescription
profileUrlsarray–LinkedIn profile URLs (e.g. https://linkedin.com/in/username) or bare usernames. Optional when searchNames is set.
searchNamesarray–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.
searchCompanystring–With searchNames: keep only directory candidates whose card lists this company (substring, case-insensitive).
searchLocationstring–With searchNames: keep only directory candidates whose card lists this location (substring, case-insensitive).
maxSearchResultsinteger25Upper bound on profiles discovered and scraped in search mode (1–100).
enrichCompanybooleantrueAlso 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.
includeStatusRowsbooleantrueAdd 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.
cookiesstring–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.