Is a 1.5 Million Record Bullhorn Database Ready for AI? An Audit
An engineering recruitment firm wanted to know whether its Bullhorn database was ready for the AI tools it was being sold. The database held 1.5 million candidate records. The audit found that 79% of them had never been touched, that there was no way to tell an engineering candidate from anyone else, and that the firm's own aftercare rules were being missed on eight placements in ten. This is what a Bullhorn audit looks like when it reads the data rather than the process document.

The Challenge: A database that looked like an asset and behaved like a liability
The firm recruits into engineering and adjacent technical sectors and had been running Bullhorn for years. On paper the database was a serious asset: 1.5 million candidates, over a thousand active client managers, a documented set of Rules of Engagement covering ownership, aftercare and renewals. The firm was being offered AI matching and outreach tools that would run over all of it, and wanted an honest answer to whether the data could support them.
The difficulty was that nobody inside the business could see the whole picture. Consultants knew their own patches. Leadership knew the headline count. The Rules of Engagement said what should happen on every placement and every renewal, and nobody had checked whether it did.
There was no functional sector field, so the firm's core distinction between its markets did not exist in the system. Salary sat in two fields, one empty and one full of text. Location was missing on nearly half the sample. Consent was tracked as opt-out. And the firm was about to pay, per record, for AI tools to process a database that was mostly noise.
The brief was a mini-audit: a written report in under two weeks, fixed price, no workshops. Read the data, check it against the rules, say what is true.

What the Audit Did: Query the whole database, then go and look at the records
Two methods, deliberately different. Structural queries across all 1.5 million records to find the systemic patterns: how much of the database was dead, which fields were populated, how many hotlists existed, how many client managers had gone quiet. Then forensic spot-checks on small recent samples, ten to a hundred records at a time, to see what people actually did against what the firm's own Rules of Engagement said they should do.
What the structural queries found. 79% of the database had no notes and no activity at all. Of the records marked Active, 22% had not been touched in two years. There was no functional sector field, so a nuclear engineer and a marine engineer were structurally identical. Over 2,800 hotlists existed, which meant none of them were findable. 4,865 hiring managers who had placed with the firm had not been contacted in a year.
What the spot-checks found. Of ten recent placements, eight had no contact of any kind after the start date, against a rule that every placement gets monitor calls through the rebate period. Of 105 contractors finishing inside six weeks, 30 had no note in the last month, against a rule that every contractor is called six to eight weeks out. Two conflicting salary fields, one 90% empty and the other full of junk. Notice period populated on 2% of records. Job Title Sought unused entirely. Consent tracked as opt-out, not opt-in, on a database the firm wanted to email with AI.
The scorecard. Five components rated red, amber or green for AI readiness: data architecture red, data hygiene red, process compliance red, GDPR amber, client segmentation amber. The point of the scorecard was that leadership could read the verdict in thirty seconds and the reasoning in ten minutes.
The recommendations. Three phases. Clean first: archive the 1.1 million ghost records to a status excluded from search, and merge the salary fields into one numeric field. Then structure: a short mandatory sector picklist, retro-fitted by keyword campaign, so matching tools have something to match on. Then prevent: automations that turn the Rules of Engagement into tasks and escalations rather than memory, a renewals dashboard listing every contractor ending in thirty days with no note, and an opt-in consent field with a re-engagement campaign before any AI outreach begins.
Delivered as a short written report, priced as a fixed piece of work, in under two weeks from access to findings.

The value of an audit is that it replaces an argument with a number.
1.5 million records queried, with 79% identified as ghost data that could be archived out of the search index, which is also the volume most AI tools would have charged to process.
8 out of 10 sampled placements with no contact after start date, and 29% of expiring contracts with no recent activity, both of which are revenue sitting unprotected and both of which became automation recommendations rather than reminders.
4,865 lapsed hiring managers who had placed with the firm before and had not been contacted in a year, surfaced from a single query.
The firm got a prioritised plan it could act on in order, and a clear answer to the question it asked: not yet, and here is what would change that.
The client is anonymised. All figures are from the audit itself, from queries across the full database and from stated sample sizes.