You apply to a role. The posting says "urgently hiring" and "apply now." Weeks go by. You hear nothing. Three months later, the same listing is still live — same company, same title, same copy. It never filled. Maybe it was never meant to.
Welcome to one of the ugliest open secrets in modern hiring: a significant share of job postings you're applying to are not real jobs. They're ghosts — listings that exist for reasons that have nothing to do with filling the role.
This is not a conspiracy theory. It's been quantified, repeatedly, by the people who run applicant tracking systems.
The numbers are worse than you think
- Greenhouse's 2025 study: 18–22% of online postings are ghost jobs — roles that the company has no real intent or capacity to fill.
- LinkedIn analysis from the same year: up to 27.4% of US postings showed ghost-job signals (stale dates, no recruiter activity, repeated reposts).
- Greenhouse's 2025 Candidate Experience report: 36% of job seekers said they had applied to a role that was ultimately never filled.
- A 2025 Greenhouse survey of employers: 63% admitted to posting fake roles — often so overworked teams would feel help was on the way, or to build a résumé pipeline "just in case."
Do the math on your own job search. If you've sent 200 applications, somewhere between 36 and 54 of them went to a listing that was never going to hire anyone. That's five to seven weekends of your life poured into a void, by the most conservative estimate.
And nobody told you.
Why companies post ghost jobs
None of the reasons are good. All of them are structural:
- Pipeline building. A company isn't hiring now but expects to be in six months. They post the role anyway to collect resumes they can reach out to later. You're free labor for their future recruiting database.
- Morale theater. Overworked teams complain they need more help. Leadership doesn't want to hire but doesn't want the complaints either. Posting a fake requisition buys time.
- Market intelligence. The company wants to see how many qualified people are available for a role — how long it would take, what salary range candidates would accept. Your application is a data point in someone else's workforce-planning exercise.
- The internal candidate. A role has been informally promised to a current employee. The company posts it externally to satisfy DEI policies or internal governance. The external candidates exist to make the process look fair.
- Placeholder postings. A recruiter leaves, the req stays live. Nobody is reading it, nobody is processing the applications. It just sits there collecting form submissions indefinitely.
- Reposts to manufacture urgency. Some companies take down stale postings and re-upload them weekly so the "posted 2 days ago" badge resets and they get more applicants. The role has been technically open for six months.
A representative comment from r/recruitinghell, widely upvoted in early 2026: "HR writes these things with AI and doesn't even proofread. Half of them aren't real jobs."
The tells
You can learn to spot ghost jobs in about 30 seconds. Here's the checklist:
1. The posting date is older than 30 days
Real hiring moves faster than this. A role that's been live for 45+ days without being filled is either a ghost, a position nobody wants, or a listing where the company has extraordinarily rigid requirements that are not being met. In any of those cases, your odds are terrible.
Caveat: some ATS platforms reset the "posted date" on every edit, so a 3-month-old req might look fresh. Cross-check with the next signal.
2. The same listing is still live from your last search
If you saw this exact role two weeks ago, and it's still there, and nothing in the description changed — the company has been "hiring" for this position for at least two weeks with zero progress. That's a ghost, a stalled req, or a role with such specific requirements that 99% of applicants are wasting their time.
3. The job description is suspiciously vague
Real job postings are written by a hiring manager who has a specific team, a specific gap, and specific things the new hire will do. Ghost postings are written by someone filling a template. Signals:
- Responsibilities are all generic ("drive impact," "collaborate cross-functionally") with no mention of actual projects, tools, or teams.
- Required skills list is 15+ items long — nobody who exists has all of them.
- No mention of who you'd report to or what team you'd join.
- Copy-paste phrasing from other company postings.
4. You can't find any recent LinkedIn activity on the role
Search "[Job Title] at [Company]" on LinkedIn. Is a recruiter actively messaging people about it? Has anyone posted about joining the team recently? If the role is real and being actively filled, there's usually a detectable shadow of recruiter outreach and employee movement. Dead silence is a signal.
5. The company's headcount is flat or shrinking
Check the company's LinkedIn page. If they're at the same headcount as six months ago, or shrinking, and they have 40 job postings live — the postings are pipeline-building or morale theater, not real hiring.
6. The same role has been reposted multiple times
Search the exact job title + company on Google. If you find the same listing on Indeed from two months ago, on LinkedIn from one month ago, and on the company site from last week — they're rotating reposts to manufacture urgency. The role is stale.
7. Overly broad salary ranges, or no salary at all
In US states that require salary disclosure, a "range" of $70K–$200K is not a real range. It's a legal compliance checkbox. A real posting has a real band, usually $30–50K wide. A posting with no salary in a state that requires disclosure is often a ghost.
What to do about it
Apply triage, ruthlessly
For every listing you're about to spend an hour on, run the 30-second check above. If three or more tells fire, skip. The effort you save goes into the roles where a decision is actually being made.
Prefer fresh listings
Sort by most recent. A job posted in the last 5 days is less likely to be a ghost. You're also applying earlier in the pool, which improves your ranking when the shortlist is being built.
Weight company-site listings over aggregator listings
When a company posts directly on their own careers page, the role is more likely to be real. Aggregators (LinkedIn, Indeed, ZipRecruiter) mirror and re-mirror listings, and a ghost on LinkedIn can look fresh long after the company has moved on.
Cross-check headcount trajectory
If you're putting real effort into an application, spend 90 seconds on the company's LinkedIn page looking at their hiring trend. Are they growing or flatlining? It's not a perfect signal, but it reduces your ghost-rate significantly.
Stop treating "urgently hiring" as real
That badge is meaningless. It's either set by an algorithm (posting freshness) or bought by the employer (paid promotion). It tells you nothing about whether a human is reading applications.
Where shortlisted.site fits
Ghost jobs are a volume problem. When you're firing off applications at 20 listings a day, you can't afford to spend 60 seconds vetting each one — and that's exactly why you end up applying to a third of them that were never real.
We built shortlisted.site to flip that. Our AI looks at every job before you apply — not just "does your resume match the keywords," but "is this role worth your time at all." Stale reposts, overly vague descriptions, and listings with red flags get deprioritized. You spend your effort on the 15–20 roles per week where a decision is actually being made and your fit is strong.
Pair that with our fit analysis — so you know, before you apply, whether you rank in the top 20 of candidates or somewhere in the middle of the pack — and the two-hour-per-application grind becomes ten minutes per application on roles that matter.
You can upload a resume and run a fit analysis on any job in under two minutes. No credit card. Try it here.
The bottom line
A fifth of your applications are going to listings that were never real. The industry knows. Nobody's going to stop posting them, because the incentives are too well-entrenched.
What you can do is raise your detection rate. Thirty seconds of triage per listing — date, repost count, description specificity, company headcount — will save you ten hours a week you're currently donating to companies that aren't hiring.
Fewer applications. Realer applications. That's the only version of this that works.