LinkedIn Company Scraper
Pricing
from $5.00 / 1,000 results
LinkedIn Company Scraper
Extract companies from LinkedIn. Returns employee count, industry, headquarters, description, and specialties. Optional employee profile scraping. Pay-per-result.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
NanoScrape
Maintained by CommunityActor stats
0
Bookmarked
15
Total users
4
Monthly active users
17 hours ago
Last modified
Categories
Share
Enrich companies with LinkedIn data: employee count, industry, headquarters, description, specialties, website, founded year, follower count, top employees with profile URLs, and recent company posts.
HTTP-only, no browser needed. ~128MB RAM, pay-per-result.
How It Works
- If
linkedin_urlis provided, the actor extracts the company slug directly (recommended). - If not provided, the actor searches Google via
GOOGLE_SERPproxy to find the LinkedIn company page. - The actor scrapes the public LinkedIn guest page (
/organization-guest/company/{slug}) which contains full company data in structured HTML. No login or cookies required. - Optionally scrapes the people page for employee profiles filtered by title.
Use with AI Agents (MCP)
Connect this actor to any MCP-compatible AI client: Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or custom agents.
Apify MCP server URL:
https://mcp.apify.com?tools=santamaria-automations/linkedin-company-scraper
Example prompt once connected:
"Use
linkedin-company-scraperto enrich these companies with LinkedIn data. Return the results as a table."
Clients that support dynamic tool discovery (Claude.ai, VS Code) receive the full input schema automatically via add-actor.
Input
{"companies": [{"company_id": "acme-1","company_name": "Example Company Ltd.","linkedin_url": "https://www.linkedin.com/company/example-company"},{"company_id": "acme-2","company_name": "Sample Widgets GmbH","website_domain": "sample-widgets.example"}],"includeEmployees": true,"maxEmployeesPerCompany": 10,"employeeTitleFilters": ["HR", "CEO", "CTO"],"requestDelay": 3000}
Input Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
companies | array | Yes | - | Companies to enrich |
companies[].company_id | string | Yes | - | Your internal identifier |
companies[].company_name | string | Yes | - | Company name |
companies[].linkedin_url | string | Recommended | - | Direct LinkedIn URL (skips search) |
companies[].website_domain | string | No | - | Improves search accuracy when no URL provided |
includeEmployees | boolean | No | false | Scrape employee profiles from people page |
maxEmployeesPerCompany | integer | No | 10 | Max employees per company (1-50) |
employeeTitleFilters | string[] | No | ["HR","CEO","CTO","Recruiter","People","Talent"] | Filter by title keywords |
requestDelay | integer | No | 2000 | Delay between requests in ms |
linkedinCookie | string | No | - | Optional li_at cookie for authenticated access (more data) |
linkedinEmail | string | No | - | Optional: login to get li_at automatically |
linkedinPassword | string | No | - | Optional: login password |
Output
Each company produces one dataset row:
{"company_id": "acme-1","company_name": "Example Company Ltd.","linkedin_url": "https://www.linkedin.com/company/example-company","employee_count": 5000,"employee_count_range": "1,001-5,000","industry": "Software Development","headquarters": "Munich, Bavaria","description": "Example Company Ltd. builds sample software for demo purposes.","specialties": ["Sample Product", "Demo Service", "Widget Manufacturing"],"website": "https://www.example.com","founded": "2015","company_type": "Privately Held","follower_count": 182760,"address": null,"tagline": "Help increase the GDP of the internet.","logo_url": "https://media.licdn.com/dms/image/...","employees_on_linkedin": 16694,"locations": ["354 Oyster Point Blvd, South San Francisco, California 94080, US"],"employees": [{ "name": "Jane Doe", "title": "Head of People", "linkedin_url": "https://www.linkedin.com/in/jane-doe-example" }],"posts": [{ "text": "We are hiring across our engineering teams.", "posted_at": "2d", "likes": null, "comments": null }],"error": null}
Extracted Fields
| Field | Description |
|---|---|
employee_count | Upper bound of employee range (e.g., 5000 for "1,001-5,000") |
employee_count_range | Raw range string from LinkedIn |
industry | Company industry |
headquarters | City, Region |
description | Full company description |
specialties | List of specialties or focus areas |
website | Company website URL |
founded | Year founded |
company_type | "Privately Held", "Public Company", etc. |
follower_count | LinkedIn follower count |
tagline | Short tagline under the company name |
logo_url | Company logo image URL |
employees_on_linkedin | People listing the company as employer on LinkedIn |
locations | Office locations from the Locations section |
employees | Top visible employees with LinkedIn profile URLs |
posts | Up to 5 recent company updates |
Errors and partial results
A company that cannot be enriched (not found, blocked by LinkedIn, invalid URL, unresolvable numeric ID) is not added to the dataset and is not charged. It is listed in the key-value store record FAILED_URLS as {url, company_id, reason}, and the run status message reads "N companies scraped, M failed (see FAILED_URLS)". If every company you provided is blocked by LinkedIn (403/429/451/authwall), the run ends as failed with a clear message. LinkedIn /company/, /school/ and /showcase/ URLs are accepted in any form (locale subdomains, query strings, trailing paths, upper case). If you start the actor with an empty input it enriches one built-in demo company (Microsoft).
If the run is about to hit its time limit, it stops cleanly. Companies that were not processed are not written to the dataset (so they are not charged). They are saved to the UNPROCESSED_COMPANIES record of the key-value store and the run status message says how many there are, so you can run them again. Entries in companies that cannot be used at all are listed in INVALID_ENTRIES.
Pricing
Pay-per-result via Apify Pay-Per-Event billing:
| Event | Price | Description |
|---|---|---|
| Actor start | $0.001 | Charged once per run |
| Result | $0.005 | Charged per output row (each dataset item). Failed lookups are not pushed and not charged |
Enriching 1,000 companies costs about $5, proxy included. No monthly fees.
Numeric LinkedIn IDs
Older websites sometimes embed LinkedIn URLs in the numeric-ID form (for example https://www.linkedin.com/company/19051). LinkedIn walls those URLs behind a login page, so the actor probes a small set of candidate slugs built from company_id (typically the website domain) and company_name, and switches to the first slug URL that returns real company data. When this happens the output row sets resolved_from_numeric_id: true. If no candidate resolves, the company is listed in FAILED_URLS with reason numeric_id_unresolvable and is not charged.
Tips
- Always provide
linkedin_urlwhen available. It is faster and more reliable than search. - LinkedIn URLs can be found on company websites (footer or header links), Google Maps data, or business directories.
- The LinkedIn slug often differs from the legal company name (e.g., "Example Company AG" may map to
example-company, notexample-company-ag). - Use
requestDelay: 3000or higher to avoid rate limiting (HTTP 999). - Proxy handling is built in, nothing to configure.
Use Cases
- B2B Lead Enrichment: add employee counts, industry, and HQ to your company database.
- Sales Intelligence: find decision-maker profiles via the employees list.
- Market Research: analyze industry distribution, company sizes, and specialties across a list of companies.
- Competitive Analysis: track competitor follower counts and recent posts.
Related Actors
Discovery:
- Google Maps Scraper - collect places and companies in bulk
Enrichment:
- Website Email Scraper - pull emails and phones from company sites
- Website Contact Extractor - LLM-powered people extraction
- AI Icebreaker Generator - one personalized cold-outreach line per business
- GBP Completeness Audit - score Google Business Profiles for lead prioritization
Issues & Feature Requests
If a field is missing or looks off for a given company, open an issue on the actor's Issues tab and we will take a look.