Company Domain to Twitter/X URL Resolver
Pricing
from $0.07 / 1,000 result extracteds
Company Domain to Twitter/X URL Resolver
๐ Resolve company domains to Twitter/X profile URLs. Get handles, canonical x.com links, confidence, source pages, context, and errors.
Pricing
from $0.07 / 1,000 result extracteds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Resolve company website domains to public Twitter/X profile URLs.
This Apify Actor checks a company homepage and likely about, contact, footer, and company pages, extracts public x.com and twitter.com profile links, filters share/status/intent URLs, and returns a clean handle plus source evidence.
Use it when you have a spreadsheet of company domains and need social profile URLs for CRM enrichment, Clay workflows, ad audience research, sales ops, recruiting, partner research, or brand monitoring.
What does Company Domain to Twitter/X URL Resolver do?
It turns inputs like:
shopify.comstripe.comnotion.so
into structured rows with:
{"input": "shopify.com","normalizedDomain": "shopify.com","found": true,"handle": "Shopify","profileUrl": "https://x.com/Shopify","confidence": "high","sourcePageUrl": "https://www.shopify.com/"}
The actor emits one row per input domain, including not-found rows, so your enrichment pipeline can safely join results back to the original list.
Who is it for?
- ๐งโ๐ผ Sales teams enriching lead lists with social URLs
- ๐ Growth marketers building audiences and remarketing research
- ๐งฒ Clay users converting company domains into social handles
- ๐๏ธ CRM admins filling missing Twitter/X profile fields
- ๐ Research teams mapping company social presence
- ๐ค Partnerships teams checking brand social channels
- ๐ฐ PR and monitoring teams tracking official company accounts
Why use this actor?
Company websites often link their official social profiles in the footer or contact page. This actor uses the website itself as the source of truth instead of guessing from a search page.
That means every match includes evidence:
- ๐ where the profile URL was found
- ๐งพ nearby anchor/context text
- โ a confidence label
- ๐งญ pages checked for troubleshooting
What data can you extract?
| Field | Description |
|---|---|
input | Original domain or URL from your input |
normalizedDomain | Cleaned company domain |
websiteUrl | Homepage URL checked first |
found | Whether a Twitter/X profile was found |
handle | Twitter/X handle without @ |
profileUrl | Canonical https://x.com/{handle} URL |
originalUrl | Original URL discovered on the website |
confidence | high, medium, low, or none |
sourcePageUrl | Page where the profile link was found |
matchedAnchorText | Anchor text on the social link |
matchedContext | Nearby page text around the link |
checkedPages | Website pages crawled for this company |
error | HTTP or validation issue, if any |
resolvedAt | Timestamp of the enrichment row |
How much does it cost to resolve company domains to Twitter/X URLs?
This actor uses pay-per-event pricing:
- Small start fee per run
- Low per-result fee for each domain row emitted
- Tiered discounts for higher Apify plan tiers
You control cost by controlling the number of input domains and the maximum pages checked per domain.
How to use the actor
- Open the actor on Apify.
- Paste company domains or website URLs into
Domains or company website URLs. - Keep
Maximum pages per domainat4for most enrichment jobs. - Run the actor.
- Download the dataset as CSV, JSON, Excel, or via API.
Input example
{"domains": ["shopify.com","stripe.com","notion.so"],"maxPagesPerDomain": 4,"requestTimeoutSecs": 20}
Input fields
domains
A list of company domains or company website URLs.
Accepted examples:
shopify.comhttps://stripe.comwww.notion.so
maxPagesPerDomain
How many pages to check per company.
The actor starts with the homepage and then follows likely internal pages with words such as:
- about
- company
- contact
- connect
- press
- social
- team
requestTimeoutSecs
Maximum time to wait for each website page.
Use the default unless your target websites are unusually slow.
Output example
{"input": "shopify.com","normalizedDomain": "shopify.com","websiteUrl": "https://shopify.com/","found": true,"handle": "Shopify","profileUrl": "https://x.com/Shopify","originalUrl": "https://x.com/Shopify","confidence": "high","sourcePageUrl": "https://www.shopify.com/","matchedAnchorText": "X","matchedContext": "Follow Shopify on X","checkedPages": ["https://www.shopify.com/"],"error": null,"resolvedAt": "2026-06-24T00:00:00.000Z"}
Confidence levels
high usually means the link appears in social/footer/follow context or appears on a homepage.
medium means a valid profile URL was found, but the surrounding context is less explicit.
low means a valid profile URL was found with weaker evidence.
none means no profile URL was found.
What URLs are filtered out?
The actor filters URLs that are not company profile pages, including:
- Twitter/X share links
- intent URLs
- status/post URLs
- hashtag pages
- search URLs
- login/account pages
- reserved platform paths
Tips for better results
- โ Use company home domains, not product landing pages, when possible.
- โ
Increase
maxPagesPerDomainto6or8for websites with social links hidden on contact pages. - โ Keep failed rows; they are useful for QA and manual review.
- โ
Use
sourcePageUrlandmatchedContextto audit ambiguous matches. - โ Run batches in chunks if you have a very large list.
Integrations
Common workflows:
- Clay table enrichment: domain โ Twitter/X URL โ handle field
- HubSpot enrichment: company domain โ official social profile
- Salesforce enrichment: account website โ Twitter/X handle
- Airtable monitoring: company list โ social profile column
- Google Sheets export: batch domain list โ CSV results
- Brand monitoring: company domains โ official X accounts to track
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/company-domain-to-twitter-x-url-resolver').call({domains: ['shopify.com', 'stripe.com'],maxPagesPerDomain: 4,requestTimeoutSecs: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API usage with Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/company-domain-to-twitter-x-url-resolver').call(run_input={'domains': ['shopify.com', 'stripe.com'],'maxPagesPerDomain': 4,'requestTimeoutSecs': 20,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
API usage with cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~company-domain-to-twitter-x-url-resolver/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"domains":["shopify.com","stripe.com"],"maxPagesPerDomain":4,"requestTimeoutSecs":20}'
MCP usage
Use this actor from Apify MCP in Claude Code, Claude Desktop, or other MCP clients.
MCP server URL:
https://mcp.apify.com/?tools=automation-lab/company-domain-to-twitter-x-url-resolver
Claude Code setup:
$claude mcp add apify-company-twitter-resolver https://mcp.apify.com/?tools=automation-lab/company-domain-to-twitter-x-url-resolver
Claude Desktop JSON config:
{"mcpServers": {"apify-company-twitter-resolver": {"url": "https://mcp.apify.com/?tools=automation-lab/company-domain-to-twitter-x-url-resolver"}}}
Example prompts:
- "Resolve these company domains to Twitter/X profile URLs and return a CSV."
- "Find official X handles for the domains in this lead list."
- "Check which of these companies expose Twitter/X profiles on their websites."
Automation ideas
- Enrich every new CRM account with a Twitter/X profile.
- Monitor newly funded startups for official social channels.
- Build a list of company handles for ads audience research.
- Compare website-linked handles with manually collected handles.
- Flag domains where no official Twitter/X URL is publicly linked.
Troubleshooting
Why did a company return found: false?
The company may not link to Twitter/X publicly, may hide links behind JavaScript, may use a link-in-bio page, or may only link social profiles from pages outside the crawl limit.
Try increasing maxPagesPerDomain.
Why is the profile URL always x.com?
The actor canonicalizes valid twitter.com and x.com profile links to https://x.com/{handle} while preserving the discovered URL in originalUrl.
Can this actor find personal Twitter/X profiles?
It is designed for company website domains and official company social links, not personal-profile discovery.
Limitations
- Some websites render social links only after JavaScript executes.
- Some brands use regional or support-specific handles.
- Some websites link to social aggregators instead of Twitter/X directly.
- The actor does not log in to X/Twitter.
- The actor does not scrape X/Twitter profile content.
Legality and responsible use
This actor checks public company websites and extracts public links. It does not bypass logins or collect private account data. Always use the output in accordance with applicable laws, website terms, privacy rules, and your own compliance obligations.
Related scrapers and enrichment actors
Explore more automation-lab actors on Apify:
- https://apify.com/automation-lab/company-domain-to-instagram-url-resolver
- https://apify.com/automation-lab/domain-to-linkedin-url-resolver
- https://apify.com/automation-lab/website-contact-finder
FAQ
Does it require proxies?
No. The default implementation uses direct HTTP requests to public company websites to keep costs low.
Does it charge for not-found rows?
Yes. Each input domain produces a result row, whether found or not, because not-found rows are valuable for list joins and QA.
Can I use URLs instead of domains?
Yes. You can pass https://example.com, www.example.com, or example.com.
Does it follow every link on the website?
No. It follows a bounded set of likely company/about/contact/social pages to keep runs fast and affordable.
Can I export to CSV?
Yes. Apify datasets can be exported to CSV, JSON, Excel, XML, RSS, and via API.
Support
If you need a different social platform resolver, a broader company social presence mapper, or a custom enrichment workflow, contact the actor maintainer through Apify.
Changelog
Initial version resolves company domains to Twitter/X URLs from public website links.
Field notes
The actor is intentionally conservative. It prefers direct website evidence over guessing.
Batch processing note
For large files, split inputs into manageable batches and keep the default crawl depth first.
Data quality note
Use confidence, source page, and context fields when reviewing matches.
Performance note
Most domains finish after the homepage. Extra pages only run when likely internal links are discovered.