Linkedin Company Employees Scraper avatar

Linkedin Company Employees Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Linkedin Company Employees Scraper

Linkedin Company Employees Scraper

LinkedIn Company Employees Scraper extracts employee profiles from LinkedIn company pages. It gathers names, job titles, profile URLs, locations, and role details. Useful for recruitment research, B2B prospecting, lead generation, and analyzing company workforce structures.

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

ScrapeLabs

ScrapeLabs

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

13 days ago

Last modified

Share

Linkedin Company Employees Scraper

Linkedin Company Employees Scraper is an Apify actor that discovers and extracts public employee profiles from LinkedIn company pages at scale. It solves the challenge of finding and consolidating employee data by automatically collecting profile URLs and enriching them with structured details like names, headlines, locations (with geocoded country codes), and company associations — ideal for marketers, developers, data analysts, and researchers. Use it as a company employees scraper for B2B enrichment, recruitment research, lead generation, and workforce analysis at scale. 🚀

What data / output can you get?

This actor pushes structured JSON records to the Apify dataset for each discovered employee profile.

Data fieldDescriptionExample value
company_urlThe LinkedIn company URL associated with the profile (filled from detected or input target)https://www.linkedin.com/company/microsoft
profile_urlCanonical LinkedIn profile URLhttps://www.linkedin.com/in/janedoe
fullnameFull name parsed from the profile pageJane Doe
first_nameFirst nameJane
last_nameLast nameDoe
headlineProfile headline (e.g., current role)Senior Software Engineer at Microsoft
public_identifierIdentifier parsed from profile URL (pattern includes “/in/…”)/in/janedoe
profile_picture_urlOpen Graph or detected profile image URL (if available)https://media.licdn.com/dms/image/...
location.countryCountry parsed/geocoded from the profileUnited States
location.cityCity parsed/geocoded from the profileSeattle
location.fullFull location stringSeattle, Washington, United States
location.country_codeISO-like country code (best-effort)US
current_companyDetected current company name from profile linksMicrosoft
companies_detectedList of detected companies with name, slug, and URL[{"name":"Microsoft","slug":"microsoft","url":"https://www.linkedin.com/company/microsoft/"}]
personal_websiteFirst non-LinkedIn outbound link found on the profile (if any)https://janedoe.dev
recommendations_receivedList of recommendation snippets with author details[{"text":"Great collaborator…","author":"John Smith","author_url":"https://www.linkedin.com/in/johnsmith"}]
other_contact_detailsExtra references (e.g., LinkedIn Learning course links){"course_links":["https://www.linkedin.com/learning/..."]}
contact_elementsStructured page signals (identity, auth points, learning, platform, language){...}
is_creatorFlag (static false)false
is_influencerFlag (static false)false
is_premiumFlag (static false)false
show_follower_countFlag (static true)true
created_timestampUNIX timestamp of extraction1712486400
errorError message for blocked/failed profiles (only when errors occur)HTTP 999

Bonus: The actor also includes rich nested metadata in contact_elements (e.g., platform policy links, learning content details and titles) when available on the page. You can download the dataset from Apify in common formats like JSON or CSV.

Key features

  • 🧭 Dual discovery of employees Combines company-page crawling (/people, /about) with Google search (site:linkedin.com/in) to maximize employee URL discovery per target.

  • 🛡️ Automatic residential proxy The actor auto-configures and uses Apify RESIDENTIAL proxy for all requests, regardless of user input selection, improving resilience against blocking.

  • 📦 Bulk inputs with flexible targets Accepts an array of company URLs, slugs, profile usernames, or keywords via targets, making large-scale runs straightforward.

  • 🎯 Per-company limits Control scope with maxEmployees (1–1000) to cap profiles scraped per company.

  • 🧾 Structured profile data Extracts names, headlines, locations with geocoded country codes, detected current company, personal website, recommendation snippets, and LinkedIn Learning references.

  • ⚡ Lightweight, no-login scraping Uses fast HTTP requests (no browser, no cookies), built with httpx and BeautifulSoup/lxml for efficient HTML parsing.

  • 🔁 Robust retry & block handling Detects LinkedIn blocks (e.g., HTTP 999), applies backoff retries for recoverable cases, and records an error field when a profile can’t be extracted.

  • 📊 Dataset-ready outputs Pushes consistent JSON objects to the Apify dataset, ready to export or pipe into your tools and workflows.

