If you've sent 100 applications this quarter and heard back on 4, you're not bad at resumes. You're bidding against listings that were never going to hire anyone. The March 2026 JOLTS report put 6.87M openings against 5.6M hires, and the 1.27M gap has a name in the data: ghost jobs.
The 1.27M gap is a JOLTS line item, not a vibe
The US had 6.866M open jobs in March 2026 and made 5.6M hires, leaving roughly 1.27M openings that closed the month unfilled. That gap is actually narrower than the 24-month average. Since the start of 2024, BLS data shows openings have outnumbered hires by more than 2.2M every single month, which is the raw material of what job seekers now call ghost jobs.
A ghost job is a listing that is publicly posted but has no realistic path to a hire in the near term, either because it was never real, is paused, is being used to build a pipeline, or has been forgotten by the team that opened it. The evidence they exist at scale comes from three independent sources: the openings-vs-hires gap in BLS, ATS ground truth from Ashby, and posting-age analysis on LinkedIn from ResumeUp.AI.
JOLTS reported 6.87M openings against 5.6M hires. Since 2024 the monthly gap has averaged 2.2M.
Why am I not hearing back from jobs: the three numbers that explain it
Somewhere between 18% and 27.4% of the postings you're applying to have no receiver on the other end. That is the range you have to design around, not a rounding error you can ignore.
Here's the table-ready view of the 2026 evidence, pulled from BLS, Ashby, ResumeUp.AI, and Refolk's own index of professional profiles.
| Signal | Value | Source |
|---|---|---|
| US openings vs hires gap, March 2026 | ~1.27M | BLS JOLTS |
| US openings vs hires gap, 24-month average | 2.2M/month | BLS via CNBC |
| Ghost job rate, US LinkedIn | 27.4% | ResumeUp.AI |
| Ghost job rate, Canada LinkedIn | 24.9% | ResumeUp.AI |
| Ghost job rate, ATS ground truth | 18% | Ashby 2024 report |
| US recruiters per US software engineer | 1 : 3.8 | Refolk's index |
| US recruiters vs Canada recruiters | 20.9x | Refolk's index |
| Average time to fill | 41 days | SHRM 2024 |
Two things to notice. First, Ashby's 18% is a floor, not a ceiling. Ashby has said its customer base skews toward companies far less likely to post ghost jobs; on Workday, Taleo, and older ATS platforms the true never-filled rate is almost certainly higher. Clarify Capital's 2025 survey of 1,000 employers found nearly 1 in 3 admit posting jobs with no current intent to hire. Second, ResumeUp.AI's 27.4% treats anything posted more than 30 days ago as a likely ghost, which is where the age-based filter comes from.
The 45-day rule, and why it works
If a listing is more than 45 days old and does not also appear on the employer's own career page under the same title and requisition, treat it as a ghost until proven otherwise. That single filter catches most of what BLS, Ashby, and ResumeUp.AI are all measuring, without hand-waving.
The 45-day number is doing three jobs at once, which is why it holds up:
- ResumeUp.AI methodology. Their study flagged LinkedIn posts older than 30 days as likely ghosts. Age is the single strongest signal in their model.
- SHRM 2024 time-to-fill. The average US role fills in 41 days. A listing sitting past 45 has already blown the mean.
- Ontario's anti-ghosting law. Effective January 1, 2026, employers with 25 or more employees must respond to interviewed candidates within 45 days or face fines up to CAD $100,000. Regulators picked 45 for a reason.
The rule will produce false positives on senior and specialized roles (staff engineer, principal researcher, GC), where 60 to 90 day fills are normal. Treat those as a separate bucket and cross-check the career page more aggressively before writing them off.
Age is the cheapest signal you have, and the one recruiters cannot fake without touching the ATS.
The mechanism nobody names: 1 recruiter per 3.8 engineers
Ghost jobs are usually described as strategy - pipelining, market intel, keeping the brand warm. MyPerfectResume's 2024 recruiter survey backs part of that: 81% of recruiters say their employer posts ghost jobs, with 38% citing board presence, 36% testing posting effectiveness, and 26% market intel. But the bigger driver is capacity: employers do not have enough recruiters to close out the postings they open.
In Refolk's index of professional profiles, there are 92,016 US-based recruiter and talent-acquisition profiles against 348,784 software engineers, roughly 1 recruiter for every 3.8 US software engineers, and that ratio worsens once you count every other function a recruiter also serves.
That ratio is why career-page cross-checks work. Auto-decommissioning on the employer's ATS is one of the few workflows recruiters actually maintain, because it feeds their own dashboards. LinkedIn reposts, Indeed scrapes, and job-board syndication get abandoned. If a listing is live on LinkedIn but missing from the company's own career site, it is almost always dead.
The same capacity math explains the Ontario vs US regulatory gap. Refolk's index shows only 4,411 recruiters and TA professionals in Canada against 92,016 in the US, a 20.9x differential. Ontario can plausibly enforce a 45-day response mandate at that scale. The US market, at current recruiter capacity, could not absorb the same rule without every mid-size employer failing it in month one.
The ghost job detection checklist
Run this before you spend the hours a full ghost cycle costs. Two minutes of filtering saves most of a workday.
- Age check. Is the posting more than 45 days old on LinkedIn or Indeed? If yes, flag it.
- Career-page cross-check. Open the company's own careers site. Same title, same location, same req ID? If it is missing or the req ID does not match, it is likely a scraper artifact of a closed role.
- Repost pattern. Search the exact title plus company on Google with
site:linkedin.com/jobs. If the same role has been posted three or more times in the last six months with no known hire, you are looking at either a very hard role or a pipelining listing. - Recruiter activity. Click through to the posting recruiter's LinkedIn. Last activity more than 30 days ago on any job? Cold desk.
- Applicant count anomaly. LinkedIn showing "over 200 applicants" on a role posted yesterday for a niche title is often a rolled-up count from prior postings of the same req.
- Disclosure language. For Ontario roles as of January 2026, the posting must state whether it is a current vacancy or prospective opportunity. Missing that language on an Ontario role is now a legal red flag, not just a soft one.
- Salary and scope drift. Reposts with widening salary bands or vague scope ("or related duties") often mean the role's been reworked internally and the public posting hasn't caught up.
If a listing clears items 1, 2, and 4, apply. If it fails 1 and 2, skip. If it fails 1 but passes 2 and 4, it is probably a senior role with a long fill cycle, and worth the effort.
The wasted-hours math
If a full application cycle - tailoring, cover letter, "why us" question, take-home, follow-ups, mental overhead - runs about 9 hours, then applying to ghosts is where the pipeline bleeds. Multiply by the ghost rate: at 27.4% of US LinkedIn listings, 100 applications burns roughly 247 hours (about six full work weeks) on listings with no receiver. Fortune reported in March 2026 that 53% of job seekers were ghosted by employers in the past year, up from 48% in 2025 and 38% in 2024. The trend is going the wrong way.
Cut the ghost applications and you get those weeks back for the real ones. This is where tailoring speed matters. If a real application takes 90 minutes to write from scratch, cutting ghosts saves you weeks; but if the real ones each take 20 minutes because a tool tailors the resume and drafts the cover letter for you, you get to double down on the postings that pass the checklist. That is the exact loop Refolk is built for: paste the posting, Refolk rewrites your resume from your own history to match it, drafts the cover letter, and scores how well you actually fit before you spend the hour.
Geography flips ghost risk more than your resume does
Where you apply changes your ghost exposure by nearly 2x, independent of your resume quality. ResumeUp.AI's metro breakdown puts Los Angeles at 30.5% ghost rate, Philadelphia 30.1%, Indianapolis 27.8%, NYC 26.7% (about 23,000 ghost listings), and San Francisco 26.0%. Seattle is the cleanest at 16.6%, Boston next at 18.7%.
An identical resume applying to LA jobs is roughly 1.8x more likely to land in a void than the same resume in Seattle. If your response rate looks broken, check the metro mix of your applications before you rewrite the resume for the fourth time. The fix is often just weighting your pipeline toward lower-ghost metros or remote roles at Seattle- and Boston-headquartered employers.
ResumeUp.AI flagged US listings above 30 days old. US leads Canada at 24.9%, UK at 14.2%, Australia at 10.9%.
What the 2026 laws actually change for you
Ontario is the only jurisdiction with enforcement in force right now. As of January 1, 2026, employers of 25+ must respond to interviewed candidates within 45 days, disclose whether a posting is a current or prospective vacancy, and disclose AI screening use. First-time offenders may get warnings; repeat violations can trigger fines up to CAD $100,000.
In the US, everything is still pending:
- Pennsylvania HB2321 ("Ghost Job Postings Prevention Act") introduced March 2026, would prohibit posting non-existent jobs and require disclosure of hiring timeline and prior-year repost count.
- New Jersey S2136, New York S8877 and S9208, California AB1251, Kentucky HB324 are similar and still in committee.
Practical takeaway: applying to a Canadian branch of a multinational gives you legal recourse a US application does not. That is worth two lines in your cover letter if you are targeting cross-border employers.
How to spend the hours you get back
Once you cut ghosts from your pipeline, the constraint shifts from volume to tailoring quality. The postings that pass the 45-day check tend to be actively worked, which means the recruiter is reading past line one and the fit signals matter.
Two habits carry the recovered hours:
- Tailor to the posting, not the company. Match the exact phrasing of responsibilities in the JD. If the posting says "own the reliability of our data pipelines" and your resume says "improved data quality," rewrite the line. Refolk does this rewrite automatically from your own history, so the language matches without you inventing anything.
- Score fit before you send. If you are borderline, either close the gap with a specific cover letter paragraph or skip. Refolk scores how well you actually fit each posting and flags the ones worth the 20 minutes, which is the same triage a senior recruiter would do on inbound.
The rest is discipline. Track which employers you applied to, which came back, and how long they took. After 30 days, cross off anyone who hasn't moved. That is your personal ghost list, and it is more accurate than any national dataset.
FAQ
How do I check a posting's age on LinkedIn when it just says "3 weeks ago"?
LinkedIn caps the visible age at "over a month ago" for older posts, but the underlying page source often carries the true timestamp. The easier route: search the exact job title plus company name on Google with the date range set to the past year. The first indexed date is usually the original post date. If Google shows the same listing indexed six months ago, treat it as a ghost regardless of what LinkedIn displays.
Does the 45-day rule apply to senior and executive roles?
Not cleanly. SHRM's 41-day time-to-fill is a cross-role average; staff engineer, principal, and GC roles routinely take 60 to 90 days. For senior roles, replace the age check with a career-page cross-check plus recruiter activity check: if the req is still on the company's own site and the posting recruiter has moved other candidates in the last two weeks, the role is live even at 75 days old.
Are LinkedIn's "actively recruiting" and "top applicant" badges reliable ghost signals?
"Actively recruiting" is thin evidence; LinkedIn awards it based on recruiter logins and message activity, not hire velocity, so a recruiter working other reqs at the same company can keep the badge lit on a dead posting. "Top applicant" tells you about your relative rank in the pool, not whether the pool is being processed. Use them as tiebreakers after the age and career-page checks, not as primary filters.
If I already applied to a bunch of likely ghosts, is it worth following up?
Yes, once. Send a short follow-up 10 to 14 days after applying, addressed to the posting recruiter by name, referencing one specific line from the JD. If you get no response and the posting is still up at day 45, delete it from your tracker and reallocate the mental space. A single follow-up costs 5 minutes; a second follow-up on a ghost is the sunk-cost trap the ghost-cycle math is measuring.