Fake jobs, fake candidates
Some of the job listings you'll apply to during a search aren't hiring anyone. They may not even be lying, exactly. The req got frozen and nobody pulled the posting. The role went to an internal candidate but had to be listed publicly for policy reasons. An aggregator rescraped a listing that died in April and served it up as new. Leaving a listing up often costs little. Taking one down has small perceived costs: it looks like shrinking, and it cools off a pipeline someone might want warm later. So the dead ones pile up like unread email.
We got a small taste of the supply side building jobhunt's job search. The delete button on a job match doesn't actually delete anything. The row is kept and hidden, because a hard delete would just let the next morning's search re-add the same listing from whatever board had recycled it. Job boards circulate the same posting long after anyone is reading the applications, and we had to plumb around that.
Can you tell a ghost listing from a live one? Not reliably, and I'd keep a hand on my wallet around anyone who says their tool can. There are hints. A posting that's been up for months and reposted word-for-word. No named team, no hiring manager, a salary band so wide it commits to nothing. A recruiter who asks for money or sensitive identity documents before a real interview is not following a normal hiring process; stop and verify the company independently before sending anything. Past that, the only defense I know is to stop treating any single application as meaningful, because some of them were dead on arrival for reasons that had nothing to do with you.
The people reading applications have the mirror-image problem. Generating another application costs almost nothing now, so a posted role can draw a pile of fluent, nearly interchangeable résumés. Some are real people with AI-polished documents. Some are real people whose documents claim things they never did, because the tool added them and nobody checked. And some aren't people at all; fully invented candidates have made it into remote interview processes. A recruiter can't tell your true "led the migration" from the next person's fabricated one by prose alone, so both claims get discounted.
I want to stay on the middle category, the one where the tool claimed it and nobody checked, because I watch it happen in a controlled setting all the time. Before any model is allowed to drive Coach, jobhunt's assistant, it goes through a gate: we hand it a compound request (track these three updates for the user), let it run against the real system, then look in the database. The last time we ran that gate, the two models that had been among our most dependable under the previous architecture executed zero of the three actions (their tool calls no longer worked in the new setup) and then replied, "Got it — all tracked … You're all set," listing all three items as done. Nothing had been done. Another model in the same run also fumbled, one item out of three, and told the user: "two things still not tracked yet." Guess which failure we can live with. The first two are banned from the loop; the honest one made the shortlist.
I'm not telling that story to dunk on particular models. The point is that a system like this doesn't get embarrassed. When the work doesn't happen, nothing stops it from saying it did, in the same warm tone it uses for everything. If that's true inside a test harness where I can check the database, it can happen when someone aims AI at a résumé before an application deadline. I care about that ordinary failure because tired people can let tools speak for them without noticing where the facts drifted.
Which points at what still works. When applications start to read generated, what can still stand out is the stuff generation is bad at: a real number with its natural hedge still attached, an answer that holds up through the third follow-up question. Interviewers have a reason to lean harder on live conversation because it's one of the harder screens to fake, which means the paper that gets you into the room had better match what comes out of your mouth once you're in it.
jobhunt generates documents too; I'm not going to pretend otherwise. What we do differently is check. Coach interviews you before it writes anything, your answers become the record, and after every résumé a second pass tries to trace each claim back to something you actually said. Anything it can't trace gets flagged next to the download. The check is advisory, not a certification, and it does not prevent you from using a flagged file. None of that will spot a ghost posting for you; nothing will. It puts unsupported claims where you can see and fix them before the application reaches a human.
That's the half of the problem you control. The other half, the frozen reqs and the recycled listings, you survive by volume and by not taking it personally.