← Blog Guide · 9 min read

How to Test a Job Change Data Provider on Your Own CRM: A Two Week Accuracy Benchmark

Short answer: the accuracy number a data vendor publishes cannot answer the question you are asking. UpLead advertises a 95%+ accuracy guarantee with real-time email verification and credits back for bounces. Cognism publishes a connect-rate claim on its phone-verified mobiles: 45% of calls reach the right person, against 18% on standard numbers. Take both at their word. They are still measuring the quality of a record at the moment you look it up.

What you need to know before you wire a job change feed into your CRM is different. When one of your contacts moves next month, will you hear about it at all, how many days will it take, and will the email in the payload actually reach them? None of those is an accuracy percentage. All three are measurable, on your own contacts, in about two weeks, with a spreadsheet.

Here is the protocol. Run it against any vendor, including us.

Why a published accuracy number misses

Accuracy is a snapshot metric: of the records you pulled, what share were correct at the moment you pulled them. Job change detection is an event metric, and it runs through four separate systems that all have to work in sequence. Something has to notice a candidate move, resolve that it is the same human as the record you already own, find a working address at the new company, and deliver the event while the move still matters. We walk through each of those layers in what it takes to build this yourself. A vendor can be genuinely excellent at the first and fail you on the second.

More often, though, the binding constraint is not accuracy at all. It is scope. ZoomInfo’s Tracker, for example, verifies job changes on a weekly cycle, which is a good cadence, but it watches the contacts a user has explicitly added to a tracked list, with a per-user cap documented at 5,000 (ZoomInfo help). The cadence is fine. The question is whether your closed-won contacts from three years ago are on anybody’s list, and they almost never are. We go deeper on that gap in does ZoomInfo track job changes.

So you are not testing a database. You are testing a pipeline, against the specific contacts whose moves are worth money to you.

The four numbers to score

MetricQuestion it answersHow to compute it
RecallOf the moves that really happened, how many did they report?confirmed moves reported / confirmed moves that occurred
PrecisionOf the moves they reported, how many were real?reported moves you verified as real / all reported moves
LatencyHow long after the move did the event arrive?median days from start date to event, not the average
ReachabilityDid the new email work?deliverable new addresses / reported moves

Use the median for latency, never the mean. One contact detected 200 days late will drag an average into uselessness and hide the fact that the typical case was fine, or the reverse.

And weight precision above recall, which is counterintuitive. You are not buying a dataset, you are buying rep attention, and rep attention is spent the moment it is abused. A feed with 70% recall and high precision gets worked every morning. A feed with 95% recall and mediocre precision gets ignored after the third dead lead, and then you are paying for the data and getting none of the pipeline.

Step 1: build the test set from contacts you already own

Pull 500 to 1,000 contacts from your CRM. Not a prospect list: closed-won accounts, closed-lost champions who liked you, and former users, oldest records first. Those are the records where a move converts, because the relationship already exists.

Sizing matters here. 2 to 3% of B2B contacts change jobs every month, so on 1,000 contacts you should expect roughly 20 to 30 real moves in a month and 10 to 15 inside a two week window. That is enough to score precision and latency honestly. It is thin for recall, because recall needs a known answer.

So seed a ground-truth subset. Pick 25 to 50 contacts whose moves you have already independently confirmed in the last 90 days, from a bounce, a reply from a new address, a CS note, a glance at their profile. Hold that list back and do not tell the vendor which records are in it.

One caution on building ground truth: only about 6% of customers tell a vendor they changed jobs. The other 94% never reach out. If you assemble your known-answer set exclusively from self-reported moves, you have filled it with the easy cases, the ones any system catches, and your recall number will be flattering and wrong. Go find a handful nobody told you about.

Step 2: run the backfill and the live window separately

These measure different things, and mixing them will confuse your result.

The day-one backfill tests the historical pile. Point the feed at your test set and see what it already knows. On a full 10,000-contact CRM, expect roughly 20% to surface as hot leads immediately, about 2,000 conversations, simply because moves have been accumulating unseen for years. Do not try to verify 2,000 records. Pull a random sample of 50 and verify those by hand. That sample is your precision number. Then score your seeded ground-truth list against the backfill: that is your recall number.

