LinkedIn Company Scraper with Firmographics & Funding Data
Pricing
$19.99/month + usage
LinkedIn Company Scraper with Firmographics & Funding Data
๐ข LinkedIn Company Scraper with Firmographics & Funding Data extracts rich company data from LinkedIn profiles โ website, industry, size, HQ, locations, founding year, specialties, followers & description. Export to CSV/JSON & API.
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
ScraperForge
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share
LinkedIn Company Scraper with Firmographics & Funding Data
Turn LinkedIn company URLs into a firmographic database: name, description, industry, size band, employee count, follower count, founding year, headquarters with street address, company type, specialties, logo and cover image โ plus funding data (total rounds, last round type, date, amount and Crunchbase link) when LinkedIn publishes it.
Then filter at source by employee count, follower count, industry keywords and funding presence โ so the dataset that lands is already your ICP.
What is LinkedIn Company Scraper with Firmographics & Funding Data?
Most company scrapers give you the About box. This one adds the two things that actually drive B2B qualification: funding signals and firmographic filters applied during the run.
Paste public LinkedIn company URLs and each is fetched in parallel, parsed into a flat row, and written to the dataset the moment it succeeds. Filters run before the row is kept, so you are not exporting 5,000 companies to keep 200.
It also computes three derived metrics that are genuinely useful and tedious to calculate by hand: employee-to-follower ratio, company age in years, and how recently the last funding round closed.
No login and no cookie โ it reads the public company page.
What data can you extract?
| Group | Fields |
|---|---|
| ๐ข Identity | name, slogan, description, companyId, inputUrl |
| ๐ญ Firmographics | industry, size, employeeCount, type, founded, specialties[] |
| ๐ฃ Audience | followerCount |
| ๐ Location | headquarters, headquartersStreetAddress, location.city, location.state, location.country |
| ๐ Web | website, logo, coverImage |
| ๐ฐ Funding | hasFundingData, fundingTotalRounds, fundingLastRoundType, fundingLastRoundDate, fundingLastRoundAmount, fundingCrunchbaseUrl |
| ๐ Derived metrics | employeeToFollowerRatio, companyAgeYears, fundingRecencyDays |
| ๐ Related | similarPages[], employees[], posts[] |
| โ Run status | success, error |
Why teams scrape LinkedIn company data
For B2B sales and ICP building
Size band, employee count, industry and headquarters are the four fields most qualification rules are built on. Because the filters apply during the run, you can express your ICP as input and receive only matching accounts.
For funding-triggered outreach
A company that just closed a round has budget and urgency. fundingLastRoundType, fundingLastRoundDate and the derived fundingRecencyDays let you sort a list by exactly that signal โ and onlyWithFunding drops companies with no public funding section entirely.
For investors and M&A research
Founding year, headcount, funding history and specialties across a sector give you a screening dataset without a paid database subscription.
For CRM hygiene
Account records decay fast. Re-running a list of company URLs refreshes headcount, website, HQ and industry in one pass, with success and error telling you exactly which records were updated.
For competitive and market research
similarPages is LinkedIn's own view of who competes with whom โ feed those URLs back in for a second pass and your market map expands itself.
For marketing and demand gen
employeeToFollowerRatio is a quick proxy for how much marketing investment a company puts into LinkedIn relative to its size, which is a useful signal when deciding where to compete for attention.
How to scrape LinkedIn companies step by step
- Collect the public LinkedIn company URLs you care about (
https://www.linkedin.com/company/netflix/). - Paste them into Company URLs, one per line.
- (Optional) Set firmographic filters โ employee range, follower minimum, industry include/exclude, funding-only.
- (Optional) Tune concurrency, retries and timeout for large batches.
- Click Start, then export the Output tab as CSV, Excel or JSON.
โฌ๏ธ Input
Example input
{"urls": ["https://www.linkedin.com/company/netflix/","https://www.linkedin.com/company/stripe/","https://www.linkedin.com/company/figma/"],"concurrency": 5,"minEmployeeCount": 50,"maxEmployeeCount": 5000,"industryInclude": ["software", "technology"],"onlyWithFunding": true}
Input reference โ targets and reliability
| Field | Type | Default | Description |
|---|---|---|---|
urls | array | โ (required) | Public LinkedIn company page URLs, one per line. Each is fetched independently and written to the dataset as soon as it succeeds. |
proxy | object | โ | Starting proxy: datacenter, residential or none. On a block (403, 407, 429, 999 or an authwall redirect) the Actor pivots to Apify Residential and stays there for the rest of the run. |
maxRetries | integer | 3 | Attempts per URL, with exponential backoff and residential fallback between attempts. |
requestTimeoutSec | integer | 30 | How long to wait for a page before treating the attempt as failed. |
concurrency | integer | 3 | Company URLs fetched in parallel. Capped at 20. |
Input reference โ firmographic filters
| Field | Type | Description |
|---|---|---|
minEmployeeCount | integer | Drop companies with fewer employees than this. |
maxEmployeeCount | integer | Drop companies with more employees than this. |
minFollowerCount | integer | Keep only companies with at least this many LinkedIn followers. |
industryInclude | array | Case-insensitive substring keywords โ keep companies whose industry contains at least one. |
industryExclude | array | Drop companies whose industry contains any of these keywords. |
onlyWithFunding | boolean | Keep a row only when a genuine funding block was found on the page (hasFundingData: true). Companies with no public funding section are dropped โ never fabricated. |
Filters are applied during the run, so filtered-out companies do not reach your dataset at all. That keeps exports clean and focused.
โฌ๏ธ Output
Example output
{"inputUrl": "https://www.linkedin.com/company/stripe/","success": true,"error": "","name": "Stripe","slogan": "Financial infrastructure for the internet","description": "Stripe is a technology company that builds economic infrastructure for the internetโฆ","industry": "Financial Services","size": "5,001-10,000 employees","employeeCount": 8420,"followerCount": 1284000,"type": "Privately Held","founded": "2010","headquarters": "South San Francisco, California","headquartersStreetAddress": "354 Oyster Point Blvd","location": { "city": "South San Francisco", "state": "California", "country": "US" },"website": "https://stripe.com","logo": "https://media.licdn.com/dms/image/โฆ","coverImage": "https://media.licdn.com/dms/image/โฆ","companyId": "1151877","specialties": ["Payments", "Billing", "Fraud prevention"],"hasFundingData": true,"fundingTotalRounds": 21,"fundingLastRoundType": "Series I","fundingLastRoundDate": "2026-02-27","fundingLastRoundAmount": "$694,000,000","fundingCrunchbaseUrl": "https://www.crunchbase.com/organization/stripe","employeeToFollowerRatio": 0.0066,"companyAgeYears": 16,"fundingRecencyDays": 164,"similarPages": [{ "name": "Adyen", "link": "https://www.linkedin.com/company/adyen" }]}
Illustrative values โ a live run returns current LinkedIn data.
Every URL produces a row. When a page cannot be read,
successisfalseanderrorexplains why โ so a batch of 1,000 URLs always reconciles to 1,000 outcomes.
Usage recipes
Build an ICP-filtered account list
{"urls": ["โฆ500 company URLsโฆ"],"minEmployeeCount": 50,"maxEmployeeCount": 1000,"industryInclude": ["software", "saas", "information technology"],"industryExclude": ["staffing", "consulting"],"concurrency": 8}
Funding-triggered prospecting
{"urls": ["โฆcompany URLsโฆ"],"onlyWithFunding": true,"minEmployeeCount": 20}
Then sort the export by fundingRecencyDays ascending โ the smallest numbers are the freshest rounds.
Refresh a stale CRM
{"urls": ["โฆyour existing account URLsโฆ"],"concurrency": 5,"maxRetries": 4,"requestTimeoutSec": 45}
Map employeeCount, website, industry and headquarters back onto your records, and use success to know which ones actually updated.
Expand your market map
Run your known competitors, collect every similarPages[].link, and feed those URLs into a second run. LinkedIn's own similarity graph does the discovery for you.
Find LinkedIn-invested companies
Sort by employeeToFollowerRatio โ a low ratio (many followers per employee) usually indicates a company that markets heavily on LinkedIn.
How does this compare to LinkedIn's official API?
LinkedIn's Marketing Developer Platform can return organisation data, but only for pages your application has been authorised to manage, behind a partner application and review process. There is no public endpoint that returns firmographics for arbitrary companies, and none that returns funding data at all โ funding appears on the public page but not in the API surface available to most developers.
This Actor reads the public company page, which is why it needs no credentials and works on any company. If you administer the pages you care about and qualify for the partner programme, the official API is the more durable route.
Integrate and automate
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_API_TOKEN>")run = client.actor("scraperforge/linkedin-company-scraper-actor").call(run_input={"urls": ["https://www.linkedin.com/company/stripe/"],"onlyWithFunding": True,"concurrency": 5,})for c in client.dataset(run["defaultDatasetId"]).iterate_items():if not c["success"]:continueprint(c["name"], "|", c["employeeCount"], "employees |",c.get("fundingLastRoundType"), c.get("fundingLastRoundAmount"),"|", c.get("fundingRecencyDays"), "days ago")
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_API_TOKEN>' });const run = await client.actor('scraperforge/linkedin-company-scraper-actor').call({urls: ['https://www.linkedin.com/company/stripe/'],concurrency: 5,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
REST API
curl -X POST "https://api.apify.com/v2/acts/scraperforge~linkedin-company-scraper-actor/runs?token=<YOUR_APIFY_API_TOKEN>" \-H "Content-Type: application/json" \-d '{"urls":["https://www.linkedin.com/company/stripe/"],"concurrency":5}'
n8n, Make, Zapier and AI agents
Call the Actor from n8n, Make, Zapier or an MCP-capable agent to enrich accounts automatically as they enter your CRM.
Schedules and webhooks
Attach a Schedule to re-enrich your account list monthly, and use webhooks or the Google Sheets / Airtable / Slack integrations to route updates into your sales stack.
Pricing
This Actor is offered on a monthly rental basis rather than per result โ the current price is shown on the Pricing tab of the Actor page, and Apify displays the applicable cost before you run it. Free Apify accounts include monthly platform credit that is enough to trial it.
If the run pivots to Apify Residential proxies, that traffic is billed separately by the platform.
Limits, reliability and blocking
- Public page data only. Anything LinkedIn keeps behind a login โ full employee lists, analytics, admin data โ is not available here.
- Funding data is never fabricated.
hasFundingDataistrueonly when a real funding block was found on the page. Many companies have none, andonlyWithFundingis how you drop them. employeesandpostsare samples, not complete lists. For full employee data, use the dedicated employees Actor.- Concurrency trades speed against blocking. 5โ8 is a reasonable range for a few hundred URLs; if
success: falserows climb, lower it and raisemaxRetries. - Proxy escalation is one-way. Once the Actor pivots to residential after a block, it stays there for the run.
- Not every field is published โ founding year, specialties and street address are frequently absent, and come back empty rather than guessed.
- Derived metrics depend on their inputs.
companyAgeYearsneeds a founding year,fundingRecencyDaysneeds a funding date; they arenullwhen the source field is missing. - Default run options are 4 GB memory and a 1-hour timeout; raise the timeout for very large batches.
Is it legal to scrape LinkedIn company pages?
This Actor reads publicly visible company page content โ the same information any logged-out visitor can see. It does not log in, use credentials, or access private data.
Company firmographics are largely business information rather than personal data, but the employees sample contains names and photographs of real people, which is personal data under GDPR, the UK GDPR, CCPA/CPRA and comparable laws. Process that lawfully, store only what you need, and honour objection and deletion requests. LinkedIn's User Agreement restricts automated access โ you are responsible for ensuring your use complies with it and with applicable law.
โ Frequently asked questions
Do I need a LinkedIn account or li_at cookie?
No. This Actor reads the public company page, so no credentials are involved.
Where does the funding data come from?
The public funding section LinkedIn displays on company pages, which links through to Crunchbase. If that section is absent, hasFundingData is false โ nothing is estimated or inferred.
How do I get only recently funded companies?
Set onlyWithFunding: true, then sort the export by fundingRecencyDays ascending.
Do the filters save me money?
They keep your dataset clean and focused by dropping non-matching companies during the run, so you export only what fits your ICP.
What is employeeToFollowerRatio for?
It compares headcount against LinkedIn audience. A low ratio suggests a company investing heavily in LinkedIn presence relative to its size โ useful when prioritising social-led outreach.
Can I get the full employee list?
No โ employees is a sample. Use the LinkedIn Company Employees Scraper for complete lists.
Why is success false on some rows?
LinkedIn blocked or timed out that request. Lower concurrency, raise maxRetries and requestTimeoutSec, or preset a residential proxy, then re-run just those URLs.
Can I discover new companies with this?
Indirectly and effectively: collect similarPages[].link from a first run and feed them into a second.
Which export format should I use?
CSV or Excel for ICP filtering (Apify flattens location), JSON when you want specialties, similarPages, employees and posts intact.
๐ Related scrapers
- LinkedIn Company Employees Scraper โ full employee lists for the accounts you qualify here.
- LinkedIn Company Associated Members Scraper โ aggregated people facets and affiliated pages.
- LinkedIn Companies Suggestions Scraper โ expand your target list with similar companies.
- Leads Scraper โ verified contact details, filterable by funding round and firmographics.
Browse the full collection on the ScraperForge profile.
๐ฌ Feedback
Need extra firmographic fields, deeper funding history, or a custom enrichment pipeline? Open an issue on the Issues tab of this Actor.