LinkedIn Company Page Mapper MCP Server
Resolve a company domain or LinkedIn handle to its LinkedIn company page — verified against the company's own site — and return the page URL, name and tagline, plus a follower count when public search results show one. Read-only, no request is sent to LinkedIn, requires an APIFY_TOKEN and consumes Apify credits.
Look up by
company_domain(full discovery) or byhandle(skips discovery, returned as given);company_nameacts as an identity gate to reduce wrong matches.Get the verified LinkedIn page URL, page name and tagline; unverifiable pages are not returned.
Optionally set
includeFollowerCounts(default true) to read the search engine's copy of the follower count, page name and description; false returns the URL only (cheaper).Run several companies in one call (e.g. notion.com, figma.com, gitlab.com) to map presence across a list.
Tune
minConfidenceScore(default 70) to reject weaker matches, andskipCacheto force a fresh lookup instead of the 7-day cache.Read each row's
_status(ok,not_found,not_extractable,blocked,skipped) andlinkedin_verificationto see what was seen and why a page was rejected;falsemeans looked-and-no,nullmeans could-not-look.Long runs are polled up to 1,800s; if still running, you get the run id and a console link instead of a timeout.
Caveat: the supplied schema is stale — it still advertises exact follower counts, firmographics (industry, size band, HQ, founded year, specialties, website), the
includeFirmographicsinput andidentity_mismatch, all removed in actor versions 1.2.0/1.2.1.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@LinkedIn Company Page Mapper MCP ServerGet the LinkedIn page details for stripe.com, including followers and industry."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
LinkedIn Company Page Mapper MCP Server
MCP server for the Mamba Labs LinkedIn Company Page Mapper actor on Apify.
Free. Resolve a company domain to its LinkedIn page, verified against the company's own site, with its name and tagline, and a follower count on some companies. No firmographics. No request is sent to LinkedIn.
What it does
Free to run apart from Apify's start fee. Resolve a company domain to its LinkedIn company page, verified against the company's own site, and return the page name and tagline, plus a follower count when public search results show one (2 of 6 test domains on 2026-10-12). No request is sent to LinkedIn: the page comes from the company homepage (structured data or a link) or from a search result whose name matches the name the company site declares or the company_name you pass. A page that cannot be verified is not returned; the row says why in linkedin_verification. The follower count is the search engine's copy and can lag the live page. Industry, size band, headquarters, founded year, specialties and website are no longer returned. Read only; requires an APIFY_TOKEN and consumes Apify credits per call.
What changed in 1.2.1
The actor is free: its three paid events were removed on 2026-10-12. The text now states the measured rates: a verified page on most companies, a follower count on some, no firmographics.
What changed in 1.2.0
The actor stopped fetching linkedin.com on 2026-10-12. These fields came only from the LinkedIn page and are gone: linkedin_followers_exact, linkedin_industry, linkedin_company_size, linkedin_headquarters, linkedin_founded_year, linkedin_specialties, linkedin_website. The includeFirmographics input is gone; minConfidenceScore is new. New output fields: linkedin_confidence_score, linkedin_verification.
Related MCP server: Company Firmographic Enricher MCP Server
Quick start
Add this to your MCP client configuration:
{
"mcpServers": {
"mamba-linkedin-company-presence-mapper": {
"command": "npx",
"args": ["-y", "@mambalabsdev/mcp-linkedin-company-presence-mapper"],
"env": { "APIFY_TOKEN": "your-apify-token" }
}
}
}Prerequisites
Node.js 18 or newer
An Apify API token from console.apify.com/account/integrations
The actor is free. Since 2026-10-12 it declares no paid event, so the only charge is Apify's platform start event, apify-actor-start, at $0.00005 per GB of run memory. This server starts the run at 512 MB, the actor's own default, so a run costs $0.00005 whatever the number of companies. The actor page carries the current pricing.
What it returns, measured 2026-10-12 on 6 domains: a verified page URL, name and tagline on 5, a follower count on 2, firmographics on none.
Example prompts
"What is the LinkedIn company page for gitlab.com, and what does its tagline say?"
"Find the LinkedIn company page for stripe.com and tell me how it was verified."
"Find the LinkedIn pages for notion.com, figma.com and gitlab.com, with follower counts where they are available."
Tool and inputs
Tool: map_linkedin_company_presence
Input | Type | Meaning |
| string | Bare company domain, for example shopify.com. Supply this or a handle. |
| string | Optional. A page whose name is identical to it verifies (score 80). |
| string | Optional. The company slug from linkedin.com/company/. Skips discovery; returned as given. |
| boolean | Default true. Reads the follower count, page name and description from the search result. False returns the URL only. |
| boolean | Default false. True forces a fresh lookup. |
| integer | Default 70. A page scoring under it is not returned. |
Reading the output
Every row carries a per platform _status field, and it is the field to read
first. The vocabulary is the same across the whole Mamba Labs social family:
Status | Meaning |
| fetched and parsed, the value is there |
| no page verified; |
| the page is verified and the search result carries no follower count |
| the search engine refused the request, worth retrying later |
| you did not ask for this platform |
false and null are never interchangeable. false means we looked and the
answer is no. null means we could not look. If you filter for companies with no
presence, filter on false, because null rows are unknown rather than absent.
How each call runs
Each call starts the actor run, polls it until it finishes, then reads the dataset. The run is allowed 1,800 seconds at 512 MB. If the run is still going when this call stops waiting, the call returns the run id and a console link instead of a timeout, so the result is never lost.
Full actor documentation
apify.com/mambalabs/linkedin-company-presence-mapper
Mamba Labs GTM Suite
Mamba Labs builds a fleet of GTM enrichment actors that share one flat, Clay
ready output convention, so their rows join on company_domain with no cleaning
step. Full fleet: apify.com/mambalabs
License
MIT
Available Tools
1 toolmap_linkedin_company_presenceMap LinkedIn Company Page PresenceAIdempotent
Free to run apart from Apify's start fee. Resolve a company domain to its LinkedIn company page, verified against the company's own site, and return the page name and tagline, plus a follower count when public search results show one (2 of 6 test domains on 2026-10-12). No request is sent to LinkedIn: the page comes from the company homepage (structured data or a link) or from a search result whose name matches the name the company site declares or the company_name you pass. A page that cannot be verified is not returned; the row says why in linkedin_verification. The follower count is the search engine's copy and can lag the live page. Industry, size band, headquarters, founded year, specialties and website are no longer returned. Read only; requires an APIFY_TOKEN and consumes Apify credits per call.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | No | Optional. The company slug from linkedin.com/company/<slug>, for example shopify. Supplying it skips discovery; the page is returned as given. | |
| skipCache | No | When "false" (default) a successful lookup is cached for seven days and reused. Set "true" to force a fresh lookup. | |
| company_name | No | Optional. A LinkedIn page whose name is identical to this name verifies (score 80), so supplying it raises the share of companies that get a URL. | |
| company_domain | No | Bare company domain, for example shopify.com. Supply this or a handle. With a domain the actor reads the company homepage and searches for its LinkedIn page; with a handle it skips discovery. | |
| minConfidenceScore | No | A page is returned only when its match score is at least this, 0 to 100. Default 70. Homepage sameAs 95, homepage link 92, name identical to the site's declared name 85 or to company_name 80, slug and name matching the domain 75. | |
| includeFollowerCounts | No | When "true" (default) the follower count, page name and description are read from the search result for the page. Set "false" to return the URL only. No request is sent to LinkedIn either way. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Substantial disclosure beyond the annotations: it names the required APIFY_TOKEN, the per-call credit cost, the no-request-to-LinkedIn behavior, the 7-day cache, the ~2-of-6 observed yield, the staleness of follower counts, and the fields that were removed. One tension worth noting: the text claims 'Read only' while readOnlyHint=false; the credit-consuming side effect the description itself admits plausibly explains the annotation (readOnlyHint false is also the MCP default), and destructiveHint=false supports the data-safety claim, so this reads as loose wording rather than a serious contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Cost and purpose are front-loaded, then mechanics, then caveats, with almost no filler. It is dense and sentence-heavy (seven sentences, several long), and the removed-fields sentence could sit later, but every sentence carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must carry the return contract and it does: page name, tagline, follower count when available, and the verification failure explanation. Auth requirements, cost, caching, and reliability limits are all present, leaving nothing an agent needs before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the baseline is 3, but the description adds real meaning the schema does not: it explains that the page must be 'verified against the company's own site,' that failure rows carry a reason in linkedin_verification, and that company_name materially raises resolution odds. It does not restate the minConfidenceScore thresholds, which the schema already covers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource+outcome: 'Resolve a company domain to its LinkedIn company page, verified against the company's own site, and return the page name and tagline.' It also names the exact inputs (domain, handle, company_name) and the verification gate, so an agent knows exactly what this tool produces and when it will produce nothing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear operating conditions: supply a domain to trigger homepage discovery or a handle to skip it, and supply company_name to raise the share of companies that resolve (score 80). It also explains that unverifiable pages are withheld with a reason in linkedin_verification. It does not state explicit when-not-to-use exclusions, but with no sibling tools there is no alternative to route against.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v1.2.1- Changed
map_linkedin_company_presence8 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Input schema / properties / company_domain / descriptionPrevious value: -"Bare company domain, for example shopify.com. Supply this or a handle. With a domain the actor runs full discovery; with a handle it skips straight to the fetch."New value: +"Bare company domain, for example shopify.com. Supply this or a handle. With a domain the actor reads the company homepage and searches for its LinkedIn page; with a handle it skips discovery." - changed
Input schema / properties / company_name / descriptionPrevious value: -"Optional. Improves search accuracy and is what the identity gate checks a discovered profile against, so supplying it reduces wrong matches."New value: +"Optional. A LinkedIn page whose name is identical to this name verifies (score 80), so supplying it raises the share of companies that get a URL." - changed
Input schema / properties / handle / descriptionPrevious value: -"Optional. The company slug from linkedin.com/company/<slug>, for example shopify. Supplying it skips discovery and goes straight to the fetch."New value: +"Optional. The company slug from linkedin.com/company/<slug>, for example shopify. Supplying it skips discovery; the page is returned as given." - removed
Input schema / properties / includeFirmographicsRemoved value: -{ - "description": "When \"true\" (default) industry, company size band, headquarters, founded year and website are parsed off the page alongside the follower count. Set \"false\" for the URL and follower count only. Sent as a string for Clay compatibility.", - "type": "boolean" -} - changed
Input schema / properties / includeFollowerCounts / descriptionPrevious value: -"When \"true\" (default) the profile page is fetched and the counts are extracted. Set \"false\" to resolve the profile URL only, which is cheaper and needs no proxy. Sent as a string for Clay compatibility."New value: +"When \"true\" (default) the follower count, page name and description are read from the search result for the page. Set \"false\" to return the URL only. No request is sent to LinkedIn either way." - added
Input schema / properties / minConfidenceScoreAdded value: +{ + "description": "A page is returned only when its match score is at least this, 0 to 100. Default 70. Homepage sameAs 95, homepage link 92, name identical to the site's declared name 85 or to company_name 80, slug and name matching the domain 75.", + "maximum": 100, + "minimum": 0, + "type": "integer" +} - changed
Input schema / properties / skipCache / descriptionPrevious value: -"When \"false\" (default) a successful lookup is cached for seven days and reused. Set \"true\" to force a fresh fetch. Sent as a string for Clay compatibility."New value: +"When \"false\" (default) a successful lookup is cached for seven days and reused. Set \"true\" to force a fresh lookup."
1 tool update
v1.0.0- First observed
map_linkedin_company_presence
TDQS
Scored across 1 tool
Only one tool exists, so there is no risk of selecting between overlapping operations. Its purpose—domain-to-LinkedIn-page mapping—is unmistakable.
The single tool name uses snake_case with a clear verb_noun structure: map_linkedin_company_presence. With only one tool, consistency is trivially satisfied.
A single focused tool is reasonable for this narrow read-only mapping service, but it sits below the typical 3-15 range and offers no batch or alternative operations. Not a mismatch, just slightly thin.
The tool covers the core domain-to-page resolution workflow, including verification and limited follower count. Batch mapping or reverse lookup would round out the surface, but no critical lifecycle operation is missing for a read-only mapper.
Maintenance
Related MCP Connectors
LinkedIn company size, industry, website, HQ, followers, posts from links, domains or names.
LinkedIn companies, hiring signals and public profiles by URL. No login, no cookies. Pay per result.
Enrich any domain into a full company profile with firmographics and buying signals.
Firmfold: company enrichment by domain/email/name: logo, tech, contacts, jobs, firmographics.
Related MCP Servers
- AlicenseAqualityAmaintenanceResolves a company domain to its LinkedIn company page URL. Lightweight enrichment tool for sales and prospecting workflows.1418 npm2MIT
- AlicenseAqualityAmaintenanceEnables enriching company domains into structured firmographics including employee band, industry, HQ, founded year, revenue estimate, logo, and description, with source provenance and data completeness scoring.177 npm1MIT
- AlicenseAqualityAmaintenanceMaps a company domain to its official social media URLs and follower counts across LinkedIn, X, Instagram, Facebook, and YouTube.1235 npmMIT
- AlicenseAqualityAmaintenanceResolves any combination of company name, domain, or LinkedIn URL into the canonical company identity (name, domain, LinkedIn URL) with confidence scores and match method.1123 npmMIT