Domain to LinkedIn URL Resolver avatar

Domain to LinkedIn URL Resolver

Pricing

from $0.07 / 1,000 result extracteds

Go to Apify Store
Domain to LinkedIn URL Resolver

Domain to LinkedIn URL Resolver

Resolve company domains to LinkedIn company URLs with evidence for CRM enrichment, RevOps, sales prospecting, and lead-generation workflows.

Pricing

from $0.07 / 1,000 result extracteds

Rating

0.0

(0)

Developer

Automation Lab

Automation Lab

Maintained by Community

Actor stats

1

Bookmarked

88

Total users

36

Monthly active users

16 days ago

Last modified

Categories

Share

Find LinkedIn company URLs from company domains with public evidence.

This Apify Actor turns a list of company domains into LinkedIn company page URLs for CRM enrichment, lead generation, sales operations, and account research workflows.

It is designed to be safe and practical: it checks public company websites first, optionally checks public search-result evidence, and never requires LinkedIn login credentials.

What does Domain to LinkedIn URL Resolver do?

Domain to LinkedIn URL Resolver maps website domains such as zapier.com, airtable.com, or stripe.com to public LinkedIn company page URLs.

For every input domain, the actor returns:

  • ✅ The original input domain
  • ✅ The normalized website domain
  • ✅ The discovered LinkedIn company URL
  • ✅ Resolution status
  • ✅ Confidence score
  • ✅ Evidence URL where the match was found
  • ✅ Checked URLs for auditability
  • ✅ Error details for invalid or unresolved domains

Who is it for?

Sales and data teams use domain-to-LinkedIn resolution before enrichment and outreach.

  • 🧑‍💼 Sales operations teams cleaning CRM company records
  • 📈 Growth teams preparing account-based marketing lists
  • 🔍 Lead generation agencies enriching domain lists
  • 🧰 RevOps teams matching domains to LinkedIn company profiles
  • 🧪 Data teams building company identity graphs
  • 🤖 Automation builders connecting Apify, HubSpot, Airtable, Clay, and Google Sheets

Why use this actor?

Many B2B workflows start with a company domain but need a LinkedIn company URL.

LinkedIn URLs help with:

  • company research
  • employee-count enrichment
  • industry classification
  • social proof checks
  • account matching
  • outbound personalization
  • deduplication across data vendors

This actor focuses on the first step: resolving the URL with evidence.

How it works

The resolver uses an HTTP-first workflow.

  1. It normalizes each submitted domain.
  2. It checks the company homepage.
  3. It checks common public pages such as /about, /company, and /contact.
  4. It extracts outbound linkedin.com/company/, linkedin.com/school/, and linkedin.com/showcase/ links.
  5. If enabled, it checks public Bing search-result evidence.
  6. It returns one dataset row for every input.

Identical input batches and resolution settings can reuse their complete result for up to six hours. Cached rows preserve the original resolvedAt timestamp and report cacheHit: true plus cacheAgeSecs. Set forceFresh: true when a compliance or high-stakes workflow needs a new lookup; the fresh result replaces the reusable cache.

The submitted website origin is checked first. If that homepage cannot be reached because of a network, DNS, TLS, or connection error, the resolver makes bounded attempts with the corresponding www origin and HTTP origin. Ordinary HTTP errors do not trigger every origin variant.

Safe public-data approach

This actor does not scrape private LinkedIn data.

It does not need:

  • LinkedIn cookies
  • LinkedIn account credentials
  • browser automation
  • CAPTCHA solving
  • private company-page details

If a domain cannot be resolved safely from public evidence, it is returned as unresolved.

Data output

