Domain to LinkedIn URL Resolver avatar

Domain to LinkedIn URL Resolver

Pricing

from $5.10 / 1,000 results

Go to Apify Store
Domain to LinkedIn URL Resolver

Domain to LinkedIn URL Resolver

Resolves a company domain, or a batch list of domains in one run, to its LinkedIn company URL, one row per domain. A URL is returned only when verified against the company's own site, the input name, or the domain; otherwise the row says why. Flat, Clay-ready, MCP-ready.

Pricing

from $5.10 / 1,000 results

Rating

4.9

(2)

Developer

Mamba Labs

Mamba Labs

Maintained by Community

Actor stats

8

Bookmarked

387

Total users

41

Monthly active users

0.74 hours

Issues response

6 days ago

Last modified

Share

๐Ÿ”— What can Domain to LinkedIn URL Resolver do?

Give it a company domain or name, or a list of domains in one run, and it returns each company's LinkedIn company URL, with social URLs and optional firmographics in the same flat row.

It returns a LinkedIn URL only when it can verify the page belongs to the company: the company's own homepage links it, or the page's name is identical to the name the company site declares, or to the name you provide. When nothing verifies a page, the row returns no URL and says why, rather than a guess. It never requests a page on LinkedIn itself. Every row carries confidence, confidence_score, and verification so you know how much to trust it.

๐Ÿ“ฆ What you getโš™๏ธ Features and integrations
๐Ÿ”— LinkedIn company URL and slug, verified before it is returned
๐Ÿ’ฏ confidence, confidence_score, and verification on every row
๐ŸŒ Facebook, Instagram, X and YouTube URLs
๐Ÿงพ 24 flat fields, snake_case, one row per company
๐Ÿ“š Batch mode, a list of domains in one run, one row each
๐Ÿ  The company's own homepage read first for its LinkedIn link
๐ŸŽš๏ธ minConfidenceScore, a floor you set, below which no URL is returned
๐Ÿงฌ Firmographics from search snippets, optional
โฌ‡๏ธ Export to JSON, CSV, Excel, HTML or XML

Bought by Clay users and RevOps teams whose LinkedIn URL column has gaps, and by anyone who needs a LinkedIn anchor before a social or ABM workflow.

๐Ÿšซ Every field is best-effort and nullable. When a source is blocked, rate-limited, or simply does not carry the data for a company, the field returns null rather than a guess. Breakage shows up as null, never as a wrong value. Gate downstream logic on presence, not on assuming every row is complete.

๐Ÿ’ก Why use Domain to LinkedIn URL Resolver?

If you wantRead these fields
The LinkedIn pagelinkedin_company_url, linkedin_slug
To know whether to trust itconfidence, confidence_score, verification, resolution_method
To know whether a miss is realdegraded, degradation_reason
Other social profilesfacebook_url, instagram_url, twitter_url, youtube_url
Company size and sectoremployee_count_approx, industry, hq_location
Audience and copyfollower_count, company_description

๐Ÿ’ฏ confidence and resolution_method, and how to use them

resolution_method tells you how the URL was found:

ValueMeans
homepage_linkThe company's own homepage links the page, in its structured data (sameAs) or a plain link. The most reliable answer.
pattern_matchA verified search result whose slug is one the domain implies.
google_searchA verified search result whose slug is not one the domain implies. The value stays google_search for Clay column compatibility; the engines are Brave and Bing.
not_foundNo page verified. verification names the best candidate and why it was not returned. Read degraded before you treat it as an answer.
errorNo valid input was provided, or the lookup failed for this row.

confidence_score (0 to 100) comes from the evidence that the page belongs to this company, not from how the page was found:

ScoreEvidence
95The homepage declares the page in its structured data (sameAs)
92The homepage links the page
85The page's name is identical to the name the company site declares
80The page's name is identical to the company name you provided
75The slug is one the domain implies and the page's name is identical to the domain name, and the domain exists
55 or lessNot verified. No URL is returned.

"Identical" means equal after lowercasing and removing punctuation and legal words such as Inc, Ltd, and Group. "City of Cambridge" is not "Cambridge", so cambridge.org does not return the city's page.

confidence is the same score in words: high at 85 and up, medium from 70 to 84, low below.

minConfidenceScore (default 70) is the floor. A page scoring under it is not returned. Raise it for fewer, surer answers; lower it for more answers and more wrong ones.

