Company Enrichment — firmographics, contacts, tech, hiring avatar

Company Enrichment — firmographics, contacts, tech, hiring

Pricing

from $4.00 / 1,000 company enrichments

Go to Apify Store
Company Enrichment — firmographics, contacts, tech, hiring

Company Enrichment — firmographics, contacts, tech, hiring

Give company domains (stripe.com) and get one deduped, live-from-source record each: firmographics, social links, tech-stack fingerprint, verified role emails (MX-graded) and phones, plus a live hiring signal from 8 ATS boards. Crawls each company's own site — keyless, no resold DB. Pay per event.

Pricing

from $4.00 / 1,000 company enrichments

Rating

0.0

(0)

Developer

Rez Archer

Rez Archer

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Categories

Share

Company Enrichment Scraper

Give it a domain, get one clean, live-from-source record per company: firmographics, verified business contacts, a tech-stack fingerprint, social profiles, and — uniquely — a live hiring signal derived from 8 ATS platforms. No resold database, no paid API, keyless.

Most enrichment actors resell a static third-party database (ZoomInfo/Apollo-style) behind a paid key. The data is stale the day it ships and you pay for a vendor you can't see. This actor is different: it reads each company's own public website live on every run, grades the contacts it finds, fingerprints the tech, and layers on a hiring signal pulled straight from the company's live ATS. Nothing is cached and resold.

What you get per company

{
"input_domain": "stripe.com",
"canonical_domain": "stripe.com",
"company_name": "Stripe",
"legal_name_guess": "Stripe, Inc.",
"description": "Stripe powers online and in-person payment processing ...",
"industry": null,
"founded_year": null,
"employee_size_hint": null,
"hq_country": "US",
"office_address": {
"street": "354 Oyster Point Blvd", "locality": "South San Francisco",
"region": "CA", "postal_code": "94080", "country": "US",
"formatted": "354 Oyster Point Blvd, South San Francisco, CA, 94080, US",
"source": "jsonld"
},
"legal_registration": {
"vat_number": "GB123456789", "vat_country": "GB",
"company_number": "09876543", "registry": "UK-Companies-House"
},
"logo_url": "https://.../favicon.svg",
"social_links": [{ "network": "github", "url": "https://github.com/stripe" }],
"tech_stack": [
{ "name": "Next.js", "category": "js-framework" },
{ "name": "React", "category": "js-framework" }
],
"contacts": {
"emails": [
{ "email": "press@stripe.com", "type": "role", "domain": "stripe.com",
"mx": true, "mx_host": "aspmx.l.google.com", "deliverability_grade": "B" }
],
"phones": [{ "number": "+18889262289", "type": "business" }]
},
"hiring": {
"ats_vendor": "greenhouse",
"careers_url": "https://stripe.com/jobs",
"open_reqs_count": 724,
"departments_hiring": ["Engineering", "Sales", "..."],
"locations_hiring": ["San Francisco", "Dublin", "..."],
"remote_share": 0.15,
"hiring_intensity": "high",
"newest_posting_at": "2026-10-29T09:14:34.000Z"
},
"email_provider": "Google Workspace",
"dns_saas": [
{ "name": "Atlassian", "category": "dev-tools" },
{ "name": "DocuSign", "category": "esignature" },
{ "name": "SendGrid", "category": "email-infra" }
],
"mx_hosts": ["10 aspmx.l.google.com", "20 alt1.aspmx.l.google.com"],
"domain_created_at": "1995-09-12T04:00:00Z",
"domain_age_years": 31.1,
"domain_expires_at": "2027-09-11T04:00:00Z",
"registrar": "SafeNames Ltd.",
"source_freshness": "live",
"_enriched_at": "2026-10-29T11:42:31.697Z"
}

The hiring signal nobody else has

hiring is derived live from 8 ATS platforms (Greenhouse, Lever, Ashby, SmartRecruiters, Workday, Recruitee, Workable, BambooHR) with automatic vendor detection from the domain. It tells you whether a company is actively hiring, how hard, in which departments and locations, and when it last posted — a buying-intent and growth signal a static firmographics database simply cannot carry.

DNS & domain intelligence (what the crawl can't see)

Three more signals come straight from the domain's DNS and registration, keyless:

  • email_provider — who runs the company's mail (Google Workspace, Microsoft 365, Proofpoint, Mimecast, Zoho, …), read from live MX records.
  • dns_saas — the SaaS tools the company actually runs, inferred from DNS domain-verification tokens and the SPF include: chain (OpenAI, Atlassian, DocuSign, Stripe, SendGrid, Zendesk, Salesforce, Slack and dozens more). A technographic signal a page crawl never surfaces.
  • domain_age_years / domain_created_at / registrar — domain age and registrar from RDAP (the authoritative registry source, discovered via the live IANA bootstrap — every TLD, no stale list). Domain age is a strong company-maturity and anti-fraud signal.
  • office_address — the postal address, structured (street / locality / region / postal_code / country) when the site exposes schema.org PostalAddress, with a formatted one-line fallback from the page's <address> block. Country-only markup is dropped rather than passed off as an address.
  • legal_registration — the company's statutory identifiers parsed from imprint / legal footers, keyword-anchored so an order ID or SKU is never mistaken for one: vat_number (+ vat_country) for EU/UK VAT, and company_number with its registry (UK Companies House, German Handelsregister HRB/HRA, French SIREN). Both stay null when the site doesn't state them — never fabricated.

Input

FieldTypeDefaultDescription
domainsstring[]— (required)Company domains or URLs, one per company.
maxCompaniesinteger0 (no cap)Cap how many companies are processed.
maxPagesPerCompanyinteger4Pages crawled per company (homepage + /about, /contact, ...).
include_hiringbooleantrueDerive the live multi-ATS hiring block.
include_contactsbooleantrueExtract emails (MX-graded) + E.164 phones.
include_techbooleantrueTech-stack fingerprint.
include_dnsbooleantrueDNS & domain intelligence: email provider, SaaS-from-DNS, domain age/registrar.
verifyEmailsSmtpbooleanfalseBest-effort SMTP RCPT probe (port 25 is often blocked on egress, so this is advisory).
{ "domains": ["stripe.com", "ramp.com", "bunq.com"], "maxPagesPerCompany": 4 }

Email deliverability grades

A MX present and an SMTP server accepted the address · B valid MX (mailbox existence unconfirmed) · D resolves but no MX · F does not resolve. MX uses a free DNS lookup; the SMTP step is opt-in and advisory. We never claim a grade stronger than the evidence.

Pricing

Pay per event — you are charged once per deduped enriched company record, never per page fetched or per contact found. Price is shown on the actor's Apify Store page.

How it stays accurate (the maintenance you're renting)

Company sites and ATS response shapes drift constantly. A built-in freshness monitor probes the adapters against live canaries and flags drift so the parsers are repaired before a bad run reaches you. That upkeep is the reason to rent this instead of maintaining a crawl-plus-deliverability-plus- anti-bot fleet yourself.

Notes & scope

  • Business data only. Published business firmographics and published business contact points (role inboxes, switchboard numbers, public social profiles). Fields absent from a site stay null — nothing is invented.
  • HTTP-first. The common path is a fast keyless fetch of the company's own pages. A JavaScript-only site is the documented fallback case (a headless render); v0.1 handles the large majority that serve static/SSR HTML.
  • CLI: the same core runs locally with no account — node cli.js stripe.com ramp.com.

Run locally

npm install
node cli.js stripe.com bunq.com --pretty # keyless, no account
npm test # offline unit + wiring tests
npm run live # live keyless canary