By Varun Patel, Founder & CEO of Crawlify | 23/06/2026 | 10 min read
27% of LinkedIn Listings Are Ghost Jobs. If You Run a Job Board, You're Republishing Them.
27.4% of US LinkedIn listings are ghost jobs (ResumeUp.AI). 18–22% on Greenhouse. Hires per posting halved since 2019. If you aggregate jobs, the ghost-job problem is now yours. Here is how to detect and filter it.

TL;DR — ResumeUp.AI puts US LinkedIn ghost jobs at 27.4%. Greenhouse's own platform data puts the rate at 18–22% across its 7,500 clients. Hires per posting have fallen from 8 in 10 (2019) to 4 in 10 (2024). The New York Senate passed S8877 on April 28, 2026. Ontario's Working for Workers Act went live on January 1. The federal TJAAA bill proposes $2,500 per infraction. If your job board aggregates from employer ATSes or third-party feeds, you're republishing ghost listings at full scale — and the regulatory window for being relaxed about it is closing.
The number that just became your problem
The ghost-jobs story has been told from the jobseeker side for two years. The new version of the story is on the operator side. Every job board, labor-market data company, and HR-tech aggregator pulling listings from employer career pages or third-party ATSes is now the distribution layer for a 20-to-30 percent error rate that nobody at the source has any reason to fix.
Three numbers anchor the size of the problem. ResumeUp.AI's 2025 LinkedIn analysis put the US ghost-job rate at 27.4 percent — the highest of any major market (Canada 24.9, UK 14.2, Australia 10.9). Greenhouse's internal data across more than 7,500 clients put the rate on its own platform at 18 to 22 percent in 2024, with roughly 70 percent of Greenhouse-using companies posting at least one ghost job in a single quarter. A January 2025 Clarify Capital survey of 1,000 employers found 1 in 3 admitted posting jobs they had no current intent to fill.
Those are three different methodologies pointing at the same range. The Bureau of Labor Statistics will tell you it does not publish an official ghost-job number — the Congressional Research Service confirmed as much in 2025 — but JOLTS data already shows the gap: roughly 7.4 million openings, 5.2 million hires per month. Columbia Law Review's analysis of the same data showed the hires-per-posting ratio falling from 8 in 10 in 2019 to 4 in 10 by 2024. Whatever you call the gap, it is real, it is large, and it lands on your platform.
Definition check. A ghost listing is any live job posting where (a) there is no current vacancy, (b) the employer has no near-term intent to hire, or (c) the requisition is already closed in the source ATS but the cached copy on a job board has not been refreshed. The third one is purely a data-pipeline failure.
Where the ghosts come from
Five categories cover almost every ghost listing. Each one breaks a different part of an aggregator's pipeline.
- Stale cache. A posting was filled or cancelled at the source. The source ATS marks the req closed; your scraper has not run since. Pure freshness failure.
- Talent pipelining. The employer keeps the posting live to build a candidate database for the next role of the same shape. The req number rotates; the public listing does not.
- Growth signaling. PE-backed or public-market employers leave reqs open as a low-cost signal that the company is hiring. Resume Builder's 2024 work found 43 percent of fake postings cited this reason.
- Duplicate-across-locations. Same role, same company, multiple cities. AI extraction will count five. The reality is one. Cross-page dedup is the only fix.
- Compliance posting. A team posts a public req as an HR formality with the chosen hire already in mind. Public-sector roles do this constantly — the Columbia Law Review JOLTS work found government leading the gap at 60 percent.
The sector breakdown
The ghost-job rate is not uniform. Columbia Law Review's 2025 JOLTS analysis put the gap between openings and hires at a different number in every sector. If you aggregate across verticals, your platform inherits the worst rate, not the average.
| Sector | Ghost-rate signal | Operator implication |
|---|---|---|
| Government / public sector | ~60% | Compliance-driven reposts; assume guilty until verified. |
| Education and health services | ~50% | High pipelining; long open-window reqs. |
| Information / technology | ~48% | Growth-signaling heavy; expect duplicates across cities. |
| Financial activities | ~44% | Continuous posting; high refresh tax. |
| Construction, arts, food, legal (Greenhouse data) | Highest concentration of ghost posts on Greenhouse | Often small-employer postings that sit live indefinitely. |
| Construction and hospitality (JOLTS) | Lowest gap; hires match or exceed openings | Less ghost noise; more true hiring volume. |
Sources: Columbia Law Review JOLTS analysis, 2025; Greenhouse internal data, 2024; HR Dive coverage, 2025–2026.
Why your platform is the visible failure
A jobseeker who applies to a ghost listing does not write to the employer. They write to your platform. They leave reviews on your platform. They stop coming back to your platform. The employer paid nothing for the bad experience. You paid for it twice: in acquisition cost and in retention cost.
Jobright.ai's 2025 Ghosted Jobs Report measured the cost on the user side: an average of 9 hours spent per ghost-job application cycle, across a sample of 4.4 million applications. Multiply that by the 27.4 percent rate and the user-trust math gets ugly fast. The first job board that publishes a verified-only feed wins a structural advantage the legacy boards will spend two years catching up to.
Five ghost-job signals your pipeline can actually detect
Five operational signals catch the majority of ghosts. None of them require the employer to cooperate. All of them are testable from a properly run scraping pipeline.
1. Cross-check the source ATS
Every aggregator pulls from somewhere: a Greenhouse, Lever, Workday, Ashby, or BambooHR endpoint, or a parsed careers page. The most reliable ghost-job filter is a same-day status check against that ATS. If the req number is no longer in the source response, the posting is dead. This is the failure mode behind a real audit we ran on Climatebase — see the field note below.
2. Score posting age against employer norms
A 90-day-old posting from a high-velocity tech employer is suspicious. The same posting from a continuously-hiring retail or healthcare employer can be legitimate. The signal is not raw age — it is age relative to that employer's historical fill-time. Build per-employer baselines and flag postings that exceed them.
3. Detect duplicate-across-locations
Same title, same description hash, multiple city tags within the same week is a strong tell. Either the role is genuinely multi-city (rare and signaled in the JD) or it is a single req cast across markets for resume-collection. Cross-page dedup catches it.
4. Watch for posting refreshes without content changes
A posting that gets bumped every 28 days but never edits its description is the classic compliance-posting pattern. Track edit history; absence of edits over multiple refreshes is the signal.
5. Triangulate with hiring-velocity data
If an employer has 200 open reqs and a 41-day average time-to-fill (SHRM, 2024), the expected hire rate is roughly 5 hires per week. If observable hire signals — LinkedIn announcements, the company's own "new joiners" pages, public press — are an order of magnitude lower, the open-req count is inflated. Aggregators with a verification layer can apply this check at scale.
From the field — Climatebase ghost-listing audit, June 2026. We spot-checked two employers already listed on Climatebase — Rivian and NextEra Energy — against their own career pages. Rivian had 1 active role on Climatebase versus roughly 529 live roles on careers.rivian.com (a coverage failure). NextEra had 242 jobs visible on Climatebase versus 246 on its career site, with the last posted date on Climatebase trailing the source ATS by more than a month (a freshness and ghost failure). First Solar, with 243 open roles, had no Climatebase page at all. Two failure modes — stale ghost listings and missing employers — surfaced in a single afternoon of manual checking. A continuous verification layer is what closes both.
The legislation is closing the window
Most ghost-job content covers the regulatory story as a job-seeker headline. The story for an aggregator is operational. The legislation defines what "reasonable diligence" looks like for a platform that distributes employment information.
| Jurisdiction | Status (June 2026) | What it requires | Aggregator implication |
|---|---|---|---|
| Ontario, Canada | Live since Jan 1, 2026 | Working for Workers Act: employers must disclose whether posting is for an existing vacancy; must inform applicants of candidacy status. | Postings from Ontario employers must be flagged with a vacancy-status field downstream. |
| New York State | Senate-passed Apr 28, 2026 (39–19) | S8877 requires hiring-timeline disclosure on each posting. | Assembly action pending. If passed, NY employers must publish disclosure metadata you will need to ingest. |
| Federal (US) — TJAAA | Bill in committee | Truth in Job Advertising and Accountability Act: 50+ employee threshold, $2,500 per infraction, DOL + FTC enforcement. | Civil penalties; aggregators distributing knowingly fake listings would be in scope. |
| California, New Jersey, Kentucky | Legislation introduced or passed | Various; mostly disclosure-focused. | Per-state metadata fields likely required by 2027. |
Sources: Bloomberg Law / NY State of Politics (S8877 vote, April 28, 2026); Congressional Research Service IF12977; Ontario Government Working for Workers Act; The Interview Guys / Faruqi Law (TJAAA tracking).
The pattern is consistent: the disclosure burden lands on the employer, and the verification burden lands on the platform. Aggregators that already verify will be able to comply by exposing existing metadata. Aggregators that don't will be retrofitting verification under regulatory pressure, which is a worse cost curve.
Run a free ghost-listing audit on your job feed. Send Crawlify a sample of your platform's active listings (CSV is fine). Within five business days you get a ghost-rate score against the same five signals above, a worked example of where the failures concentrate, and an estimated downstream user-trust cost. No credentials, no engineering hours. crawlify.ai/audit.
What a verified job feed actually looks like
The architecture of a ghost-job-clean pipeline is not a black box. Four layers, each running on every batch:
- Source-of-truth ingestion. Source ingestion against the employer's live ATS endpoint (not a cached page), with the ATS req ID stored as the canonical key.
- Field-typed extraction. Schema-typed extraction with explicit field validation (location, remote status, employment type, posting date, last-edit date).
- Verification pass. Same-day status verification: every active listing in the customer's feed re-checked against the source. Listings missing from the source are removed; partial matches are flagged.
- Audit metrics. Per-batch precision, recall, and field-accuracy numbers exposed in a customer-facing audit dashboard. Same methodology as our published 95% field-accuracy SLA.
Crawlify operates this pipeline today for B2B customers in pricing intelligence, events data, and job-board aggregation. The ScholarMeet pedigree means the human-verification layer is already in production for a use case where errors are unforgivable; for job-board customers, the same layer catches ghost listings before they reach the user.
Five questions to ask your current data source this week
- What ghost-rate signal does your feed expose? Posting-age, source-ATS-match, duplicate-detection? Show me the field.
- When was the last time your feed was audited against the source ATS, end-to-end?
- How would you find out a listing was a ghost — from your verification, or from a user complaint?
- What is your refresh latency on closed reqs? Hours, days, or "eventually"?
- If Ontario's disclosure requirement applied tomorrow, what fields would you be able to expose, and what would you have to backfill?
If the answer to any of these is "we rely on the source," the source is the employer who has the structural reason to leave the posting up. The aggregator who verifies wins.
What this is worth
On a 100,000-listing feed at the 22 percent Greenhouse-rate floor, 22,000 listings are ghosts. At the 27.4 percent ResumeUp.AI LinkedIn rate, 27,400. At the 9-hours-per-cycle user cost, that is hundreds of thousands of user hours spent on dead applications, distributed through your platform.
The first aggregator in any vertical — climate jobs, finance jobs, healthcare jobs, design jobs — to publish a verified-only feed gets to make a marketing claim no incumbent can answer. The math gets even better when ghost-job disclosure becomes a regulatory requirement, because the cost of getting there is the same whether you start now or wait.
Want the audit on your feed? Free five-day ghost-listing audit on up to 10,000 records of your live data. You get a defect breakdown by employer, a ghost-rate score against the five signals, and a recommendation on what to fix first. Email hello@crawlifyai.com or book a slot.
Frequently Asked Questions
Not in most US states as of June 2026. Ontario's law is live since January 1. New York's S8877 passed the State Senate on April 28 and is pending Assembly action. The federal TJAAA bill is in committee. The direction is unambiguous.
Yes — high-volume employers (retail, healthcare, public sector) continuously refresh real reqs. Staleness alone is a signal, not a verdict. Crawlify cross-checks against the source ATS so the verdict is based on the requisition status, not the posting date.
LinkedIn relies on employer self-reporting and pattern detection inside its platform. An aggregator pulling from employer ATSes can cross-check upstream of LinkedIn's data, which catches the listings LinkedIn doesn't.
Construction and hospitality have the lowest JOLTS gaps because hires match or exceed openings. Job boards focused on those verticals still benefit from verification (duplicate detection, location cleanup), but ghost-rate is not the primary failure mode.
Either. For pilots, we can audit a CSV sample from the customer's existing feed. For production pipelines, we ingest from the source ATS endpoints directly and deliver clean, verified rows on the customer's schedule.
