LinkedIn Company Employees Scraper & Email Finder — No Login avatar

LinkedIn Company Employees Scraper & Email Finder — No Login

Pricing

from $4.00 / 1,000 employee profiles

Go to Apify Store
LinkedIn Company Employees Scraper & Email Finder — No Login

LinkedIn Company Employees Scraper & Email Finder — No Login

Find a company's employees on LinkedIn without login. Pass company names or URLs, filter by title & seniority, and get verified profiles — name, current title, location, profile URL — plus an optional email finder. Each match is confirmed against its public result, not a SERP guess.

Pricing

from $4.00 / 1,000 employee profiles

Rating

5.0

(1)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

2

Bookmarked

318

Total users

157

Monthly active users

a day ago

Last modified

Share

LinkedIn Company Employees Scraper & Email Finder — No Cookies, Verified

LinkedIn Company Employees Scraper logo

Find a company's employees on LinkedIn without logging in — names, current titles, headlines, locations, and profile URLs — filtered by ICP title and seniority, with an optional contact-email finder. Pass a company name or a LinkedIn URL (mix freely), and every match is verified against its own public web result, so you get confirmed current employees — not raw search-engine guesses.

No login. No cookies required. No ban risk. Pay only for the profiles you get.

Fair billing: you pay only per delivered profile. Empty searches, failed pages, and duplicates are never charged — and the email fee applies only when a contact email is actually found.


Why use this scraper

  • Verified, not guessed. Most "LinkedIn employee" tools dump whatever a search returns and tag it low confidence. This actor reads each result's current employer, title, and location, cross-checks the employer against your target company, and labels each row high / medium / low — with a plain-English reason. Former employees and lookalikes are flagged, not sold to you as current staff.
  • No login, no cookie, no ban risk. Discovery runs entirely over the public web index. Your LinkedIn account is never touched. (An optional cookie mode exists for power users who want the full authenticated roster.)
  • Names or URLs. Don't have the LinkedIn company URL? Just type the company name. Mix names and URLs in one run.
  • ICP targeting built in. Filter by explicit titles (CEO, Head of Sales, Recruiter…) or by seniority buckets (owner, CxO, VP, director, manager…). Leave it empty and a built-in English/Spanish decision-maker set is used automatically.
  • Contact emails, optional. Turn on the email finder to attach a contact email per company.
  • Pay per result. Transparent pay-per-event pricing — a small run-start fee plus a flat price per profile, and a slightly higher price only when an email is found.

What it does

How the LinkedIn Company Employees Scraper works — target, discover and verify, export

Give it one or more companies and, optionally, the titles/seniority you care about. The actor:

  1. Discovers public LinkedIn profiles associated with each company via the public web index.
  2. Verifies each match from its own public result — pulling current title, employer, and location, and confirming (or refuting) that the person currently works at the target company.
  3. Optionally finds a contact email per company.
  4. Returns one clean, de-duplicated row per person, each tagged with a confidence level.

No LinkedIn login is used or required in the default mode.


Supported inputs

You provideExample
Company nameOpenAI
LinkedIn company URLhttps://www.linkedin.com/company/stripe/
A mix of both["OpenAI", "https://www.linkedin.com/company/stripe/"]
A different search phrase for one company{ "notionhq": "Notion", "105621": "Anthropic" }
Target titles (ICP)["CEO", "Head of Sales", "Recruiter"]
Seniority buckets["cxo", "vp", "director"]
Location hint"San Francisco"

Use cases

  • Sales & lead-gen — build decision-maker lists at target accounts, filtered by title and seniority, ready for your CRM.
  • Recruiting & talent mapping — see who works where by role and level; map a competitor's team.
  • LATAM outreach — the built-in title set includes Spanish decision-maker titles (Gerente General, Presidente, Dueño, Fundador…) so Spanish-language headlines actually match.
  • Market & competitive research — headcount by function, org composition, and hiring signals.
  • AI agents & automation — a clean, structured, verified data source for autonomous prospecting via the Apify API.

How it works

  1. Discover — for each company × target title, the actor queries the public web index for LinkedIn profiles and parses them into a unified row shape (name, headline, profile URL).
  2. Verify — each row is confirmed from its own public result: the current title, employer, and location are extracted and the employer is cross-checked against the target company. Confidence is high (employer confirmed as your company AND the requested title matches), medium (works there but the heading does not carry the requested title, or the employer only resembles your company — "Stripe Media Inc." for a Stripe search — or the company is merely mentioned), or low (no trace of the company at all). "Former"/"ex-" roles are detected and never sold as current. medium is the normal good outcome, not a weak one — see below.
  3. Enrich (optional) — one contact email per company is discovered and stamped onto its rows.
  4. Return & bill — one de-duplicated row per person is written to the dataset, billed per profile (with an email premium only when an email was actually found).

