Short answer: yes, in four different places, and that is the problem. ZoomInfo has a dedicated job change feature called Tracker, a set of Copilot employment-change signals, a Person Has Moved datapoint you wire up through RingLead, and webhooks that fire on generic contact updates. Each covers a slice. None of them is “watch every contact in my CRM and tell me when one moves,” because Tracker only watches the contacts a rep has explicitly named into a list, capped at 5,000 per user. If your champions are the closed-won contacts nobody has prospected in two years, they are almost certainly not on anybody’s tracked list.
So the useful question is not whether ZoomInfo detects job changes. It does, and the weekly verification cycle on tracked contacts is genuinely fast. The question is which of your contacts are in scope, and what it costs you in setup and credits to put them there. This post walks through each mechanism using ZoomInfo’s own documentation, then shows where the coverage gap actually sits.
One note on sourcing before we start. The competitor pages claiming ZoomInfo’s job change data is six to eighteen months stale are not accurate, and you should not plan around them. ZoomInfo documents a weekly cycle, and it is easy for them to rebut. The real limitation is scope, not cadence. Everything below is quoted from ZoomInfo’s help center, API docs, technical PDFs and SEC filings, with links.
Does ZoomInfo track job changes?
Yes. The named feature is Tracker, and ZoomInfo describes it this way:
“Workforce change is constant, people change companies, get promoted, or move internally. Each shift can impact your current business and future opportunities. Tracker for ZoomInfo helps you stay ahead of these shifts by automatically monitoring and updating you on job changes for your most important contacts.”
The operative phrase is “your most important contacts,” and ZoomInfo means it literally. The next paragraph sets the mechanics and the cap:
“Tracker automatically reviews your tracked contacts weekly and sends real-time alerts for verified job changes. These timely notifications ensure you can respond strategically to maintain relationships and act quickly on new opportunities. Tracker supports all your next steps, whether emailing the contact, exporting to your CRM, tagging them for future follow-up, or sharing with your team. You can track up to 5,000 contacts per user, with updates seamlessly integrating into your existing sales process to help you stay aligned and proactive.”
Tracker is also package-gated: “The Tracker feature is available exclusively with the Sales Elite+, Copilot Advanced, and Copilot Enterprise packages” (ZoomInfo Knowledge Center, How to Use Tracker, updated 9 April 2025).
Separately, ZoomInfo’s Copilot product surfaces employment change as one of its signal types. The API docs state that ZoomInfo “captures and curates over 50+ signal types” and define the relevant one directly: “An Employment Change signal indicates that a contact has joined, left, or changed roles at a company” (ZoomInfo docs, Signals and Insights).
Two of the curated insights built on top of those signals are aimed squarely at champion tracking, and it is worth quoting them because they are the closest thing ZoomInfo ships to what you probably want:
“Former Customer Contact Joined Account | A past customer (determined via won deals in CRM) has joined a new account, surfaces a potential champion who already knows the product; last 30 days; requires CRM integration”
“Key Personnel Changes | Contacts who received prior communication; last 30 days”
The 2025 Copilot release notes frame the first one in the language of this exact use case: “Automatically track customer champions as they change roles or move to new companies… This new ZoomInfo Copilot signal eliminates the manual work of tracking job changes and provides an immediate opportunity to engage with warm leads who are already familiar with your solution. Note: This feature requires an active CRM connection” (2025 ZoomInfo Copilot Release Notes, release dated 20 May 2025).
Credit where it is due: that is the right idea, and ZoomInfo now also sells a GTM Studio play by the same name as this category, offering “a library of pre-built plays, like inbound acceleration, champion tracking, and competitive displacement” (ZoomInfo, GTM Studio). If you already own the right ZoomInfo package and your CRM is one of the three it writes back to, start there before you buy anything else.
The catch is in the qualifiers, and they stack: that insight needs an active CRM connection, it reads won deals out of the CRM, it carries a 30-day window, and “the availability of Signals and Insights varies by your ZoomInfo package” (Signals and Insights). Which brings us to the thing that actually determines whether you see a given move.
How fast does ZoomInfo detect a job change?
Faster than its competitors claim, and the answer depends on which mechanism you are using.
Tracker: weekly. “Tracker automatically reviews your tracked contacts weekly and sends real-time alerts for verified job changes” (How to Use Tracker). The alert is real time once the weekly review finds the change, which is a meaningfully different thing from the review itself being real time.
Copilot insights: daily or weekly, by tier. “In AI Enterprise, changes are evaluated daily; in AI Advanced, they are evaluated weekly” (Signals and Insights). Note that the API docs use package names, AI Advanced and AI Enterprise, that do not match the Copilot Advanced and Copilot Enterprise names the help center uses. Confirm which one your contract actually says.
The underlying database: daily. “ZoomInfo data is highly dynamic, with contacts, companies and related data updated on a daily basis” (Webhooks Implementation Guide).
Slack alerts through RingLead: whatever you schedule. This one is the outlier, and it is the path many teams end up on. The documented setup ends with “Step 4: Schedule the Mass Enrich Task to Run Weekly, Monthly, or Quarterly. To actively track data changes from ZoomInfo, you’ll need to Schedule the Mass Enrich task to run regularly.” The same article warns that “clicking Run > Review will consume credits” (How to Set Up Slack Notifications for Contact/Company Changes, updated 31 July 2026). A quarterly batch is not a job change alert. On a quarterly cycle, the median move is six weeks old before anyone sees it, and the reason that matters is covered in job change outreach email templates: the window where “congrats on the new role” lands as a genuine note rather than a late one is short.
One more detail that catches people doing their own diffing. The lastUpdatedDate field is not a general change marker: “The lastUpdatedDate is populated (updated) only when one of the following fields changes: Name, Title, Work Email, Personal Email, Office Phone, Mobile Phone, LinkedIn URL” (Enterprise API Getting Started Guide). Company is not on that list. If you built change detection by polling lastUpdatedDate, you are detecting title and contact-detail edits and inferring the company move from them.
So cadence is not the weak point. Scope is.
How do you set up ZoomInfo Tracker, and what does that imply?
Here is the documented flow, verbatim, because the steps are the argument:
“1. Log in to ZoomInfo and navigate to the Tracker tab in the horizontal navigation bar. 2. Click the blue Upload List button. 3. In the pop-up window, choose your upload method: upload a .CSV file or select a saved list from My Lists. If you’re uploading a .CSV file, be sure to include at least one of the following combinations to map your data correctly: (1) first name, last name, and URL; (2) first name, last name, and company name; (3) ZoomInfo Person ID; or (4) email address. 4. Map the fields from your list to the corresponding ZoomInfo fields. 5. Click Submit to process your list.”
The alternative is selecting contacts by hand out of search results: “Select the checkbox next to each contact you’d like to track. Click the Track button at the top of the search results to add them to your Tracked Contacts” (How to Use Tracker).
Read that as an operating model rather than a tutorial and three consequences fall out.
It is opt-in per contact, so coverage is a human decision. Nothing watches your CRM by default. A contact is monitored because a person decided to monitor them, which means your coverage is the union of what your reps remembered to upload. ZoomInfo’s own guide concedes the maintenance this implies, advising readers to “audit it quarterly. Add champions from recently closed deals, drop contacts now outside your ICP” (ZoomInfo, Job Change Alerts, updated 10 September 2026). A signal that needs a recurring human audit to stay complete is a workflow, not an automation.
The cap is per user, which fragments the picture. 5,000 contacts per user is generous for one rep’s book and small for a company’s install base. Worse, it is scoped to the user, so “every contact who has ever bought from us” is not a single object anyone owns. It is twelve overlapping lists of varying freshness.
The upload keys are the same keys a job change breaks. The accepted combinations are name plus URL, name plus company name, Person ID, or email address. A move invalidates the email and the company at once, which is the central difficulty of this problem, and it is why ZoomInfo’s Person Has Moved datapoint requires you to deliberately withhold the identifier: “Use the ZoomInfo Contact API, but remove the ‘ZoomInfo Contact ID’ from the input fields. This is important because PHM (Person Has Moved) relies on comparing job information to determine if a person has moved. If you include only the Contact ID, ZoomInfo can’t make that comparison and will return an ‘Uncertain’ value” (How to Set Up the Person Has Moved Use Case, updated 13 June 2026). PHM returns one of three values, “Yes, No, or Uncertain,” and the article’s full build runs through two enrichment packages, two Mass Enrich tasks and a list import. We go deeper on why identity resolution is the hard part of this whole category in build versus buy on job change detection.
The arithmetic is what makes the opt-in model expensive. 2 to 3% of B2B contacts change jobs every month. On a 10,000-contact CRM, roughly 20% surface as hot leads on day one, about 2,000 people, and then 200 to 300 new warm leads arrive every month after that. Any contact outside the tracked lists contributes to that flow and produces no alert.
Why do contacts who already left still show as current?
Because the weekly verification cycle applies to tracked contacts, not to the whole database. This is the distinction that explains almost every complaint you will read about ZoomInfo’s job change data, and getting it right matters if you are building an internal case.
A record you pull out of general search was last validated whenever ZoomInfo’s pipeline last had enough signal to validate it, and ZoomInfo is candid that validation and update are different events: “The validDate is updated when ZoomInfo has enough information to consider that profile to be valid. In some cases, the last date the profile was updated does not reflect in the validDate because there may be more signals required by ZoomInfo to consider that information/profile valid” (Enterprise API Getting Started Guide).
To be fair to the underlying data operation, it is a serious one. ZoomInfo publishes “500M+ verified professional profiles, 158M+ locations, 122M+ company records” and “1.5B+ Data Points Processed Daily” (ZoomInfo, Our Data). Its 10-K describes the method: “We aggregate and extract distinct types of data… from millions of public and proprietary sources. Our evidence-based ML algorithm scores, ranks, and makes determinations about these billions of data points each week,” supported by “a team of research analysts and data scientists” in a “human-in-the-loop” role (ZoomInfo FY2025 Form 10-K).
The same filing discloses something most buyers never read, and it is genuinely in ZoomInfo’s favour: “Our standard contract with customers includes a quality guarantee pursuant to which a customer would have the right to terminate its subscription and we could be obligated to reimburse certain payments if the accuracy of our data were to fall below a certain threshold.” The threshold is not disclosed. Worth asking for in writing.
So the honest framing is not that ZoomInfo’s data is old. It is that a validated profile and a monitored contact are two different products, and only the second one tells you the week someone moved.
Does ZoomInfo have a job change API or webhook?
No job-change-specific endpoint, and no job-change event type. There are webhooks, but they fire on a single generic event and you do the diffing.
From the implementation guide: “Available to organizations with the Scaling API, the Monitoring API is a set of endpoints that allows for the configuration of webhooks subscriptions.” Supported object types are “Contact and Company,” and on events the guide is unambiguous: “Currently, the only supported event is Update” (Webhooks Implementation Guide).
You can ask for just the deltas, “Only the changed attributes for a contact or company… Along with what’s changed, each record will also include default fields that support mapping the profile (ID, email, domain),” and ZoomInfo’s own documentation uses a job change as the motivating example: “when a contact you have previously enriched has a job title change in the ZoomInfo database, you can be instantly notified using a webhook versus manually enriching the record to pick up the change” (Enterprise API Getting Started Guide).
That works. Budget for four constraints before you design around it, all quoted from the webhooks guide:
- “To use the Monitoring API/webhooks, you must have access to the Scaling API.” A separate entitlement, not a feature flag.
- “To subscribe to events, you must have already enriched at least one contact or company record using the API.” You can only monitor what you have bought through the API. Records “enriched from the ZoomInfo platform (OS’s) cannot be enriched using webhooks.”
- A rolling 12-month window. “You will only receive updates on records that you’ve purchased using the API within the past 12 months.” The Enterprise guide spells out the consequence: “when a record under management reaches its limit (365 days), you’ll have to re-enrich it on day 366 to continue receiving updates through webhooks.” Champion relationships outlive 365 days, so this is a recurring re-enrichment job you have to remember to run.
- “The maximum number of profiles delivered in a single webhook payload is 25.” Fine at job change volumes, relevant for backfills.
Deliveries are authenticated with a header token: “When data is sent to your target URL using a POST request, this verification token will be included in the request header (x-zoominfo-token).”
On the signal side, access is through search endpoints rather than a change feed: “You can access Signals across all companies and contacts via Search Scoops, Search News, and Search Intent APIs, or only for the target accounts configured in Copilot (Copilot Signals) via the Get Insights by Type API” (Signals and Insights). Note that the insights endpoint is getcompanyinsightsbytype, scoped to accounts you configured in Copilot, so it is not a general contact-level job change feed either.
Net: you can build a job change pipeline on ZoomInfo’s API. You will be subscribing to Contact → Update, diffing payloads to work out which updates were moves, and maintaining a re-enrichment cycle so records do not fall out of the 12-month window. That is a build, and the four systems a build commits you to apply the same way.
How do the alerts reach your CRM?
This is where it pays to be precise, because ZoomInfo maintains two different lists of supported CRMs and they are easy to conflate.
CRM writeback: Salesforce, HubSpot and Microsoft Dynamics. “This update applies to Copilot Enterprise and Elite customers using CRM Writeback with Salesforce, HubSpot, or Microsoft Dynamics,” and elsewhere, “connect your preferred CRM system (Salesforce, HubSpot, or Microsoft Dynamics) and use the Advanced Sync feature to ensure data accuracy” (2025 Copilot Release Notes). ZoomInfo’s own guide repeats the narrower pair for this use case: “ZoomInfo integrates directly with Salesforce and HubSpot, with Slack routing available for real-time notifications when an alert fires” (Job Change Alerts).
Chrome extension signal notifications: nine tools, display only. “Building on our initial support for Salesforce and HubSpot, we now deliver critical buying signals across nine major sales and marketing tools,” adding “Marketo, Microsoft Dynamics, Outreach, Pipedrive, Salesloft, SugarCRM, Zoho.” The mechanism is explicit: “The ZoomInfo Chrome Extension now automatically surfaces relevant Copilot signals from the past seven days while you’re viewing supported objects in supported tools,” and the rep has to “ensure you’ve installed and pinned the ZoomInfo Chrome Extension” (2025 Copilot Release Notes).
The difference matters more than it looks. If you run Pipedrive or Zoho, job change signals render in a browser overlay for reps who have the extension installed and pinned. They are not written into the contact record. That means the move is not a field you can build a workflow on, not a filter you can report off, and not visible to anyone who did not install the extension. Our guides to building the alert natively in Pipedrive and Zoho assume the opposite: that the move lands on the record as data.
The Person Has Moved automation narrows further. ZoomInfo publishes RingLead use-case articles for exactly two destinations, Salesforce and HubSpot. There is no equivalent for Dynamics, Pipedrive or Zoho.
So the practical CRM matrix for job changes is: full writeback on three, a documented moved-person automation on two, and an overlay on the rest.
Job change alerts or buying intent signals: which is this?
Worth separating, because ZoomInfo sells both and they get bundled in the same sentence.
Intent is inference from anonymous behaviour at an account: ZoomInfo tracks “4,500+ Intent Topics” and “85M+ Weekly Intent Signals” across “1.2M+ Accounts Monitored Weekly” (Our Data). A job change is a confirmed event about a named person who already knows your product, which is a categorically different kind of evidence. We work the comparison through properly in intent data versus job change data, but the short version is that intent tells you an account might be shopping, and a champion move tells you a specific person who already chose you once now has budget somewhere else.
The numbers are why the second one converts. 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 acquiring a new customer costs 6x more than retaining one. And the signal is invisible without detection: only about 6% of customer contacts tell a vendor they changed jobs. The other 94% never reach out.
What to test before you decide
Four checks, in order. Each one is a number, not an opinion, and together they settle it in about a week.
- Measure your real coverage, not your license. Export closed-won contacts from the last three years. Count how many sit on somebody’s Tracker list today. That ratio, not the 5,000-per-user cap, is your current detection rate. Teams are routinely surprised that their oldest and most valuable relationships are the least monitored, because nobody has prospected them recently.
- Confirm the writeback path for your actual CRM. If you are on Salesforce, HubSpot or Dynamics, you have writeback. If you are on Pipedrive, Zoho, SugarCRM or anything else, confirm in writing whether the move lands on the record or only in the Chrome extension overlay. A signal you cannot build a workflow on is not integrated.
- Price the whole workflow, including credits. Exports and Mass Enrich runs consume credits, and the RingLead path requires scheduled runs to keep working. Ask for the all-in number: package, seats for everyone who needs alerts, credits at your contact volume, and whether Scaling API access is included if you intend to use webhooks.
- Ask for the accuracy threshold in the quality guarantee. The 10-K confirms one exists. The number is not public. It is a reasonable thing to request before signing.
How Champions handles the same job
The design difference is one sentence: there is no list to curate.
Champions monitors the contacts already in your CRM, so coverage is not a function of what anyone remembered to upload. Every closed-won contact is in scope from day one, which is exactly the population that an opt-in model under-covers, because those records are old and nobody is prospecting them. On a 10,000-contact CRM that means roughly 2,000 hot leads surface immediately and 200 to 300 warm leads arrive each month, without a quarterly list audit.
Three more differences that map onto the gaps above.
Any CRM, written to the record. Salesforce, HubSpot, Pipedrive, Zoho and others get the move written back as data, not rendered in a browser overlay. There is no app for reps to install and no new logins, which also means coverage does not depend on whether a given rep pinned an extension. The how it works page walks the monitoring end to end.
A real job change event, not a generic update you diff. Each detected move arrives as a play.created 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 so you are not sending to a guess, account_fit and contact_fit scored against your ICP rules before the event is sent, the owner and crm_record_id so the alert routes itself, and detected_at for your SLAs. Push to an HTTPS endpoint you register or poll GET /v1/changes with a since timestamp. Deliveries are signed and event_key is your dedupe key, so replays are safe. There is no separate API entitlement to buy, no requirement to have purchased a record through the API first, and no 365-day re-enrichment treadmill to keep a contact in scope. The full contract is on the API page.
Intent to move, not only the completed move. Champions monitors intent-to-move signals as well as confirmed changes, which shifts the outreach window earlier than any post-hoc detection can, whatever its verification cadence.
And the commercial structure differs in kind. ZoomInfo’s disclosed guarantee covers data accuracy, with an undisclosed threshold. Ours covers the revenue outcome: if champion-sourced revenue does not reach 2x the annual service fee, you are covered under our terms. Among the job change tools teams shortlist, that guarantee is specific to us. The job change tracking comparison lays the options side by side, and RevOps use cases covers how to report the resulting flow as its own forecast category rather than burying it in general outbound.
The bottom line
- Yes, ZoomInfo tracks job changes, through Tracker, Copilot employment-change signals, the
Person Has Moveddatapoint and generic update webhooks. - Cadence is not the weakness. Tracker verifies tracked contacts weekly and the database updates daily. Ignore the competitor claims about six-to-eighteen-month staleness; they are not supported by ZoomInfo’s documentation.
- Scope is the weakness. Tracker watches only contacts a user named into a list, capped at 5,000 per user, with a quarterly audit recommended by ZoomInfo itself. Contacts outside those lists generate no alert, and your least-prospected closed-won records are the likeliest to be missing.
- The CRM story splits three ways. Writeback on Salesforce, HubSpot and Dynamics. A documented moved-person automation on Salesforce and HubSpot. A Chrome extension overlay for Pipedrive, Zoho, Outreach, Salesloft, Marketo and SugarCRM.
- There is no job change API. Webhooks support exactly one event,
Update, require Scaling API access, only cover records bought through the API, and drop records at 365 days unless you re-enrich. - The decision is a coverage audit. Count how many of your closed-won contacts are monitored today. That number, not the feature list, is what you are buying or fixing.
Want to see how many of your closed-won contacts would be in scope automatically? Book a demo and we will run a match-rate test on your own list, which is the number that settles this either way. If you would rather just ask a question first, email [email protected].