LinkedIn Company Search Scraper
Pricing
from $10.00 / 1,000 company founds
LinkedIn Company Search Scraper
Search public LinkedIn company pages by keyword, industry, and location. Cookieless, MCP-ready.
Pricing
from $10.00 / 1,000 company founds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
3
Monthly active users
7 days ago
Last modified
Categories
Share
LinkedIn Company Search Scraper is an Apify Actor for searching public LinkedIn company pages by keyword, industry, and location. It accepts free-text company search terms plus optional industry, location, country, maxResults, and enrich settings. Each returned record represents one matched public company page and can include the company name, LinkedIn URL, slug, search snippet, rank, source, industry, follower count, employee count, company size, company type, founded year, website, headquarters, city, state, country, description, specialties, and slogan. The Actor is also usable through Apify MCP for company discovery and optional public-company enrichment.
The main outcome is a dataset of one record per matched company, plus a run summary in key-value storage. That gives you a structured company list you can review, filter, or hand off into the next step of a workflow.
Best fit and connected workflows
This Actor fits workflows that start with broad company discovery and end with structured company records.
Use it when you want to:
- Find public LinkedIn company pages by a niche, industry, or city.
- Build a company shortlist with LinkedIn URL, rank, snippet, and source.
- Add public firmographic context with deep enrichment when a workflow needs more company detail.
- Feed an agent a company-discovery tool that returns one flat record per matched company.
A natural connected workflow is:
- Search for companies with this Actor. a bounded number of Review the matched company records in the dataset.
- Pass selected public company URLs into a downstream enrichment Actor when your workflow needs additional profile-level context.
Related Actors:
- Use LinkedIn Profile Scraper & Email Finder 📧 ✅ No Login Required - a natural next step after company discovery when your workflow needs enrichment for returned public LinkedIn records that accept a public URL or ID.
Practical scenario
Maya is preparing a shortlist of software companies in Berlin. She starts with:
- keywords:
fintech - industry:
Software Development - location:
Berlin - country:
de - maxResults:
10 - enrich:
true
The run returns records with fields such as companyName, linkedinUrl, employeeCount, website, and headquarters. Maya uses employeeCount, headquarters, and website to decide which companies belong in the next outreach segment, then sends the selected public company URLs to a downstream workflow for more detailed review.
Input
| Field | Type | Description |
|---|---|---|
keywords | string | Free-text company-search terms run against public LinkedIn company pages. Combined with the other filters into one Google query. Defaults to empty. Example: fintech payments. |
industry | string | Industry or sector to match in the company page. Multi-word values are quoted automatically. Defaults to empty. Example: Software Development. |
location | string | City, region, or country the company is based in. Used in the search text and as the SerpApi geo hint. Defaults to empty. Example: San Francisco. |
country | string | Two-letter country code used to route the Google domain and result language. Defaults to us. Example: de. |
maxResults | integer | Maximum number of unique public company pages to return. Minimum 1, maximum 500. Each returned company is billed as one company-found event. |
enrich | boolean | When true, each found company is additionally fetched from its public LinkedIn page for deeper company fields via ScrapeCreators and billed as one extra company-enriched event. Defaults to false. |
Example input
{"keywords": "fintech payments","industry": "Software Development","location": "Berlin","country": "de","maxResults": 10,"enrich": true}
Output
The output schema exposes a companies dataset link with matched public LinkedIn company pages and a summary record in key-value storage for the execution overview.
| Field | Type | Description |
|---|---|---|
query | string | Search query used for the record. |
companyName | string or null | Company display name. |
slug | string or null | Company handle. |
linkedinUrl | string or null | Canonical LinkedIn company URL. |
snippet | string or null | Raw Google SERP snippet. |
rank | integer or null | Search result position. |
source | string or null | Search source identifier. |
enriched | boolean or null | Indicates whether deep enrichment ran. |
industry | string or null | Industry or sector signal. |
followerCount | integer or null | LinkedIn follower count. |
employeeCount | integer or null | Approximate employee count. |
companySize | string or null | LinkedIn size band. |
companyType | string or null | Company type. |
founded | integer or null | Founding year. |
website | string or null | Company website. |
headquarters | string or null | Headquarters string. |
city | string or null | City from enriched company data. |
state | string or null | State or region from enriched company data. |
country | string or null | Country from enriched company data. |
description | string or null | Public company description. |
specialties | array or null | Declared specialties. |
slogan | string or null | Company slogan. |
scrapedAt | string or null | Timestamp of the scrape. |
_status | string or null | Internal status field. |
_message | string or null | Internal message field. |
Example output record
{"query": "fintech payments Berlin","companyName": "Example Company","slug": "example-company","linkedinUrl": "https://www.linkedin.com/company/example-company/","snippet": "LinkedIn company page for Example Company","rank": 1,"source": "serpapi+scrapecreators","enriched": true,"industry": "Software Development","followerCount": 12000,"employeeCount": 85,"companySize": "51-200 employees","companyType": "Privately Held","founded": 2017,"website": "https://example.com","headquarters": "Berlin, Germany","city": "Berlin","state": null,"country": "DE","description": "Public company description text.","specialties": ["Payments", "Fintech"],"slogan": null,"scrapedAt": "2026-01-01T00:00:00.000Z","_status": null,"_message": null}
How it works
This Actor uses a managed Google search restricted to linkedin.com/company and combines your keyword, industry, and location inputs into one search query. It routes the Google domain and language with the country input. It returns unique public company pages, and when enrich is enabled, it fetches additional public company fields via ScrapeCreators from the LinkedIn company page. Results are stored in the default dataset, and the run summary is stored in the default key-value store.
The implementation is cookieless and uses public sources. The overview dataset view presents company rows with companyName, industry, headquarters, employeeCount, website, linkedinUrl, source, enriched, and scrapedAt.
Pricing
This Actor uses Pay per event plus Apify platform usage. Open the live Pricing tab in the Apify console to review the current event pricing and any platform usage charges that apply to your run.
Charged events include:
- Actor start
- Company found
- Company enriched
For example, a run that returns twenty-five companies with enrichment turned off includes one actor start event and twenty-five company-found events. If enrichment is enabled for those same twenty-five companies, the run also includes twenty-five company-enriched events.
Use with AI agents (MCP)
This Actor is available through Apify MCP as a tool for public LinkedIn company search and optional company enrichment.
Exact Actor identity: khadinakbar/linkedin-company-search-scraper
Tool description: search public LinkedIn company pages from keyword, industry, and location inputs, then return one structured record per matched company. The output includes discovery fields such as company name, LinkedIn URL, rank, and snippet, plus optional enriched company fields when enabled.
Find public LinkedIn companies for "renewable energy" in Austin, return up to 15 results, and include enrichment so I can review headquarters, website, and employee count before I choose which companies to pass to the next step.
Output interpretation:
- Use
companyName,linkedinUrl,rank, andsnippetto review the search match. - Use
enriched,industry,employeeCount,companySize,website, andheadquartersfor company-level context. - Use
scrapedAtto understand when the public company data was collected.
Provenance and scope:
- Search results come from public LinkedIn company pages surfaced through Google.
- Enriched fields come from the public company page when enrichment is enabled.
- The Actor focuses on companies, not people profiles.
Pagination and cost guidance:
- Set
maxResultsto match the number of companies you want returned. - Lower values keep discovery runs compact.
- Enrichment adds one charged event per company when enabled.
API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const input = {keywords: 'fintech payments',industry: 'Software Development',location: 'Berlin',country: 'de',maxResults: 10,enrich: true,};const run = await client.actor('khadinakbar/linkedin-company-search-scraper').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log('Dataset items:');console.log(items);
Best results and outcome guidance
Use focused search terms that describe the company segment you want to find. Combine a short keyword phrase with a specific industry or location when you already know the market segment. Set country to the ISO alpha-2 code for the market you want searched. Keep maxResults aligned with the number of companies you want to review, and enable enrich when the workflow needs company-level firmographics such as employee count, website, and headquarters.
Design note
I found that the output contract includes both companies and summary references, while the dataset records themselves carry fields like query, companyName, linkedinUrl, and scrapedAt. That made it clear the README should separate dataset records from the run summary.
FAQ
Is this Actor for companies or people?
This Actor is for public LinkedIn company pages. For people-focused workflows, use a profile scraper.
What should I enter as input?
Use keywords, industry, and location to describe the company set you want to find. Use country to route the search market, maxResults to cap how many companies you want back, and enrich when you want deeper company fields.
What comes back if I only want discovery results?
You still receive one record per matched company with discovery fields such as companyName, linkedinUrl, rank, snippet, and source. Enriched company fields are populated when enrich is enabled.
How do I connect this to another Actor?
Use the returned public company URLs as the handoff into a downstream workflow. The verified related actor in this README is a natural next step when your process accepts a public LinkedIn URL or ID and needs more profile-level context.
Where do I check usage and charges?
Open the live Pricing tab in the Apify console for the current Pay per event and platform usage details.
Responsible use
Use this Actor only for public company information. Review your use case against applicable laws, platform terms, and internal data-handling policies before storing or sharing the results.