FieldTypeDescription
inputDomainstringOriginal submitted domain or URL
normalizedDomainstring/nullParsed domain without leading www.
homepageUrlstring/nullNormalized homepage URL
linkedinUrlstring/nullDiscovered LinkedIn company/school/showcase URL
statusstringresolved, unresolved, or invalid
confidencenumberConfidence score from 0 to 1
evidenceUrlstring/nullPage or search URL where evidence was found
evidenceTypestringhomepage_link, company_page_link, search_result, or none
checkedUrlsarrayWebsite/search URLs attempted
errorstring/nullLast validation or request issue
resolvedAtstringISO timestamp when public evidence was checked
cacheHitbooleanWhether the row came from the six-hour result cache
cacheAgeSecsnumber/nullCache age in seconds, or null for a fresh lookup

Example output

{
"inputDomain": "zapier.com",
"normalizedDomain": "zapier.com",
"homepageUrl": "https://zapier.com/",
"linkedinUrl": "https://www.linkedin.com/company/zapier/",
"status": "resolved",
"confidence": 0.95,
"evidenceUrl": "https://zapier.com/",
"evidenceType": "homepage_link",
"checkedUrls": ["https://zapier.com/"],
"error": null,
"resolvedAt": "2026-06-18T00:00:00.000Z",
"cacheHit": false,
"cacheAgeSecs": null
}

How much does it cost to resolve domains to LinkedIn company URLs?

The actor uses pay-per-event pricing.

You pay a $0.005 start event for each run and a tiered per-result event for each processed domain saved to the dataset.

The BRONZE per-result price is $0.00010851, with lower prices on higher Apify tiers. This makes the cost predictable for CRM batches: one input domain equals one output row.

Input configuration

Company domains or URLs

Add domains in the domains field.

Examples:

  • zapier.com
  • airtable.com
  • https://stripe.com
  • www.notion.so

Use public search fallback

Enable includeSearchFallback to check public Bing evidence when the company website does not expose a LinkedIn link.

Disable it if you only want first-party website evidence.

Force a fresh lookup

forceFresh defaults to false, allowing complete identical batches to reuse results for up to six hours. Set it to true to bypass a fresh cache entry, perform the lookups again, and replace the cache. Result charges remain one per submitted domain in either mode.

Pages to check per domain

maxPagesPerDomain controls how many common public website paths are checked.

The actor tries pages in this order:

  1. homepage
  2. about
  3. about-us
  4. company
  5. contact
  6. contact-us
  7. team

How to use this actor

  1. Open the actor on Apify.
  2. Add your company domains to the input.
  3. Keep public search fallback enabled for higher coverage.
  4. Start the run.
  5. Export the dataset as CSV, JSON, Excel, or via API.
  6. Join the result back to your CRM or enrichment workflow.

Tips for best results

  • ✅ Use company domains, not personal profile URLs.
  • ✅ Include the canonical corporate domain when possible.
  • ✅ Keep search fallback enabled for older websites with no footer social links.
  • ✅ Filter by status = resolved before sending data to downstream automations.
  • ✅ Review lower-confidence search_result matches before high-stakes campaigns.

Handling unresolved domains

Unresolved rows are not failures.

They mean the actor did not find safe public evidence within the configured checks.

You can:

  • retry with search fallback enabled
  • increase pages per domain
  • manually review important accounts
  • enrich the domain with another data vendor

Integrations

Common workflow patterns:

  • 🧾 Upload a CSV of CRM domains and export resolved LinkedIn URLs.
  • 🧱 Connect Apify dataset output to Airtable.
  • 🧰 Send results to Clay, HubSpot, Pipedrive, or Salesforce via Make/Zapier.
  • 🔁 Chain with another Apify actor for deeper company enrichment.
  • 📊 Store evidence URLs in a data warehouse for audit trails.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/domain-to-linkedin-url-resolver').call({
domains: ['zapier.com', 'airtable.com'],
includeSearchFallback: true
});
console.log(run.defaultDatasetId);

API usage with Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/domain-to-linkedin-url-resolver').call(run_input={
'domains': ['zapier.com', 'airtable.com'],
'includeSearchFallback': True,
})
print(run['defaultDatasetId'])