How to use Linkedin Company Employees Scraper - step by step

  1. Sign in to Apify
    Create an Apify account or sign in to access the actor.

  2. Open the actor and add input
    Paste your targets into the targets array. You can use:

  1. Set limits
    Adjust maxEmployees to define how many profiles to scrape per company (range: 1–1000).

  2. (Optional) Review proxy settings
    There’s a proxyConfiguration input. Note: the actor will automatically use a RESIDENTIAL proxy for all requests, regardless of your selection.

  3. Start the run
    Click Start. The actor will discover profile URLs from company pages and Google, then scrape each profile’s public data.

  4. Monitor progress
    View logs to see discovery counts, retry attempts, and any block detections.

  5. Export your data
    Open the run’s Dataset to download results in your preferred format (e.g., JSON, CSV) or access them via the Apify API.

Pro tip: Schedule runs and pull results programmatically from the dataset API to feed CRMs, analytics dashboards, or enrichment pipelines.

Use cases

Use caseDescription
Lead generation listsBuild targeted lists by extracting public profiles tied to specific companies for B2B outreach.
Recruitment researchIdentify potential candidates and map team structures using current_company and location metadata.
Sales intelligenceDiscover decision-makers and roles via headline and company-detected fields for account-based motions.
Market & HR analyticsAnalyze workforce location distribution and company associations across discovered employees.
Competitor benchmarkingCompare detected companies and roles to understand organizational makeup and trends.
Data enrichment pipelineAutomate profile discovery and append structured public data into internal systems via dataset exports.
Academic & social researchCollect public professional data at scale for studies on labor markets and organizational networks.

Why choose Linkedin Company Employees Scraper?

Precision-focused, automation-ready, and resilient against blocking, this actor delivers consistent, structured employee data without login or browser overhead.

  • 🎯 Accurate public data extraction: Extracts names, headlines, locations, and company associations directly from public profile HTML.
  • 🌍 Geocoded locations: Best-effort city/country parsing with country_code enrichment.
  • 📈 Scales across many targets: Bulk input with per-company limits for predictable workloads.
  • 🧩 Developer-friendly outputs: Clean JSON objects and nested structures suitable for pipelines and analysis.
  • 🛡️ Safe and resilient: No login required; automatically uses RESIDENTIAL proxy and handles blocks with retries and error signaling.
  • 💸 Cost-efficient automation: Lightweight HTTP client and structured dataset outputs reduce overhead versus browser-based alternatives.

In short: a production-ready employee discovery and extraction tool vs. brittle extensions or manual copy-paste.

Yes — when done responsibly. This actor accesses publicly available pages (LinkedIn public company and profile pages, plus Google search results) and does not log in or access private data.

Guidelines for responsible use:

  • Collect only publicly visible information.
  • Comply with applicable laws and data protection regulations (e.g., GDPR/CCPA).
  • Respect LinkedIn’s terms and use the data for legitimate purposes (research, analytics, outreach), not spam.
  • Consult your legal team for edge cases or regulated workflows.

Input parameters & output format

Example JSON input

{
"targets": [
"https://www.linkedin.com/company/microsoft",
"acme-corp",
"software engineer"
],
"maxEmployees": 25,
"proxyConfiguration": {
"useApifyProxy": false
}
}

Parameters

  • targets (array of strings, required): Bulk input — LinkedIn company URLs or slugs, profile usernames, or keywords. Can be URLs (e.g., "https://www.linkedin.com/company/microsoft") or plain text (e.g., "microsoft", "google", "software engineer"). Default: none.
  • maxEmployees (integer, optional): Maximum number of employee profiles to scrape per company. Range: 1–1000. Default: 10.
  • proxyConfiguration (object, optional): Default: No proxy (prefill { "useApifyProxy": false }). Note: The actor auto-configures a RESIDENTIAL proxy for all requests regardless of this setting.

Example JSON output