Pass high rows straight to enrichment. Review medium. Treat not_found as "not verified", and read verification to see what was found and why it was held back.

๐Ÿšฉ slug_mismatch is a quality flag, not an error

It is true when the resolved slug differs from the one derived from the domain. brex.com derives the stem brex, but the live page is /company/brexhq, so slug_mismatch is true.

That is the resolver landing on a non-obvious slug and telling you so. Useful when spot-checking a batch.

๐Ÿงฏ What a blocked row and a summary row mean

A not_found row with degraded: false is an answer: the search engines replied and none of them carried a LinkedIn company page for this company.

A not_found row with degraded: true is not an answer. Its degradation_reason starts with blocked: when every search engine refused the request, or timed_out: when the run ran out of time before one replied. It says "This is not a confirmed absence." Rerun those rows.

A run that writes no company row at all, for example because the run budget ran out before the first row, writes one summary row instead and still finishes successfully. It has no company_domain, degraded: true, and a degradation_reason that starts with run_outcome= (no_results, blocked, or timed_out), then names the search engines reached and blocked, the run ID, and the build. It is never a company.

When the run's time is nearly spent, the actor stops starting new rows, keeps every row it already wrote, and says how many rows it did not start in the run's status message.

โ–ถ๏ธ Ready-to-run examples

ExampleWhat it does
Find a LinkedIn Company URL from a DomainThe core job
Get a LinkedIn URL from a Company NameName-only input
Domain to LinkedIn with FirmographicsURL plus company data
Company Domain to Social Media URLsAll four social platforms
Force a Fresh Re-resolutionBypass the cache
Resolve a Batch of Domains to LinkedIn URLsMany domains, one run, one row each

๐Ÿ“‹ What data can Domain to LinkedIn URL Resolver extract?

19 fields per company, plus the five bookkeeping fields described under Output.

FieldWhat it holds
linkedin_company_url, linkedin_slugThe resolved page
resolution_method, confidence, slug_mismatchHow it was found and how much to trust it
facebook_url, instagram_url, twitter_url, youtube_urlOther social profiles
employee_count_approx, industry, hq_locationFirmographics, when includeFirmographics is on
follower_countLinkedIn audience size, as the search snippet states it
company_name, company_descriptionIdentity and copy
company_domain, run_dateInput echo and bookkeeping

โš ๏ธ Firmographics come from search result snippets about the LinkedIn page, not from the page. follower_count and company_description fill for most established companies. industry, employee_count_approx and hq_location fill only when a snippet states them, which is uncommon. A null means "not in the snippet", never "zero". The output has no logo or founding year field: search snippets do not carry them.

โš ๏ธ false and null mean different things on every row. false is a measurement: the actor looked and the answer was no. null is the absence of one: the actor could not look. When something it needed fails, the row comes back with degraded: true, a plain-language degradation_reason, and every field it could not measure set to null rather than to a confident false or 0. Filter on degraded before you trust a negative.

๐Ÿ› ๏ธ How to find a company's LinkedIn URL from its domain

  1. Open the Input tab and put a bare domain in company_domain.
  2. Add company_name if you have it. It sharpens the search.
  3. Set includeFirmographics to "true" if you want company data as well as the URL.
  4. Click Start.
  5. Filter on confidence and spot-check anything with slug_mismatch: true.

The Input tab opens with stripe.com and Stripe filled in. That run returns one row: https://www.linkedin.com/company/stripe, pattern_match, high.

๐Ÿ“š Batch mode: many domains in one run

Put a list of bare domains in domains, one per line, and click Start. Every domain runs the same resolution path as a single lookup and writes its own row, in input order, with its own resolution_method and confidence. A domain that fails returns an error row with degradation_reason set and the rest of the batch continues. A domain listed twice is looked up once and written twice.

{
"domains": ["stripe.com", "notion.so", "figma.com", "linear.app", "vercel.com"],
"batchSize": 2
}

Returns five rows, one per domain (measured on 2026-10-12 against the search path):

company_domainlinkedin_company_urlresolution_methodconfidence
stripe.comhttps://www.linkedin.com/company/stripepattern_matchhigh
notion.sohttps://www.linkedin.com/company/notionhqpattern_matchhigh
figma.comhttps://www.linkedin.com/company/figmapattern_matchhigh
linear.apphttps://www.linkedin.com/company/linearpattern_matchhigh
vercel.comhttps://www.linkedin.com/company/vercelpattern_matchhigh

