Per the comments segment here's what I would suggest :
Since this is a cronjob that, per your admission; runs twice a day so a user "may or may not be prompted immediately" is perfectly fine with the exception that you should really not focus so much on "data integrity" (i know my teeth are grinding too, hear me out) initially but rather, "human willingness to correct"
There are 2 possible outcomes if you present a member of the sales staff with a list of say ..... 2500 contacts that have conflicting or out of date records:
1: They close the system and don't use it for the next week
2: They quit.
I think a better thing to do - since we're (you and I) are not only user experience advocates but also technical professionals - derive a "priority" queue and serve sales agents maybe a batch of 10 records at a time. How you prioritize these records is likely dependent on how your organization ABC's the contact / lead qualifications.
That being said - an alternate is "when this system goes live" you have a 4hr space of time dedicated to learning and updating. Subsequent updates would be on a case by case basis ( again - depending on your ABC criteria, some accounts may want to be validated more often than others.. etc.. )
The prior is less daunting to the user (sales rep) and the later is better for IT (all data gets updated en masse initially and then goes into it's lifecycle mode there after )
If you have a contact db of say ..... 45k and you have 400 sales reps (arbitrary just trying to suggest volume) - perhaps a hybrid approach of : training and updating ALL "A" level accounts instantly is the best approach and then B and C can follow "at leisure" there after.
Of course, if and when you present the user with the "10 or less" list of stale account information - you should also give them the issue to tackle the "next 10" that they might be responsible for. Pagination of sorts but not a strict requirement
This way - humans that like doing the bare minimum engage in that minimum and your records are updated eventually and likely the man hours spent are used better (assuming your ABC account logic is good, then the A's will always be current, the B's only a marginal chance of stale, and the C's, well, the C's can wait)