Company Enrichment by Domain ⚡ Emails, Socials, Hiring, Ads avatar

Company Enrichment by Domain ⚡ Emails, Socials, Hiring, Ads

Pricing

from $5.00 / 1,000 enriched companies

Go to Apify Store
Company Enrichment by Domain ⚡ Emails, Socials, Hiring, Ads

Company Enrichment by Domain ⚡ Emails, Socials, Hiring, Ads

Turn company domains into one enriched row each: emails by role, phones, address, founding year, LinkedIn/Instagram/X/YouTube/TikTok, website platform and marketing tools, Shopify/WooCommerce product count, ATS and open jobs, optional Google Ads activity. Respects robots.txt. Pay per company.

Pricing

from $5.00 / 1,000 enriched companies

Rating

0.0

(0)

Developer

Pulse Lab

Pulse Lab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Company Enrichment by Domain – Emails, Socials, Tech, Hiring, Ads

Give it a list of company domains and get back one enriched row per company, built from the company's own website and public APIs:

  • Contacts – emails grouped by role (general / sales / support / press / careers / legal / personal), phones, postal address, contact page URL
  • Company facts – name, description, language, country, founding year (from schema.org markup when the site publishes it)
  • Social profiles – LinkedIn, Instagram, Facebook, X, YouTube, TikTok, GitHub, Pinterest
  • Tech – website platform (Shopify, WooCommerce, WordPress, Webflow, Wix, Squarespace, HubSpot, Next.js, …) and marketing / support tools (Google Analytics, GTM, Google Ads tag, Meta Pixel, TikTok Pixel, LinkedIn Insight, HubSpot, Intercom, Zendesk, Klaviyo, Stripe, …)
  • E-commerce – Shopify / WooCommerce detected, number of products, store currency
  • Hiring – applicant tracking system (Greenhouse, Lever, Ashby, Workday, Workable, Recruitee, Breezy, BambooHR, Personio, Teamtailor), number of open jobs, jobs posted in the last 30 days, latest posting date, sample job titles, job board URL
  • Google Ads (optional) – is the company running Google ads, estimated number of ads, last seen date (Google Ads Transparency Center)

No login, no API keys. The actor reads the homepage plus a few contact / about / imprint pages, respects robots.txt, and uses only official public endpoints for jobs and store data. Blocked or unreachable websites are reported and not charged.

Why this instead of a page-by-page contact scraper?

  • One price per company, not per page – predictable cost for lists of thousands of domains.
  • Sales signals in the same row – is the company hiring (and how fast), selling online (and how much), advertising on Google? Great for lead qualification and account prioritisation.
  • Clean, deduplicated output – emails are validated and grouped by role, phones deduplicated, social links normalised.

Input

FieldDescription
domains (required)Company domains or website URLs, one per line.
maxPagesPerDomainPages read per site (homepage + contact / about / imprint). Default 5, max 10.
includeHiringDetect ATS and count open jobs (default on, included in the company price).
includeEcommerceDetect Shopify / WooCommerce and read the public product count (default on, included).
includeAdsCheckLook the domain up in the Google Ads Transparency Center (default off, charged separately, uses a residential proxy).
adsRegionCountry for the ads check (default anywhere).

Example:

{
"domains": ["stripe.com", "gymshark.com", "netguru.com", "https://www.hubspot.com"],
"includeAdsCheck": true
}

Output

One row per domain (type: "company"). Key fields:

domain, status, website, name, description, language, address, country, foundingDate, emails[], emailsByRole{}, primaryEmail, phones[], linkedin, instagram, facebook, x, youtube, tiktok, github, pinterest, platform, platforms[], generator, tools[], ecommercePlatform, productCount, storeCurrency, ats, atsSlug, jobBoardUrl, careersUrl, openings, postedLast30Days, latestPostedAt, topJobTitles[], adsVerdict, adsEstimateLow, adsEstimateHigh, latestAdDate, adsAdvertisers[], contactPageUrl, pagesCrawled, pagesSkippedByRobots, fetchedViaProxy, note, checkedAt

status: OK (charged), BLOCKED (site refuses automated access even from a residential IP – not charged), UNREACHABLE (DNS / TLS / network error – not charged), INVALID_INPUT, ERROR.

adsVerdict: NAME_MATCH (an advertiser whose name matches the domain runs ads for it), SINGLE_ADVERTISER, MIXED, LOW_VOLUME, NO_ADS, NOT_CHECKED (not charged).

Example row (real run, trimmed):

{
"domain": "stripe.com",
"status": "OK",
"name": "Stripe",
"description": "Stripe is a suite of APIs powering online payment processing…",
"emails": ["press@stripe.com", "privacy@stripe.com"],
"emailsByRole": { "press": ["press@stripe.com"], "legal": ["privacy@stripe.com"] },
"linkedin": "https://www.linkedin.com/company/stripe/",
"x": "https://twitter.com/stripe",
"youtube": "https://youtube.com/@stripe",
"github": "https://github.com/stripe",
"platform": "nextjs",
"ats": "greenhouse",
"jobBoardUrl": "https://job-boards.greenhouse.io/stripe",
"openings": 725,
"adsVerdict": "NAME_MATCH",
"pagesCrawled": 5
}

Another: gymshark.com → Shopify store with 10,013 products, Greenhouse with 10 openings, support@gymshark.com, Instagram / Facebook / X / TikTok, Google Ads NAME_MATCH.

Measured results

Test list of 22 well-known companies (SaaS, DTC brands, agencies, a Korean corporation): 20 enriched, 2 blocked (Cloudflare / Vercel bot protection even from a residential IP – reported free), ~50 seconds in total with 4 parallel workers. Across the 20 enriched rows: social profiles found for 85 %, ATS + open-job count for 75 %, at least one email for 55 %, schema.org address or founding year for 25 % (large brands often publish contact forms instead of addresses; small and mid-size businesses typically expose more).

Pricing

Pay per event – only successful rows are charged:

  • company – one enriched company row (status: OK). Includes hiring and e-commerce detection.
  • ads-check – one Google Ads Transparency lookup (only when includeAdsCheck is on and the lookup succeeded).

Blocked, unreachable and invalid domains are free. Platform usage is included in the event prices.

Limitations (please read)

  • The actor only sees what the company publishes on its website and public job boards. Sites that hide contact details behind forms or JavaScript-only rendering return fewer fields.
  • Some sites (Cloudflare "bot fight", Vercel rate limiting) block automated access even from residential IPs → BLOCKED, not charged.
  • Email addresses are extracted, not verified. Role classification is based on the local part (sales@, support@, …).
  • Job counts come from the public job-board API of the detected ATS; companies without a supported ATS get ats: null. Workday boards are found only when the careers page links to them.
  • The Google Ads check reports what the Transparency Center shows for the domain; a NO_ADS result means no ads were found in the sample, not a guarantee.
  • robots.txt is respected: pages a site disallows for all crawlers are skipped (pagesSkippedByRobots).
  • A per-domain time budget of 90 s keeps slow sites from stalling a run; skipped steps are listed in note.