Every inbound form gives you one reliable field: the email domain. One API call turns it into industry vertical, company profile, technology stack and B2B audience signals — fast enough for the form-submit webhook, deep enough to backfill an entire CRM against 102 million classified domains.
A lead from [email protected] could be a 12-person machine shop or
a mid-market manufacturer evaluating a six-figure deal — and nothing in the form submission tells you
which. The traditional fix, licensing a firmographic data vendor, trades one problem for two: contract cost
that scales with your database, and records last verified quarters ago. Meanwhile the decisions that depend
on this data — scoring, routing, SLA assignment — happen in the seconds after the form is
submitted, not at next month's data refresh.
Industry, size and business model are the inputs every routing rule needs, and the form gives you none of them. Reps research each lead manually or work blind.
Per-record licensing punishes large databases, and static records drift: companies pivot, get acquired, change what they sell.
Speed-to-lead studies show conversion decaying within minutes. Enrichment arriving in tomorrow's batch job cannot influence which rep gets the lead right now.
"Mid-market SaaS in logistics" is a fine ICP definition — but without a queryable dataset behind it, you cannot score against it or build lookalikes from it.
Instead of licensing a warehouse of aging records, classify the lead's actual website. The real-time categorization engine classifies the live site into industry verticals with a confidence score, the enrichment layer adds company and technology attributes, and the offline database covers bulk workloads where a per-call API would be the wrong shape.
POST the lead's domain to the categorization API and get back IAB categories with confidence scores, plus the site language — inside the webhook, so the lead lands already labeled. An expanded taxonomy covers cases where IAB tiers are too coarse for routing.
For the 40,000 unlabeled accounts already in HubSpot or Salesforce, join against the 102M-domain classified database and the company database — flat files you can load in an afternoon, refreshed on a schedule.
If your product integrates with Shopify, HubSpot or a specific analytics stack, the technology detector and the technology database slice show what a lead's site actually runs — a fit signal far stronger than self-reported employee count.
Turn the ICP slide into a dataset: the ICP prospecting database filters 102M domains by vertical, narrowed further by company size, funding and hiring slices — so every closed-won account seeds a workable lookalike list.
This pattern runs in a HubSpot workflow webhook or a Salesforce Apex callout:
classify the email domain with data_type=url, write the vertical and confidence back to the
lead, and let your existing assignment rules do the rest.
import requests
def enrich_lead(email):
domain = email.split("@")[1] # acmefabrication.com
resp = requests.post(
"https://www.websitecategorizationapi.com/api/iab/iab_web_content_filtering.php",
data={"query": domain, "api_key": API_KEY, "data_type": "url"},
timeout=30,
)
result = resp.json()
top = result["classification"][0]
crm.update_lead(email, {
"industry_vertical": top["category"],
"vertical_confidence": top["confidence"],
"site_language": result["language"],
})
if top["confidence"] >= 0.85:
router.assign_by_vertical(email, top["category"])
{
"classification": [
{"category": "Business and Industrial > Manufacturing", "confidence": 0.93},
{"category": "Business and Industrial > Metals", "confidence": 0.71}
],
"language": "en",
"status": 200
}
For high-value leads, a second call to
POST /api/audience/segment.php reads the lead's site the way an analyst would —
a real (trimmed) response for a data-platform vendor's blog:
{
"url": "https://www.snowflake.com/en/blog/",
"audience_segmentation": {
"b2b_signals": {
"is_b2b_content": true,
"confidence": 0.9,
"target_role": ["data scientist", "IT manager",
"business analyst"],
"target_company_size": "enterprise",
"industry_focus": ["technology", "finance",
"healthcare"]
},
"content_context": {
"content_type": "blog_article",
"writing_style": "technical",
"reading_level": "advanced"
}
},
"status": 200
}
Whether a company sells to enterprises is a firmographic fact no employee-count field captures. Persona mappings come from the 1,667+ buyer-persona taxonomy.
A practical enrichment schema assembled from the API and database layers — every field machine-derived from the live web, so it does not decay the way scraped registries do.
| Field | Source | Example | Feeds |
|---|---|---|---|
| Industry vertical | Categorization API / IAB taxonomy | Business > Manufacturing (0.93) | Territory routing |
| Company profile | Company database | Size band, business model | Lead scoring |
| Technology stack | Technology slice | Shopify, HubSpot, GA4 | Fit & integration scoring |
| B2B signals | /api/audience/segment.php | Sells to enterprise IT | ICP match flag |
| Growth signals | Funding / hiring slices | Actively hiring engineers | Prioritization |
Vertical and size decide the queue: enterprise manufacturing to the strategic team, self-serve e-commerce to nurture — applied before the lead is ten seconds old.
Vertical, tech stack and B2B signals are strong, non-sparse features — the model finally has firmographics for every record, not the fraction a vendor could match.
Feed your best customers' verticals into the ICP database, intersect with the SaaS or e-commerce slices, and export a net-new target list.
Standardize industry fields by re-deriving them from one classifier — a single taxonomy instead of five vendors' incompatible ones, reconciled with the taxonomy mapper.
Vendors sell stored records; we classify the live website on demand, so the answer reflects what the company is now. For bulk needs the 102M-domain database plays the vendor role — rebuilt from fresh crawls, priced for full-database joins, and on the same taxonomy as the real-time API, so batch and webhook enrichment never disagree.
Filter freemail domains before the call — there is no company site to classify. Parked, dead or consent-walled sites surface through status and low-confidence classifications, so your workflow falls back to the company database or manual review instead of writing garbage into the CRM.
Yes. The real-time endpoint is built for webhook latencies, and anything asynchronous — nightly backfills, list imports, CDP syncs — belongs on the offline database, where a 100,000-row enrichment is a SQL join, not 100,000 API calls.
Send us a CSV of domains from your CRM and get back the enriched file — verticals, confidence scores and firmographic attributes — so you can judge accuracy on your data, not ours.
Try the Live Demo Request a Sample Read the API Docs