Listen to this article
In this issue - 4 parts
Part 1 of 4
The AI Was Not the Clever Part of This Breach
What Happened
McHire sits at the front door of one of the largest hourly hiring systems in the world. More than 90 percent of McDonald's franchisees use the platform. A job seeker finds an opening, then chats with Olivia, a recruiting assistant built by Paradox.ai. Olivia collects the applicant's name and contact details, asks about available shifts, moves the person through a Traitify personality test, and keeps the conversation attached to the application for restaurant staff to review.
That experience looks like an AI story because a chatbot mediates it. The security failure behind it was much older and much less exotic. Researchers Ian Carroll and Sam Curry found a sign-in path for Paradox team members next to McDonald's single sign-on flow. They tried 123456 as the username and 123456 as the password. The credentials worked. According to reporting on the incident, they belonged to a test account that had been dormant since 2019.
The account opened a test restaurant's administrative view. By itself, that was already a serious identity-control failure: a legacy account, a known-default credential pattern, and meaningful access surviving for years. But it did not yet establish the story's enormous potential scope. That came when the researchers applied to one of the test restaurant's jobs, opened their own Olivia conversation from the restaurant side, and watched how the browser fetched the candidate record.
The request used an internal endpoint identified by Carroll as PUT /api/lead/cem-xhr. Its key parameter was a lead_id. Their test applicant's identifier was about 64,185,742. When they decremented that number, the server returned another applicant's record, including unmasked contact data. There was no object-level authorization decision confining the logged-in account to the test applicant or an approved restaurant population.
One old credential crossed the identity boundary. One insecure direct object reference, or IDOR, erased the boundary between applicant records. Together they created a repeatable path across an estimated 64 million applications containing names, email addresses, phone numbers, addresses, availability, application-state history, form inputs, raw Olivia chats, and authentication tokens that could sign into the applicant-facing interface.
The fact pattern, without the headline compression
- Potential scope: the sequential identifier path led the researchers to estimate that roughly 64 million application records were reachable.
- Confirmed research access: Paradox later said five candidates had information viewed during the incident, all by the researchers.
- Known exploitation: Paradox said its records showed no third party accessed the test account, and reporting found no indication that criminals discovered the flaw before remediation.
- Security conclusion: absence of known abuse does not reduce the authorization failure. It changes the incident-impact statement, not the control finding.
"Without much thought, we entered '123456' as the username and '123456' as the password and were surprised to see we were immediately logged in!"
What "64 Million" Means, and What It Does Not
Breach headlines tend to collapse three different quantities into one: records that a vulnerability could reach, records researchers inspected to prove the finding, and records an unknown attacker actually stole. They are not interchangeable. Here, the high sequential lead_id and the ability to move from one applicant to another supported the estimate that the path covered about 64 million applications. That number describes exposure scope: how far an unauthorized caller could potentially travel.
It is not evidence that 64 million distinct people were compromised, nor proof that 64 million records were downloaded. One person can submit more than one application, and the sources do not establish that every numeric identifier maps to a unique applicant. The researchers limited their inspection, and Paradox's account says five candidates' information was viewed by them. No source provided evidence of malicious mass extraction.
Precision does not make the incident smaller. A door that can open onto millions of sensitive records is a critical design failure even when the people who discover it are careful and the vendor closes it quickly. Security programs are supposed to evaluate the credible blast radius before an adversary demonstrates it. Waiting for proven theft turns a preventive control question into an incident-response question.
The right statement is therefore two-sided: the McHire flaws put an estimated 64 million application records within a repeatable unauthorized path, while the available evidence indicates limited researcher access and no known criminal exploitation. Good governance can hold both facts at once.
Why You Should Care Even If You Do Not Run a Hiring Bot
The first lesson is that an AI system is never only a model. McHire was also an identity service, an administrative application, a multi-party vendor relationship, a backend API, a repository of private conversations, and an account-recovery mechanism. The model could have behaved perfectly and the incident path would still exist. Prompt injection against Olivia reportedly went nowhere; ordinary application-security testing found the consequential weakness.
The second lesson is about trust. Applicants did not choose Paradox, design the retention model, or negotiate which restaurant users could see their data. They entered information because they believed they were applying to McDonald's. The recognizable brand collected the trust; the vendor platform processed the data; franchisees used the workflow. Accountability has to span all three. A contract can allocate duties, but it cannot make the applicant's risk disappear.
The third lesson is that scale converts familiar bugs into governance events. A weak test login on an isolated demonstration system is bad hygiene. A weak login chained to a production-adjacent API with sequential access to a nationwide applicant corpus is a different category of exposure. Risk is not the sum of isolated findings. It is the authority those findings create when combined.
Every enterprise deploying AI should ask the same question of its surrounding application: if one forgotten identity is compromised, what can the next trusted service be persuaded to return? The answer must be enforced at every object boundary, not assumed from the login screen.
Coming up in Part 2 - how a failed prompt-injection experiment led to the real backend weakness, why authentication and authorization answered different questions, and the exact disclosure timeline that closed the path.
Part 2 of 4
Two Old Failures Became One Massive Access Path
What you missed: McHire's estimated 64 million records describe the potential reach of a sequential IDOR, not confirmed mass theft. The verified chain was a 123456:123456 legacy account, a missing per-record authorization check, limited researcher validation, and rapid remediation after disclosure.
The Research Path Started With a Real Application
Carroll and Curry did not begin with inside knowledge. They saw complaints about Olivia producing nonsensical answers, found the public McHire job site, and applied to a local McDonald's. Olivia collected their email, phone number, and shift availability, then moved them to a personality test that asked them to classify statements such as whether they enjoyed overtime.
They first tried the kind of attack most people now associate with AI systems: prompt injection. That route was unproductive. Olivia appeared restricted to preset responses, and the candidate-side workflow stalled at the point where a human would review the application. This detail matters. It is evidence that the obvious AI attack surface was not the useful path, while a conventional administrative surface nearby still accepted the weakest imaginable credentials.
After the default login opened the test restaurant, the researchers could observe the hiring workflow from both sides. They submitted an application to a test posting and viewed their own in-progress Olivia conversation from the administrative inbox. That controlled, self-generated record provided a legitimate reference request. Comparing what the browser sent for their record with what the server returned for a neighboring identifier exposed the authorization gap.
This is a useful testing pattern for defenders: create two controlled users in different authorization scopes, record a valid request for each, then cross the identifiers, sessions, roles, and tenant context. The important question is not whether the identifier is hard to guess. It is whether the server proves that the current caller is entitled to the requested object.
Step 1 - Establish a controlled applicant
The researchers applied to a test job so they could observe their own record without exposing someone else's data.
Step 2 - Observe the admin request
The restaurant-side conversation view called PUT /api/lead/cem-xhr with the test applicant's lead_id.
Step 3 - Change only the object
Decrementing the identifier returned another real applicant with unmasked contact data instead of an authorization denial.
Step 4 - Limit proof and disclose
The researchers checked a small sample, reportedly contacted applicants to validate that the data was genuine, then began disclosure once they understood the potential reach.
An ID Is an Address, Not an Authorization Decision
Authentication and authorization are frequently treated as one control because both appear near the word "access." They answer different questions. Authentication establishes who presented the request. Authorization decides whether that identity may perform this action on this object for this purpose. The McHire session could be authentic and the request could still be unauthorized.
The lead_id told McHire which record to retrieve. It did not prove the restaurant, test account, support user, or current session had a relationship with that applicant. In a secure design, the server derives the allowed restaurant or tenant scope from trusted session context, queries only inside that scope, and denies a requested object that falls outside it. The client should not be able to expand authority by editing a number.
Replacing sequential numbers with random identifiers would make enumeration less convenient, but it would not repair the control. A leaked link, browser history entry, log line, support ticket, or guessed identifier could still expose the object. Randomness is defense in depth. Per-object, server-side authorization is the boundary.
The response payload also matters. Returning raw chat messages and an applicant authentication token alongside ordinary contact fields increased the consequence of each unauthorized read. Data minimization is not only about storage. It is also about ensuring an endpoint returns no more than the caller needs for the approved task.
| Control question | What the system appeared to rely on | What it needed to prove | Safe failure |
|---|---|---|---|
| Who are you? | Legacy username and password | A current, strongly authenticated, approved identity | Reject the login |
| Which tenant are you serving? | Access to a test restaurant inbox | Server-derived restaurant and client scope | Return no cross-scope records |
| May you read this applicant? | Possession of a valid lead_id | A role and purpose tied to this exact record | Deny every unauthorized object |
| What data may you receive? | A broad candidate response object | Only fields required for the approved task | Omit transcripts, tokens, and excess PII |
Disclosure and Remediation Timeline
The primary disclosure records a fast initial response once the report reached the right people. It also records a preventable coordination problem: the researchers could not find a public security contact for the affected service and resorted to emailing people until the report reached an owner. A good response clock cannot start until a researcher knows where to send the evidence.
| Date and time, ET | Recorded event | Governance signal |
|---|---|---|
| June 30, 5:46 PM | Carroll and Curry disclosed to Paradox.ai and McDonald's. | A clear intake channel should already identify the accountable responder. |
| June 30, 6:24 PM | McDonald's confirmed receipt and requested technical details. | Acknowledgment was rapid after the report arrived. |
| June 30, 7:31 PM | The 123456 credentials no longer worked. | Identity containment removed the known entry path. |
| July 1, 9:44 PM | The researchers followed up on status. | Containment and full remediation need separate confirmation. |
| July 1, 10:18 PM | Paradox.ai confirmed the reported issues were resolved. | Closure should include validation of both identity and object authorization. |
Why the Two Findings Multiplied Each Other
Security findings are often triaged one ticket at a time. That habit can understate combined authority. A weak password finding might be classified around the privileges visible in the test account. An IDOR might be classified around one unauthorized record. The real risk emerged from the path: the weak identity supplied a session, the admin workflow revealed the API shape, the IDOR supplied cross-record reach, and the response supplied both sensitive data and reusable tokens.
No individual step needed to provide total control. The system assembled it. This is why modern validation has to consider trajectories, even when the actor is a human researcher and the application is not an autonomous agent. The question is not merely whether the login was accepted or whether one API request was syntactically valid. It is whether the sequence stayed within the purpose and population approved for that identity.
Rate limits and enumeration alerts would have reduced the blast radius, but they are compensating controls. They should detect a caller walking record IDs in sequence, requesting an unusual volume, or collecting tokens. They cannot replace authorization. A slow attacker, a distributed attacker, or an attacker who targets selected people can remain below a volume threshold. Every object still needs an explicit allow decision.
The dormant account also shows why identity reviews must test effective access, not merely list accounts. "Test," "legacy," and "inactive" are descriptions, not controls. If an identity can authenticate and reach a production-linked workflow, it remains part of the live attack surface until the system expires or disables it.
Our Take
McHire is not evidence that hiring chatbots are uniquely unsafe. It is evidence that familiar application controls become more consequential when AI products gather intimate, free-form data at enormous scale. The modern interface expanded collection and trust; old identity and authorization failures exposed the result.
The governing unit must be the entire service path: user, agent, administrator, vendor, session, API request, target object, response fields, and downstream action. If any layer assumes that another layer already checked authority, the gap becomes a route.
Coming up in Part 3 - the real numbers behind the headline, what each exposed data class enables, how to separate exposure from confirmed impact, and why outsourcing the platform does not outsource accountability.
Part 3 of 4
The Data, the Stakes, and the Ownership Gap
What you missed: the default login and IDOR were not two isolated tickets. They formed a trajectory from a legacy identity to a broad applicant response containing PII, private chat content, application history, and sign-in tokens. Fast remediation limited known impact, but it did not erase the credible scope.
By the Numbers
90%+
of McDonald's franchisees use McHire
~64M
applications estimated within the reachable ID space
2019
year associated with the dormant test account
5
candidate records Paradox said researchers viewed
Potential scope and confirmed access are deliberately shown as different measures.
Exposure Scope Is Not the Same as Confirmed Impact
The strongest incident analysis separates what a flaw made possible from what evidence shows occurred. Overstate impact and the analysis becomes easy to dismiss. Understate reachable scope because no criminal was caught and the organization learns the wrong lesson. The table below keeps the categories separate.
| Question | Supported conclusion | Unsupported leap | Why the distinction matters |
|---|---|---|---|
| How far could the API path reach? | Researchers estimated roughly 64 million application records based on the sequential record space. | Every number represented a unique person. | Applications, records, and unique applicants are different units. |
| What did the researchers verify? | They accessed a limited sample; Paradox said five candidates' information was viewed. | Researchers downloaded the entire corpus. | Responsible proof can establish a critical flaw without maximizing harm. |
| Was there malicious exploitation? | No supplied source found evidence of third-party access or criminal exploitation. | Absence of evidence proves no one ever queried the endpoint. | Confidence depends on logging quality, retention, and the paths investigators could review. |
| Was this an AI-model failure? | The decisive path was weak authentication plus missing API authorization around an AI service. | Olivia autonomously leaked the database. | The remedy belongs in identity, application, API, vendor, and data governance. |
Why These Data Types Matter Together
Contact and address data
Names, email addresses, phone numbers, and addresses provide direct identifiers and communication channels. Combined with knowledge of a job application, they support highly credible phishing, text-message scams, and impersonation.
Application and availability history
Shift preferences, candidacy states, form inputs, and personality-test information add context about employment goals and availability. That context makes a fake recruiter message more believable and can expose sensitive inferences about a person's circumstances.
Raw Olivia conversations
Free-form chat can contain details the structured application never requested. Conversation data is difficult to classify field by field, which is why access control, retention limits, and response minimization are especially important around AI interfaces.
Applicant authentication tokens
The primary disclosure says the response exposed a token usable to enter the consumer interface as the applicant. That changes the finding from passive record disclosure to potential account impersonation and access to whatever the applicant session could reveal or change.
Risk Severity Analysis
Severity should reflect the credible chain, not a sensationalized victim count. The primary controls below are ordered by how directly they enabled unauthorized access and how broadly they could affect the business.
| Risk category | Severity | Evidence | Business consequence |
|---|---|---|---|
| Object-level authorization failure | Critical | Changing lead_id returned another applicant's unmasked data. | A single session could potentially traverse a nationwide applicant corpus. |
| Legacy administrative identity | High | The admin path accepted 123456 as both username and password for a dormant test account. | Unauthenticated outsiders could obtain a valid administrative foothold. |
| Token exposure and impersonation | High | Applicant records included a token usable in the consumer interface. | Record access could become account access, increasing privacy and integrity risk. |
| Excessive response data | High | One path returned contact fields, application state, inputs, chats, and tokens. | Each unauthorized request exposed multiple forms of sensitive context. |
| Disclosure intake gap | Medium | Researchers reported difficulty finding a public security contact. | A valid critical report can lose time before it reaches an empowered owner. |
The Vendor Operated the Platform. The Brand Still Owned the Trust.
McDonald's emphasized in public reporting that the platform was operated by a third-party vendor. That is a relevant technical fact, not a complete governance answer. Applicants encountered a McDonald's hiring process. Franchisees depended on McHire. Paradox built and operated the system. Each party held a different form of authority, and no party could protect the applicant alone.
The enterprise customer must validate the vendor's identity lifecycle, object-authorization design, logging, data minimization, vulnerability intake, incident response, and evidence of remediation. The vendor must build and operate those controls. Franchisees need roles limited to their legitimate candidates and tasks. The brand needs a way to see whether controls that protect people applying under its name remain effective over time.
Annual questionnaires are poorly matched to this risk. A test account can outlive a review. A new endpoint can introduce an IDOR between assessments. A response object can accumulate fields as product teams add features. Governance therefore needs recurring technical evidence: account inventories, expiry tests, authorization test results, access telemetry, data-flow changes, and closure proof for critical findings.
Paradox said it promptly remediated the vulnerabilities, committed to additional review, and later launched a bug bounty program. Those are constructive responses. The deeper standard is whether the organization can continuously demonstrate that the same class of authority failure cannot reappear elsewhere in the platform.
Why This Pattern Keeps Recurring
- 1.Test access outlives the test. Teams create exceptions to move quickly, but deletion and expiry are treated as cleanup rather than part of the original change.
- 2.Authentication is mistaken for authorization. Once a caller holds any valid session, backend code trusts user-supplied object identifiers instead of checking the relationship again.
- 3.Product boundaries do not match data boundaries. The chatbot, admin inbox, support path, API, and applicant account may be owned by different teams even though they expose the same person's data.
- 4.AI attention crowds out application basics. Prompt injection and model behavior deserve testing, but they do not replace credential controls, tenant isolation, secure APIs, and least-data responses.
- 5.Vendors are reviewed as documents, not live systems. A point-in-time attestation cannot show whether a dormant identity still works or a new endpoint authorizes every object today.
Impact
One legacy identity could be chained to missing object-level authorization, creating a repeatable path across an estimated 64 million applications and putting applicant contact data, hiring history, private chats, and sign-in tokens at risk.
The impact statement describes the credible exposure path, not confirmed mass exfiltration. Paradox said the researchers viewed five candidates' information and that its records showed no other party used the test account.
Coming up in Part 4 - a concrete control program for identity lifecycle, object authorization, response minimization, behavior monitoring, vendor proof, recovery, and how the full McHire path maps to AuthorityGate's eight gates.
Part 4 of 4
Put Authorization Back in the Loop
What you missed: the potential scope was enormous, confirmed access was limited, and both facts matter. The highest risks were missing object authorization, a legacy admin identity, exposed sign-in tokens, and an overbroad response. Vendor operation divided duties but did not divide the applicant's trust.
A Practical Action Plan
The response is not to abandon conversational hiring or to add a generic "AI security" control. It is to make authority explicit throughout the service. Identity, object, field, purpose, volume, and time are separate dimensions. A request clears only when the system can validate all of the dimensions that matter for the action.
Make every nonhuman and privileged identity expire
Inventory vendor, test, support, service, and administrative identities across the hiring stack. Record an owner, purpose, environment, creation date, last use, authentication method, permissions, and expiration for each one. Block default-password patterns and require phishing-resistant multifactor authentication where interactive admin access remains necessary.
Do not rely on an account being labeled dormant. Exercise the disablement control and attempt login. An account has left the attack surface only when the system proves it cannot authenticate.
Centralize object authorization on the server
Define one reusable policy for applicant access and apply it to every endpoint, export, background job, support tool, and administrative view. Derive tenant and restaurant scope from trusted identity context. Check the role, relationship, purpose, and requested object on every call, then default to deny.
Test horizontal access between two ordinary users, vertical access between roles, and cross-tenant access between franchisees or clients. Repeat after every relevant API or permission change.
Minimize the response, not only the database
Create field-level response models for each task. A scheduler may need availability without raw chat history. A restaurant reviewer may need candidacy state without an applicant sign-in token. A support operator may need a masked contact value unless a separately approved workflow requires disclosure.
Treat authentication tokens as credentials, not candidate attributes. Keep them out of general data objects, scope them narrowly, shorten their lifetime, rotate them after exposure, and log impersonation as an exceptional action.
Monitor the trajectory as well as the request
Alert on sequential identifiers, unusual record volume, high ratios of denied to allowed requests, access across many restaurants, retrieval outside approved support windows, and repeated responses containing token fields. Bind the telemetry to the identity, tenant, purpose, and change record.
Use monitoring as a second line, not as permission. A normal-looking request for the wrong person's record must still fail even if it is the first request of the day.
Demand live evidence from the vendor chain
Contract terms should identify ownership for identity lifecycle, tenant isolation, secure development, penetration testing, retention, vulnerability intake, incident notification, log access, token handling, and remediation proof. Then verify the controls through evidence rather than treating the signed clause as execution.
Review material platform changes, new data fields, new support paths, and new integrations as control changes. A vendor review is a continuing operating process, not a procurement artifact.
Rehearse containment and scope analysis
Prepare to disable an account, invalidate active sessions, rotate exposed tokens, block the affected endpoint, preserve logs, compare accessed objects with authorized scope, and restore a corrected service. Assign who decides whether and how applicants, franchisees, regulators, and partners are notified.
The exercise should answer two questions independently: can we close the known path quickly, and can we prove what happened before the path was closed? Fast containment without reliable scope evidence leaves the organization arguing from absence.
Governance Checklist
Can your organization prove that one weak identity cannot become cross-record access in an AI-enabled service?
Every production, test, vendor, support, service, and administrative identity has a named owner, purpose, last-use record, and enforced expiration.
Known default and weak credentials are blocked, and privileged interactive access requires strong multifactor authentication.
Object-level authorization is centralized, server-side, default-deny, and tested across users, roles, tenants, sessions, exports, and support tools.
Client-supplied record identifiers are treated only as object locators; trusted session context determines the allowed tenant and applicant scope.
API responses are purpose-specific and omit raw chats, unmasked PII, and authentication tokens unless the approved task requires them.
Sequential traversal, unusual retrieval velocity, cross-tenant access, token reads, and bulk exports produce actionable alerts and automatic containment where appropriate.
AI, application, identity, privacy, vendor, and incident-response owners share one current data-flow and control map.
A public vulnerability-reporting route reaches an empowered security owner, and response expectations are tested.
Incident playbooks cover account disablement, session and token revocation, evidence preservation, scope reconstruction, communications, and validated recovery.
The vendor supplies recurring technical evidence that identity lifecycle, tenant isolation, object authorization, logging, and remediation controls remain effective.
AuthorityGate 8-Gate Governance Mapping
McHire crossed identity, object, vendor, behavior, data, approval, and recovery boundaries. The eight gates work as a chain because no single control can cover that full path.
Pre-Validation & Backup
Inventory production, test, vendor, and support identities before launch. Reject default credentials, set automatic expiry, record the approved data scope, and preserve a known-good access configuration.
ITSM Window Check
Bind privileged support and bulk applicant access to an approved change or support window with a named owner, an explicit purpose, and an automatic end time.
Zero Trust Verification
Verify the actor, tenant, role, purpose, and requested applicant object on every call. A valid session never substitutes for object-level authorization.
Security Scanning
Continuously test the admin surface for weak credentials and the API for IDOR, cross-tenant access, sequential identifiers, excessive fields, and exposed tokens.
Dependency Health
Treat McHire, Paradox, Olivia, the identity layer, the API, and connected data stores as one dependency chain with evidence-backed control ownership.
Behavioral Resilience
Detect sequential record traversal, abnormal retrieval velocity, new record classes, and token harvesting. Stop the trajectory before one allowed read becomes enumeration.
SME Approval
Route bulk export, transcript access, support impersonation, authorization changes, and other exceptional access to a named privacy or security approver.
Recovery Readiness
Pre-stage account disablement, token revocation, log preservation, scope analysis, applicant communication decisions, vendor coordination, and a tested return to service.
This Is What the Validation Layer Is For
AuthorityGate Keystone places a decision boundary between a proposed action and the system response that follows. In the McHire path, a successful password check would not end the decision. The request would still need to prove the actor's current role, approved tenant, purpose, target applicant, requested fields, access window, and behavior.
The legacy login should fail at identity validation. A request for an unrelated applicant should fail at zero-trust object verification. A response that includes an unnecessary token should fail data and behavior policy. A sequential retrieval pattern should stop as an accumulated trajectory. Exceptional support access should route to a named expert, and every decision should leave evidence for recovery and review.
The goal is not to make every recruiter wait on a security committee. Routine, in-scope actions should clear automatically. Friction belongs at the moment authority expands: a new identity, a new tenant, a new data class, bulk access, impersonation, or a pattern that no longer matches the human-approved purpose.
The Bottom Line
McHire placed a conversational AI assistant in front of a hiring process used by more than 90 percent of McDonald's franchisees. Behind it, a legacy test identity accepted 123456 as both username and password. Behind that, an API returned a different applicant when the caller changed a sequential identifier. The response included not just contact data, but application history, private chats, and a token usable as the applicant.
That chain put an estimated 64 million application records within potential reach. The evidence supplied for this analysis does not show that 64 million records were stolen. Paradox said five candidates' information was viewed by the researchers and that it found no third-party use of the test account. That limitation belongs in every accurate account of impact. It does not excuse the design.
The durable lesson is not "AI leaked 64 million applicants." It is that AI adoption can accelerate the collection and centralization of sensitive human context while the service around the model still fails on ordinary identity and authorization. Model governance that ignores the admin panel, API, vendor path, response fields, and recovery plan governs the smallest part of the risk.
Keep the innovation. Put proof between identity and object, object and field, field and purpose, and every exceptional action and the human who owns it. The next 123456 should be rejected before it becomes a session. If it is not, the next record must still remain closed.
Sources
- Ian Carroll - Would you like an IDOR with that? Leaking 64 million McDonald's job applications (primary researcher disclosure and timeline)
- CSO Online - McDonald's AI hiring tool's password "123456" exposed data of 64M applicants (technical reporting and Paradox response)
- TechRepublic - Fast food, weak passwords: McDonald's AI hiring tool exposed millions of applicants' data (industry and vendor context)
- Malwarebytes - McDonald's AI bot spills data on job applicants (research path and applicant verification detail)