Skip to content

Lead Enrichment

A raw lead is usually just a typed company name. Lead enrichment turns that string into a verified business: confirmation the company is a real, active entity, its canonical registered name, and the structured record behind it. BizVerify does this from the current registry, so an enriched lead reflects the company’s real status — not a data broker’s stale copy.

  • Exact name on signup → a quick check confirms the entity and returns the canonical name in one call, fast enough to run inline.
  • Fuzzy or partial namesearch first to resolve candidates, then verify the chosen match.

When a user types their company name into a signup form, verify it inline and store the canonical result.

import BizVerify from '@bizverify/sdk';
const biz = new BizVerify({ apiKey: 'bv_live_...' });
const result = await biz.verification.verify({
entity_name: 'acme holdings',
jurisdiction: 'us-de',
});
if (result.exists) {
lead.companyName = result.entity_name; // canonical registered form
lead.status = result.status; // active / dissolved / ...
lead.verified = result.good_standing === true;
}

Even the quick check upgrades a lead: a messy input becomes the canonical registered name, plus a real/active signal you can score on.

When the input is partial or ambiguous, search returns ranked candidates with a confidence score. Pick the best match, then verify it.

const page = await biz.search.find({ entity_name: 'acme', jurisdiction: 'us-de', limit: 5 });
const best = page.results[0]; // highest confidence
if (best && best.confidence > 0.9) {
const enriched = await biz.entities.get(best.entity_id);
}

For an existing CRM, run deep verification over your accounts to attach the structured record — entity_type, formation_date, registered_agent, principal_address, and the jurisdiction_id. Deep verifications are asynchronous; use webhooks to collect results without blocking your batch.

const job = await biz.verification.verifyAndWait(
{ entity_name: account.name, jurisdiction: account.jurisdiction, verification_level: 'deep' },
{ timeoutMs: 120_000 },
);
account.entityType = job.data.entity_type;
account.foundedOn = job.data.formation_date;
account.registryId = job.data.jurisdiction_id;

Two leads with slightly different spellings of the same company resolve to the same jurisdiction_id. Use it as the dedupe key so “Acme Holdings, Inc.” and “acme holdings inc” collapse into one account.