batchSize is how many domains resolve at the same time (default 2, maximum 10). Raise it for speed only if you accept more degraded rows when a search engine starts refusing. When domains has at least one entry it takes precedence over company_domain and company_name. The price per row is the same as a single lookup; a batch pays the Actor start event once per run instead of once per domain. From the API, the same input works with POST /v2/acts/mambalabs~domain-to-linkedin-url-resolver/runs.

๐Ÿงช Using it in Clay

Add an Apify enrichment column and map your domain column to company_domain. Every input is accepted as a string, which is what Clay sends.

Build a view filtered on confidence = "high" and route the rest to review. A row with no URL is not a failure: it is the actor declining to guess.

๐Ÿงญ How resolution works

  1. The actor reads the company's own homepage once. A LinkedIn company page the homepage declares (sameAs) or links is returned as homepage_link, and no search runs.
  2. Otherwise it runs one Brave search restricted to linkedin.com/company, on the datacenter pool first and a residential IP second, and scores every LinkedIn page in the results against the name the homepage declares, the name you provided, and the domain.
  3. When no Brave result clears the floor, it runs up to two Bing searches and scores those too.
  4. The best page is returned only when its score is at least minConfidenceScore. Otherwise the row is not_found and verification says what was seen and why it was held back.
  5. When every engine refuses, the row is not_found with degraded: true and says so.

No request is sent to LinkedIn at any step. Firmographics, when enabled, are read from the Brave result snippets about the chosen LinkedIn page, with the Bing snippet as a fallback. Social URLs come from a single search query with a site: restriction per platform, which stops a "share on LinkedIn" link inside a Facebook result from producing a cross-platform false positive.

Every request is capped by the time left in the run, so a slow search engine cannot run the clock out.

๐Ÿ’ต How much does it cost to resolve a LinkedIn URL?

You are charged once per row written.

PlanPer companyPer 1,000 companies
Free$0.006$6.00
Bronze$0.0057$5.70
Silver$0.0054$5.40
Gold$0.0051$5.10

There is also an Actor start event at $0.00005, charged once per run per GB of memory. A batch run pays it once for the whole list.

Free Apify plans get 250 results per calendar month, resetting on the 1st. Paid plans have no monthly cap.

๐Ÿ›‘ Your spending limit is respected. Set a maximum cost per run in Apify, or max_charge_usd on the Input tab, and the run stops before it would go over, keeping every result already charged. Each row's billable_events_json lists the events that row was charged for.

๐Ÿ’ณ Every row written is billed, including not_found, degraded, and summary rows. This actor is priced per dataset row. A not_found row with degraded: false is a real answer. A degraded row or a summary row is billed the same way, so filter on degraded and rerun those inputs rather than paying for them twice in a downstream step. Turning includeFirmographics on does not change the price; it can add one more search and makes the run slower.

๐Ÿ“… Scheduled pricing change, 2026-10-26 12:00 UTC. Results move from Apify's default per-row event to a named result event at the same price on every plan, so each result row costs exactly what it costs today. A run summary row and a blocked lookup row stop being charged. Until then every row is billed as described above.

โŒจ๏ธ Input

Everything is on the Input tab. Provide at least one of the first two.

FieldTypeDefaultWhat it does
company_domainstringnoneBare domain. Pattern matching needs this.
company_namestringnoneSharpens the search. Name-only input skips pattern matching.
includeFirmographicsstring"false""true" also reads company data from search snippets about the LinkedIn page.
skipCachestring"false""true" forces a fresh resolution.
domainsarray of stringsnoneBatch mode. One row per domain; takes precedence over the two single fields when it has at least one entry.
batchSizeinteger2Domains resolved concurrently per wave in batch mode, 1 to 10. Higher values meet search refusals sooner (see Batch mode).
minConfidenceScorestring"70"The floor, 0 to 100. A LinkedIn page scoring under it is not returned. See the score table above.
max_charge_usdnumbernoneOptional. The run stops before the next result that would take this run's charges over this amount, and keeps every result already charged. Leave empty to rely only on the maximum cost per run you set in Apify.

๐Ÿ“ค Output

One flat row per company, exportable as JSON, CSV, Excel, HTML or XML. This row is brex.com with includeFirmographics on:

