LinkedIn Company Scraper with Firmographics & Funding Data avatar

LinkedIn Company Scraper with Firmographics & Funding Data

Pricing

$19.99/month + usage

Go to Apify Store
LinkedIn Company Scraper with Firmographics & Funding Data

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

ScraperForge

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

1

Monthly active users

2 hours ago

Last modified

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?

GroupFields
๐Ÿข Identityname, slogan, description, companyId, inputUrl
๐Ÿญ Firmographicsindustry, size, employeeCount, type, founded, specialties[]
๐Ÿ“ฃ AudiencefollowerCount
๐Ÿ“ Locationheadquarters, headquartersStreetAddress, location.city, location.state, location.country
๐ŸŒ Webwebsite, logo, coverImage
๐Ÿ’ฐ FundinghasFundingData, fundingTotalRounds, fundingLastRoundType, fundingLastRoundDate, fundingLastRoundAmount, fundingCrunchbaseUrl
๐Ÿ“Š Derived metricsemployeeToFollowerRatio, companyAgeYears, fundingRecencyDays
๐Ÿ”— RelatedsimilarPages[], employees[], posts[]
โœ… Run statussuccess, 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

  1. Collect the public LinkedIn company URLs you care about (https://www.linkedin.com/company/netflix/).
  2. Paste them into Company URLs, one per line.
  3. (Optional) Set firmographic filters โ€” employee range, follower minimum, industry include/exclude, funding-only.
  4. (Optional) Tune concurrency, retries and timeout for large batches.
  5. 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

FieldTypeDefaultDescription
urlsarrayโ€” (required)Public LinkedIn company page URLs, one per line. Each is fetched independently and written to the dataset as soon as it succeeds.
proxyobjectโ€”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.
maxRetriesinteger3Attempts per URL, with exponential backoff and residential fallback between attempts.
requestTimeoutSecinteger30How long to wait for a page before treating the attempt as failed.
concurrencyinteger3Company URLs fetched in parallel. Capped at 20.

Input reference โ€” firmographic filters

FieldTypeDescription
minEmployeeCountintegerDrop companies with fewer employees than this.
maxEmployeeCountintegerDrop companies with more employees than this.
minFollowerCountintegerKeep only companies with at least this many LinkedIn followers.
industryIncludearrayCase-insensitive substring keywords โ€” keep companies whose industry contains at least one.
industryExcludearrayDrop companies whose industry contains any of these keywords.
onlyWithFundingbooleanKeep 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, success is false and error explains 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 ApifyClient
client = 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"]:
continue
print(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. hasFundingData is true only when a real funding block was found on the page. Many companies have none, and onlyWithFunding is how you drop them.
  • employees and posts are 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: false rows climb, lower it and raise maxRetries.
  • 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. companyAgeYears needs a founding year, fundingRecencyDays needs a funding date; they are null when the source field is missing.
  • Default run options are 4 GB memory and a 1-hour timeout; raise the timeout for very large batches.

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

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.


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.