Skip to main content
Contact Kit LLC logo
Contact Kit

Methodology

How we verify every contact, every time

The 5-step verification stack that backs the 95% accuracy guarantee. We publish this in detail because customers should be able to compare it against whatever pipeline their current vendor uses.

The short version

Every record runs through five sequential checks. Steps 1–3 are also part of standard scraping pipelines. Steps 4 and 5 are what separates verified data from algorithmic data — and what produces the 2–4% bounce rates customers see in production.

  1. 1

    Email syntax + domain validation

    The cheapest, fastest gate. Reject anything that fails RFC-5322 syntax. Confirm the domain has resolvable MX records — without them, the domain doesn't accept mail at all. Reject any domain on the disposable-mail blocklist (mailinator, yopmail, etc.); legitimate B2B contacts don't use disposable email at their work address.

    What it catches

    Typo'd addresses, malformed records, dead domains. Roughly 8–12% of raw research output fails here.

    What it misses

    Everything to do with whether the mailbox is real, watched, or current.

  2. 2

    Live SMTP probe

    Open a TCP connection to the recipient mail server, walk through HELO and MAIL FROM, then issue RCPT TO and observe the server response. A 250-class response means the server accepts mail for that mailbox; 550-class means it rejects. We do not send any actual message — the probe ends after RCPT TO.

    What it catches

    Dead mailboxes, decommissioned addresses, strict-validation rejection signals.

    What it misses

    Catch-all servers (next step) and servers that delay validation. Some Microsoft 365 tenants accept everything at SMTP and reject during message processing.

  3. 3

    Catch-all detection

    The step most scraping pipelines skip. We probe the recipient domain with a known-invalid mailbox (a randomized 16-character local part). If the server accepts the invalid mailbox, the domain is catch-all and the SMTP signal from step 2 is unreliable.

    What it catches

    Domains where SMTP returns false-positive validation. Records on those domains get flagged as catch-all so the customer can decide stance per send.

    What it misses

    Catch-all isn't automatic rejection — many legitimate companies run catch-all configurations. The flag is the deliverable.

  4. 4

    Phone line-type verification

    For records that include direct-dial phone numbers, we run a line-type check via the carrier-data network — same data source enterprise telephony platforms use. The check distinguishes mobile, desk (landline), virtual line (VoIP), fax, and ported numbers.

    What it catches

    Fax numbers and inactive ported numbers. Roughly 4–7% of scraped phone numbers fail here.

    What it misses

    Whether the human at the other end picks up. We don't run live dial-tests — that's an outreach activity, not a verification one.

  5. 5

    Current-employment confirmation

    The most expensive step and the one that separates our output from algorithmic data. For every record, a human researcher cross-references three sources within 7 days of delivery: LinkedIn (current title + company + last activity), the company website / staff directory, and one additional third-party source (varies by industry — board listings for healthcare execs, SEC filings for finance, public corporate filings for some C-suite roles). All three must agree on the role and company.

    What it catches

    Recent job-changers — the largest source of stale data. Promotions into different functional roles. Contacts who left the company entirely. Roughly 12–18% fail here on a typical run.

    What it misses

    Imminent job-changers — contacts still in the role today but leaving tomorrow. We re-verify any record that returns a bounce or auto-reply within 30 days, which catches most of these.

The replacement guarantee

If a delivered list bounces above the 4% threshold or returns more than 5% employment-stale records, we re-research the failing records at no charge or refund the proportional amount. This is published in the refund policy as a service-level commitment.

Replacement rate across the last 12 months has run consistently under 3% — meaning fewer than 3 in 100 records ever come back as inaccurate post-delivery.

What we don't do — by design

  • ·We don't algorithmically generate emails from name+domain patterns. Pattern-match is what produces 8–15% bounce rates.
  • ·We don't crowd-source. The data isn't a shared database; the same record isn't delivered to multiple customers.
  • ·We don't sell access to an underlying database. The deliverable is a CSV/XLSX matched to your spec — there's no platform login because there's no platform.

See it in your own pipeline

The five-step pipeline is what produces the 2–4% production bounce rate range customers see when they switch from scraped data to ContactKit lists. To test the difference, request a free sample against your ICP and run it on the same sending infrastructure.