{
"company_domain": "brex.com",
"company_name": "Brex",
"linkedin_company_url": "https://www.linkedin.com/company/brexhq",
"linkedin_slug": "brexhq",
"resolution_method": "homepage_link",
"confidence": "high",
"confidence_score": 95,
"verification": "verified: the company homepage declares this page in its structured data (sameAs) (score 95)",
"slug_mismatch": true,
"degraded": false,
"degradation_reason": null,
"facebook_url": "https://www.facebook.com/brexhq",
"instagram_url": "https://www.instagram.com/brexhq",
"twitter_url": "https://twitter.com/brexHQ",
"youtube_url": null,
"employee_count_approx": null,
"industry": null,
"hq_location": null,
"follower_count": "161,048",
"company_description": "Brex makes it easy for companies from startups to global enterprises to manage all their spend in one place, in real time.",
"run_date": "2026-10-12T06:30:00.000Z",
"row_status": "ok",
"error_reason": null,
"billable_events_json": "[{\"event\":\"apify-default-dataset-item\",\"count\":1}]"
}

๐Ÿงพ More fields on every row

FieldTypeWhat it holds
confidence_scoreinteger0 to 100, the evidence score behind confidence. On a row with no URL, the best candidate's score. Null on a degraded row.
verificationstringFor a returned URL, the evidence that verified it. For a row with no URL, the best candidate and why it was not returned.
degraded, degradation_reasonboolean, stringtrue and a plain-language reason when a search engine refused or the run ran out of time, so a miss is not a confirmed absence. false and null otherwise.
row_statusstringok, degraded, error, or notice (a notice row carries a message, not a result). Present on every row.
error_reasonstringWhy the row is degraded or an error, in plain words. Null on an ok row. Present on every row.
billable_events_jsonstringJSON list of the pricing events this row was charged for, for example [{"event":"apify-default-dataset-item","count":1}]. Lets you reconcile a run from the dataset alone. The once per run start event is not repeated on rows.

๐Ÿ’ก Tips

  • Filter on confidence = "high" before anything automated touches the URL.
  • Filter on degraded = true and rerun those inputs: a blocked lookup is not a missing page.
  • Have a list already? Put it in domains and run once. One row per domain, same price per row, one Actor start event instead of one per domain.
  • Leave includeFirmographics off when you only need the URL. It is faster and costs the same.
  • Supply both domain and name where you have them. Pattern matching needs the domain; the search works better with the name.
  • Treat a sustained pattern of one field going null across many rows (every row missing follower_count for a week, say) as a provider-side change worth flagging rather than a data problem on your side.

โš ๏ธ Known limits

The URL is only as current as the search index. A page renamed or created in the last few days may not appear yet, and a deleted page can still appear until the index drops it.

Firmographics are snippet deep. industry, employee_count_approx and hq_location are usually null, because a search snippet rarely carries them. There is no logo or founding year field.

Search engines can refuse a proxy pool. Each engine gets two attempts on fresh IPs, and Brave and Bing meter separately, which defeats the common case. A persistent block across both shows up as a not_found row with degraded: true and a blocked: reason, never as a quiet miss.

Verification trades fill for accuracy. On a 111 company test set the share of rows with a URL fell from 98 percent to 77 percent when verification shipped on 2026-10-12, and the share of rows with a wrong URL fell from 33 percent to 14 percent. A company whose site blocks automated visits, whose site declares a different name from its LinkedIn page, and who links no LinkedIn page, comes back not_found.

Name-only input skips the homepage step, so a URL is returned only when the page's name is identical to the name you provided.

โ“ FAQ

Does it visit LinkedIn?

No. Since 2026-10-12 the actor sends no request to linkedin.com. The URL, the follower count, and the description come from public search results that link to the LinkedIn page.

Why does resolution_method say google_search when you use Brave and Bing?

The value is kept for Clay column compatibility with existing tables. The engines behind it are Brave and Bing.

What does slug_mismatch: true mean? Did something go wrong?

No. It means the live LinkedIn slug is not the one the domain implies, like brexhq for brex.com. It is a spot-check flag, not an error.

Why is follower_count null but the URL resolved?

Firmographics are read only when includeFirmographics is on, and only from what the search snippets state. The URL resolves independently.

Can I pass a company name with no domain?

Yes. Without a domain there is no homepage to read, so a URL is returned only when a LinkedIn page's name is identical to the name you provided (score 80).

Can I resolve many domains in one run?