An advanced deep-verify option additionally fetches each public profile page; because LinkedIn heavily gates those pages it is slow and best-effort, so it's off by default — snippet verification already confirms the current employer without it.


Input configuration

FieldTypeDefaultDescription
companiesarrayCompany names and/or LinkedIn company URLs, mixed.
companySearchTermsobject{}Optional. Search a different phrase for one company: key = the company as you supplied it (handle, URL, typed name, or numeric id), value = the phrase to search. Your rows keep the key you supplied as their company value.
targetTitlesarraybuilt-in EN/ES setICP titles to target. Empty = built-in decision-maker set (skipped for >50 companies unless you set titles).
seniorityFilterarray[]Seniority buckets expanded into titles: owner, partner, cxo, vp, director, manager, senior, entry, training, unpaid.
locationstring""Optional location hint to improve relevance.
maxItemsinteger50Max employees returned per company.
verifyProfilesbooleantrueConfirm each row's employer/title/location from its own public result (free, recommended).
enrichEmailsbooleanfalseFind one contact email per company.
deepVerifybooleanfalseAdvanced: also fetch each public profile page (slow / best-effort).
googlePagesinteger3Result pages per company × title (more = more candidates, higher cost).
startUrlsarrayAdvanced: LinkedIn company URLs via a request list / Google Sheet.
cookiesarrayOptional: li_at + JSESSIONID to enable authoritative cookie mode.

Output

One row per person. Example (no-cookie, verified):

{
"fullName": "Fidji Simo",
"firstName": "Fidji",
"lastName": "Simo",
"headline": "CEO, AGI Deployment at OpenAI",
"currentTitle": "CEO, AGI Deployment",
"currentEmployer": "OpenAI",
"location": "Palo Alto",
"company": "openai",
"profileUrl": "https://www.linkedin.com/in/fidjisimo/",
"publicIdentifier": "fidjisimo",
"source": "GS",
"verified": true,
"confidence": "high",
"confidenceReason": "Confirmed from the public result — current employer matches \"openai\" and the target title matches.",
"matchedTitles": ["CEO"],
"titleMatchType": "exact",
"scrapedAt": "2026-07-19T00:00:00.000Z",
"snippet": "CEO, AGI Deployment at OpenAI · Experience: OpenAI · Location: Palo Alto",
"profileDepth": "short",
"image": null,
"connectionDegree": null,
"insights": [],
"contactInfo": null
}

Every row carries all of the above. image, connectionDegree, insights and contactInfo are populated only in cookie mode and are null/empty on the no-login path, where the public web index does not expose them.

Key output fields

FieldDescription
fullName / firstName / lastNamePerson's name
headlineProfile headline as indexed
currentTitleCurrent job title (parsed & verified)
currentEmployerCurrent employer (verified against the target company)
locationLocation, when available from the public result
profileUrl / publicIdentifierLinkedIn profile URL and slug
companyTarget company key the row was discovered under
verifiedtrue only when the employer is an exact match for your target company. A near-miss like "Stripe Media Inc." for a Stripe search stays false — see confidenceReason
confidencehigh / medium / low
confidenceReasonPlain-English explanation of the confidence
matchedTitles / titleMatchTypeWhich requested titles matched, and how (exact / partial / none)
contactEmail / contactWebsitePresent only when the email finder is enabled
sourceGS (public web index) or linkedin-voyager (cookie mode)
snippetThe search result text the verification was read from — the evidence behind confidence
profileDepthshort from the search result, full when deepVerify fetched the profile page
image / connectionDegree / insights / contactInfoCookie-mode extras; null/empty on the no-login path

FAQ

Do I need a LinkedIn account or cookie? No. The default mode uses only the public web index — no login, no cookie, no ban risk. Cookie mode is an optional power-user feature.

How is this different from other LinkedIn employee scrapers? Most return raw search matches tagged "low confidence." This actor verifies each match against its own public result, confirms the current employer and title, flags former employees, and tells you why each row got its confidence level.

Will it include people who don't actually work there? Discovery can surface lookalikes and former staff — that's exactly why verification exists. Every row carries a confidenceReason saying what was and was not confirmed.