The two week live window tests the machine. Leave the feed running and score every new event as it lands: did it happen, how many days after the start date did it arrive, did the email work. On a 10,000-contact CRM, a working feed produces 200 to 300 new warm leads a month, so a two week window should surface something. If it surfaces nothing at all, that is a finding.

Step 3: keep the scoring sheet honest

One column per metric, one row per event: contact, confirmed moved (yes / no / unknown), vendor reported it (yes / no), days from start date to event, email status, and what you verified.

The rule that keeps the test fair is how you handle unknown. If you did not independently check a contact, that row is excluded from both the numerator and the denominator. Do not score it as a miss. Otherwise you will mark a vendor down for being right about something you never looked at, and you will quietly favor whichever vendor reported fewer events.

Step 4: read the failure, not just the score

A single number tells you which vendor won. The failure mode tells you whether the gap is fixable. Sort every miss into one of four buckets:

  • Reported a move that never happened. Candidate detection is too loose. Usually a scraped title edit, a duplicate profile, or a contractor listing a client as an employer.
  • Missed a move you confirmed. Either detection or identity resolution, and before you blame either, check whether that contact was in scope at all. List caps, seat caps and Salesforce-only syncs produce misses that look like bad data and are really bad coverage.
  • Caught it 60 days late. Cadence. Fine for a data hygiene project, useless for outreach, because the new champion has already picked their stack.
  • Right person, dead email. The email layer. Ask whether the payload carries a deliverability status, or whether you are being handed a pattern guess to send into.

Then put the failure to the vendor and ask which system produced it. A vendor running the whole loop can tell you. A vendor who answers “we will re-verify that record” is selling you a database and leaving the pipeline to you.

What a passing result looks like

Set your own bars, since they depend on what your reps will tolerate, but these are the four conditions worth insisting on:

  • Precision high enough that a rep works the queue without sanity-checking it first.
  • Median latency in days, which keeps you inside the champion’s first 90 days while the mandate and the budget are still new.
  • Every contact in the CRM in scope, not a list somebody remembered to upload.
  • A new email with an explicit status field attached, so sending is a decision and not a gamble.

Clear that bar and the economics take over, because this is the signal where the relationship already exists. Champion-sourced deals close at a 2.7x higher probability in roughly half the sales cycle. You have a 60 to 70% chance of selling to an existing relationship against 5 to 20% for a cold prospect, 65% of a company’s business comes from existing customers, and it is 6x more costly to acquire a new customer than to retain one. A benchmark that looks like a data-quality exercise is really a test of your warmest pipeline source.

Running this test against Champions

We would rather you ran the benchmark than took our number for it, so the feed is built to be audited. Every detected move arrives as an event carrying the person already matched to the record you track, old_company and old_title, new_company and new_title, the best known email with an email_status, fit scores against your own ICP rules, the owner and crm_record_id so the alert routes itself, and detected_at. That last field is the one that makes latency measurable instead of anecdotal. Push it to an endpoint you register, or poll GET /v1/changes with a since timestamp; the field list, delivery modes and signature scheme are on the API page.

On scope, the platform watches every contact in the CRM rather than an uploaded list, across Salesforce, HubSpot, Pipedrive, Zoho and others, with no app to install and no logins for reps. If you want to line vendors up before you test, the job change tracking landscape compares the main options on intent signals and CRM breadth. And because we expect the leads to convert, the signal carries a contractual ROI guarantee: if champion-sourced revenue does not reach 2x your annual service fee, you are covered under our terms. Among the compared tools, only Champions offers that.

Book a demo and we will run detection against your own CRM on the call, which gets you most of a backfill score in half an hour. Prefer to start by email? Reach us at [email protected].

Any vendor can quote you an accuracy percentage. Only your own contacts can tell you whether you will hear about the move in time to do something about it.

See champion tracking on your own data.

Book a demo and we'll show you how many warm opportunities are already sitting in your CRM.