Yes. Put the list in domains (one per line in the Console, a JSON array from the API) and every domain gets its own row. A failed domain returns an error row and does not stop the batch.

Does it read personal LinkedIn profiles?

No. Company pages only, and only as search results.

๐Ÿงฉ Want other GTM data?

Mamba Labs builds custom actors for B2B go-to-market teams. The public versions of that work live here on the Store, so our users get the same tooling we build under contract.

๐Ÿ”ญ Account Hiring Watch๐Ÿ•ต๏ธ Agent Accessibility Auditor
๐Ÿค– AI Tooling Detector๐Ÿ“ก GTM Signals Aggregator
๐Ÿš€ Prospect Engine๐Ÿ“ Publishing Frequency Tracker
๐Ÿฆ‹ Bluesky Brand Presence Mapper๐Ÿ”€ Career Change Signal Engine
โฉ Sequencer Lead Push๐Ÿ”„ Company Change Event Feed
๐Ÿ“‡ Company Contact Details Extractor๐Ÿงญ Company Discovery List Builder
๐Ÿข Company Firmographic Enricher๐Ÿชช Company Identity Resolver
๐ŸŒ Company Social Presence Mapper๐Ÿท๏ธ Contact Classifier
๐Ÿ“ˆ Influencer Change Monitor๐Ÿ”Ž Influencer Finder
๐Ÿงพ Influencer Lead List Builder๐Ÿ‘ค Influencer Profile Scraper
๐Ÿ“ฌ Domain Deliverability Checker๐Ÿ›’ Ecommerce Platform Profiler
โœ‰๏ธ Work Email Waterfall๐ŸŽช Event Presence Index
โš–๏ธ Expert Witness Directory๐Ÿ’ต Company Funding Record
๐Ÿ’ฐ Funding and Press Signal Scanner๐Ÿ™ GitHub Organization Signal Scanner
๐Ÿง‘โ€๐Ÿ’ผ GTM Hiring Signal Scraper๐Ÿ“‹ Job Posting Monitor
๐Ÿงฑ Tech Stack Signal Detector๐ŸŽฏ ICP Fit Scorer
๐Ÿ”‘ Job Board Keyword Signal Scanner๐Ÿ” Job Change Tracker
๐Ÿ›๏ธ Legal Entity Resolver๐Ÿ“ฐ Link in Bio Scraper and Newsletter Detector
๐Ÿ’ผ LinkedIn Company Page Mapper๐Ÿ’ฌ LinkedIn Post Tracker
๐Ÿ“ข Meta Ad Library Monitor๐Ÿ“ธ Instagram Facebook Brand Presence Mapper
๐Ÿ†• New Hire Finder๐Ÿ“ฎ Outbound Stack Detector
๐Ÿ“„ Page Finder and Extractor๐Ÿง‘ People Finder & Email Verifier
๐Ÿ“Œ Pinterest Brand Presence Mapper๐Ÿ† Government Contract Award Monitor
๐Ÿ“… Reporting Window Finder๐Ÿ‘ฝ Reddit Brand Presence Mapper
โญ Trustpilot Reputation Enricher๐Ÿค Influencer Talent Agency Lookup
๐Ÿ‘ฅ Team Page People Extractor๐ŸŽต TikTok Brand Presence Mapper
๐Ÿ“Š Website Traffic Rank Estimator๐Ÿ… Workplace Program Detector
โœ–๏ธ X Brand Presence Mapperโ–ถ๏ธ YouTube Channel Stats Extractor

Every actor in the suite takes a domain or a company and returns one flat row, so they stack in the same Clay table without reshaping anything.

๐Ÿ› ๏ธ Need something custom built for you or your team? Tell us what you are trying to find and we will build it. Talk to Mamba Labs.

๐Ÿ†˜ Support

Found a bug or a company that resolves incorrectly? Open an issue on the Issues tab with the domain and the row, and we will look at it.

โ„น๏ธ Sourcing and legal. No request is sent to LinkedIn. The LinkedIn URL and the firmographic snippet come from public Brave and Bing search results, and social URLs from public search with a per-platform site: restriction. No login is used and no personal profiles are read: company pages only, as search results. You are responsible for how you use the output.

โš–๏ธ Unofficial

This actor is unofficial. It is not affiliated with, sponsored by, or endorsed by LinkedIn, Microsoft, Bing, DuckDuckGo or Brave. It reads publicly available search results only, with no account and no authenticated session.

Built by Mamba Labs.