Which confidence level should I filter on? confidence != "low" — not high. high additionally requires the search result's heading to contain the title you asked for, and whether headings do that varies by company rather than by data quality: asking for "CEO" at OpenAI returns 0 high out of 20, because those people write "OpenAI" in their headline rather than their title, while the same query against Stripe returns a few, because Stripe-adjacent people write "CEO at …". Filtering to high can therefore discard an entire good run. low is the meaningful cut: it means the company appears nowhere in the result.

Can I search by company name instead of URL? Yes. Type the name directly; URLs and names can be mixed in one run.

A company URL returned far fewer people than it should — why? A LinkedIn URL carries a handle, not always the company name, and the search uses whatever the URL gives it: notionhq returned 2 profiles where Notion returned 20. Set companySearchTerms to search the name instead — { "notionhq": "Notion" } — and every row still comes back with company: "notionhq", so nothing downstream changes. The run log names any company whose yield looks thin for this reason.

Can I use a numeric company URL like linkedin.com/company/105621/? Yes, with companySearchTerms. The id carries no name to search, so on its own it is skipped. Map it — { "105621": "Anthropic" } — and the search runs on the name while your rows keep company: "105621", the key your own system already stores. That means the company column can legitimately hold a numeric id; it is always the key you supplied, never a name we invented. Note the phrase is also what results are verified against, and the optional email finder still looks the company up by your key rather than by the phrase.

How do I get contact emails? Enable the email finder (enrichEmails). It's best-effort and adds contactEmail / contactWebsite.

Can AI agents call it? Yes — structured JSON output and an API-first design. Call it from any LLM/automation framework via the Apify API.


Support

Questions, edge cases, or a custom field you need? Open an issue on the Apify actor page and we'll help.


Explore More Scrapers

Building a full lead-gen or recruiting pipeline? These pair well with this actor:


🤖 For AI Agents & LLM Apps

Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/linkedin-company-employees-scraper).

Purpose: Find a company's employees on LinkedIn (name, title, employer, location, profile URL) with no login, filtered by ICP title/seniority, with each match verified against its own public web result.

Minimal input:

{
"companies": ["OpenAI"],
"maxItems": 25
}

Add "targetTitles": ["CEO", "Head of Sales"] to filter by ICP title, or pass LinkedIn company URLs directly in companies (e.g. "companies": ["https://www.linkedin.com/company/stripe/"]).

Output: one row per person — fullName, firstName, lastName, headline, currentTitle, currentEmployer, location, company, profileUrl, publicIdentifier, source, verified, confidence, confidenceReason, matchedTitles, titleMatchType, scrapedAt; plus contactEmail and contactWebsite only when enrichEmails is on.

Behaviors an agent should know:

  • maxItems is per company (default 50); always set it — an uncapped multi-company run can return hundreds of rows.
  • targetTitles empty = built-in EN/ES decision-maker set; that default is skipped for runs of >50 companies unless you set titles.
  • verifyProfiles (default true) confirms employer/title from each public result for free, and withholds rows that come back low — a search engine answers a company it cannot match by relaxing the query and returning unrelated people, and those are what low catches. Set it to false to receive the raw matches instead. Filter on confidence != "low"; see the note above on why high is the wrong cut.
  • Billing is pay-per-event: a run-start fee plus a flat price per delivered profile; empty/failed/duplicate results are never charged, and the email premium applies only when enrichEmails finds an email.
  • Default mode uses only the public web index (no login/cookie); paste li_at + JSESSIONID in cookies for authoritative full-roster mode. deepVerify fetches each gated profile page (slow, best-effort) and is off by default.

⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by LinkedIn Corporation or Microsoft. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly available information — public web-index results and public profile data — with no authenticated LinkedIn endpoints, paid features, or content behind the LinkedIn login wall used in the default mode. Users are responsible for ensuring their use complies with LinkedIn's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organization. Scraped personal data must be processed on a lawful basis and used only for legitimate purposes.


SEO Keywords

LinkedIn company employees scraper, LinkedIn employee finder, scrape LinkedIn employees no login, LinkedIn people scraper no cookies, company employee list LinkedIn, LinkedIn lead generation scraper, LinkedIn decision maker finder, LinkedIn email finder, find employees by company, LinkedIn recruiter sourcing tool, LinkedIn org chart scraper, LinkedIn sales prospecting, LinkedIn ICP scraper, verified LinkedIn profiles, LinkedIn company people export, Apify LinkedIn scraper, LinkedIn B2B contact scraper, LinkedIn talent mapping, no-login LinkedIn scraper, LinkedIn employees email