API usage with cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~domain-to-linkedin-url-resolver/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"domains":["zapier.com","airtable.com"],"includeSearchFallback":true}'

MCP usage

Connect this actor through the hosted Apify MCP Server:

https://mcp.apify.com/?tools=automation-lab/domain-to-linkedin-url-resolver

Claude Code

$claude mcp add --transport http apify 'https://mcp.apify.com/?tools=automation-lab/domain-to-linkedin-url-resolver'

Claude Desktop

Add this remote server to your Claude Desktop MCP configuration:

{
"mcpServers": {
"apify-domain-resolver": {
"url": "https://mcp.apify.com/?tools=automation-lab/domain-to-linkedin-url-resolver"
}
}
}

Cursor

Open Settings → Tools & Integrations → MCP, add a custom server, and use the same mcpServers JSON configuration above.

VS Code

Open MCP: Add Server from the Command Palette, choose HTTP, and enter the actor-scoped MCP URL above. You can also save the server in your workspace MCP configuration.

Example prompts

  • "Resolve these 50 company domains to LinkedIn company URLs."
  • "Find LinkedIn company pages for the domains in this CSV and return unresolved rows separately."
  • "Check which CRM accounts have homepage evidence for a LinkedIn company page."

Data quality notes

The actor assigns higher confidence to first-party website links than to search-result matches.

Confidence guide:

  • 0.95: LinkedIn link found on homepage
  • 0.90: LinkedIn link found on another company-owned page
  • 0.65: LinkedIn link found through public search fallback
  • 0: no match or invalid input

Legality

This actor processes public web pages and public search-result evidence.

You are responsible for using the output in accordance with applicable laws, platform terms, and your own compliance requirements.

The actor does not access private LinkedIn data and does not require LinkedIn credentials.

FAQ and troubleshooting

Why did a known company return unresolved?

The company website may not link to LinkedIn, may block automated HTTP requests, or may use a different brand/domain. Try enabling search fallback or checking the domain manually.

Why is the confidence lower for some rows?

Search-result evidence is less authoritative than a link found directly on the company website, so it receives a lower confidence score.

Can I submit LinkedIn URLs as input?

No. Submit company domains or website URLs. LinkedIn URLs are returned as output.

Use this actor with other automation-lab actors:

Changelog

0.2

Added force-fresh lookups, explicit cache provenance, support for protocol-relative and escaped LinkedIn links, and bounded origin fallback after connection failures.

0.1

Initial version: HTTP-only domain-to-LinkedIn company URL resolution with public website evidence, optional public search fallback, confidence scores, and unresolved-row tracking.

Data handling, dependencies, and retention

The actor uses deterministic HTTP parsing and does not use AI or send data to an AI provider. Submitted domains are requested from their public company websites and, when search fallback is enabled, included in public Bing search queries. LinkedIn is used only as the type of public URL being discovered; the actor does not log in to or request private LinkedIn data.

Run input, logs, and dataset output follow your Apify account's storage and deletion settings. To speed up repeated work, complete exact-input results are also written under a hashed key in the actor-owned named key-value store resolution-cache-v1. Each cache record contains the submitted domains, public resolution output, options, and cache timestamp. It accepts and stores no credentials. Entries are eligible for reuse for six hours; stale entries are never returned, but they are not automatically removed and the named store has no Actor-enforced expiry. forceFresh: true bypasses a reusable entry and replaces it after a complete run. Do not submit private hostnames or confidential identifiers.

To erase the cross-run cache, open Apify Console → Storage → Key-value stores, select resolution-cache-v1, and choose Actions → Delete. The authenticated API equivalent is DELETE /v2/key-value-stores/{storeId}. Delete a run's input/default dataset separately from that run's Storage tab (or with DELETE /v2/datasets/{datasetId}); deleting only the run does not delete the named cache.

Support

If you need another field or integration, open an issue on the actor page with sample input domains and the output you expected.