{
"company_url": "https://www.linkedin.com/company/microsoft",
"profile_url": "https://www.linkedin.com/in/janedoe",
"fullname": "Jane Doe",
"first_name": "Jane",
"last_name": "Doe",
"headline": "Senior Software Engineer at Microsoft",
"public_identifier": "/in/janedoe",
"profile_picture_url": "https://media.licdn.com/dms/image/...",
"location": {
"country": "United States",
"city": "Seattle",
"full": "Seattle, Washington, United States",
"country_code": "US"
},
"is_creator": false,
"is_influencer": false,
"is_premium": false,
"created_timestamp": 1712486400,
"show_follower_count": true,
"current_company": "Microsoft",
"companies_detected": [
{
"name": "Microsoft",
"slug": "microsoft",
"url": "https://www.linkedin.com/company/microsoft/"
}
],
"personal_website": "https://janedoe.dev",
"recommendations_received": [
{
"text": "Jane is a fantastic collaborator and mentor.",
"author": "John Smith",
"author_url": "https://www.linkedin.com/in/johnsmith"
}
],
"other_contact_details": {
"course_links": [
"https://www.linkedin.com/learning/some-course"
]
},
"contact_elements": {
"profile_identity": {
"profile_identifier": "https://www.linkedin.com/in/janedoe",
"profile_picture": "https://media.licdn.com/dms/image/...",
"profile_name_display": "Jane Doe"
},
"auth_points": {
"email_phone_input_present": false,
"password_input_present": false,
"login_form_action": ""
},
"learning_content": {
"course_details": [
{
"title": "Advanced Python Tips",
"duration": "1h 10m",
"url": "https://www.linkedin.com/learning/advanced-python",
"image": "https://media.licdn.com/dms/image/..."
}
],
"course_titles": [
"Advanced Python Tips"
],
"all_courses_link": "https://www.linkedin.com/learning/"
},
"platform": {
"corporate_logo_url": "",
"copyright": "",
"policy_links": [],
"about_links": [],
"privacy_links": [],
"user_agreement_links": []
},
"language": {
"selector_present": false,
"locales": []
}
}
}

Notes:

  • When a profile cannot be extracted (e.g., blocked), the record may include an error field such as "HTTP 999" or "Login required or blocked" alongside profile_url and created_timestamp.

FAQ

Do I need to log in to use this scraper?

No. The actor uses HTTP requests to public pages and does not require LinkedIn login or cookies. It avoids authenticated data and operates on publicly accessible content.

What inputs does the actor accept?

Provide an array of targets. Each target can be a LinkedIn company URL, a company slug, a profile username, or a keyword. The actor will discover employee profiles from company pages and via Google search for relevant public profiles.

How many employees can it scrape per company?

This is controlled by maxEmployees (range 1–1000). The actor will stop after reaching this limit for each target, combining URLs found on company pages and via Google.

What data fields are included in the output?

Core fields include profile_url, fullname, first_name, last_name, headline, public_identifier, profile_picture_url, location (country, city, full, country_code), current_company, companies_detected, personal_website, recommendations_received, other_contact_details, contact_elements, plus flags (is_creator, is_influencer, is_premium), show_follower_count, and created_timestamp. See the Output section for a full example.

Does it extract emails or phone numbers?

No. The actor collects public profile data and metadata available on the page. It does not extract emails or phone numbers.

How does the scraper find employee profiles?

It crawls the target company’s public pages (base, /people/, /about/) and performs Google searches with a site:linkedin.com/in query for names associated with the company. Discovered profile URLs are then scraped for structured details.

What happens if LinkedIn blocks a request?

The actor detects blocking scenarios such as HTTP 999 or authwall pages. It retries recoverable cases with backoff and returns an error field for profiles that remain inaccessible after retries.

Does it use proxies?

Yes. The actor auto-configures and uses a RESIDENTIAL proxy for all requests. This behavior is enforced regardless of the proxyConfiguration input selection.

How do I export the results?

All results are pushed to the run’s Apify dataset. You can download the dataset in formats like JSON or CSV, or access it programmatically via the Apify API.

Closing thoughts

Linkedin Company Employees Scraper is built to discover and extract structured public employee data from LinkedIn company pages at scale. With dual discovery (company pages + Google), automatic residential proxies, and clean JSON outputs, it’s ideal for marketers, recruiters, analysts, and developers who need reliable, automation-ready datasets. Connect it to your workflows via Apify datasets and API, schedule regular runs, and start extracting smarter today. 🌟