use cases

Qualify B2B leads by email domain

Score inbound leads by work vs personal email, company suite and domain signals, so sales follows up on real companies first.

Inbound forms collect a mix of buyers, students, job seekers, vendors and bots. The email address is the cheapest qualification signal you have, and it’s available the moment the form is submitted.

Signals that help qualify

Signal Field Reads as
Company domain category: "business" A company, even if it’s small
Personal provider category: "personal" An individual, or a buyer using a personal address
Disposable / relay is_disposable, is_relay Low intent, or someone avoiding follow-up
Education / government category Often a different sales motion
Role account is_role_account Shared inbox: real company, unknown person
Google Workspace / Microsoft 365 workspace.*.detected Company size and stack hints; integration fit
Federated sign-in (Okta, ADFS…) workspace.microsoft_365.auth, identity_provider Usually a more mature IT setup
New or parked domain is_new_domain, reason parked_domain Brand-new company, or something less legitimate

These are hints, not firmographics. A two-person startup on Microsoft 365 looks similar to a large one. Combine them with your own data (company name, website, form answers).

A simple scoring sketch

function leadScore(v) {
  if (v.recommendation === 'block') return 0;
  let score = 50;
  if (v.category === 'business') score += 20;
  if (v.is_role_account) score -= 10;
  if (v.workspace?.microsoft_365?.detected || v.workspace?.google_workspace?.detected) score += 10;
  if (v.workspace?.microsoft_365?.auth === 'federated') score += 5;
  if (v.is_new_domain) score -= 15;
  return Math.max(0, Math.min(100, score));
}

Tune the weights against your own closed-won data; the point is to make the first sort automatic.

Where to run it

Check the domain instead of the address when you only need the company ({"domain": "acme.io"}); it works the same and keeps less personal data in flight.

Routing ideas

  • allow + score ≥ 70 → assign an owner immediately, notify in Slack
  • allow + lower score → nurture sequence with a meeting link
  • review → quick human look
  • block → newsletter or self-serve resources, not the sales queue

Related: Sales routing by workspace · CRM hygiene