Hiring managers can't find "qualified" candidates because many roles aren't actually open at the terms advertised — the requirements are inflated, the comp is set below the approved range, or the posting exists to build a resume pipeline for a future headcount request. It's rarely about applicant quality. It's about the job not being real, or not being real at that price.

A thread on r/recruitinghell got this argument going again: hundreds of applicants per posting, hiring managers publicly complaining they "can't find talent," and job seekers pointing out the obvious contradiction. The top comments landed on three explanations: requirements that no human meets, pay that doesn't match the posted range, and postings that were never meant to close. All three check out against what actually happens inside hiring pipelines. Here's the breakdown, and what you do about it.

Why do hiring managers say they can't find qualified candidates?

Because "qualified" in the complaint usually means "qualified at a price and speed the company hasn't actually approved." A hiring manager wants a senior engineer for a mid-level budget, wants five years of experience with a tool that's been out for two, or wants someone who accepts an offer 20% below market because "the market is tough." When nobody bites, the conclusion isn't "our terms are off" — it's "there's a talent shortage." That framing gets repeated in press releases and LinkedIn posts, and it becomes the industry's default excuse instead of a pricing problem.

In short: the applicant pool isn't broken. The job spec or the offer usually is.

How unrealistic job requirements filter out qualified people

Job descriptions get written by committee — hiring manager, recruiter, sometimes legal — and every stakeholder adds a "nice to have" that becomes a hard requirement by the time it's posted. The result is a listing asking for 8 years of experience in a framework that's 4 years old, or a "junior" role demanding three certifications and a portfolio of production systems.

This isn't candidates being underqualified. It's requirement inflation, and it happens for a few concrete reasons:

  • Copy-paste job descriptions. A template from a senior role gets reused for a mid-level one and nobody strips the requirements down.
  • Wishlist creep. Recruiters get told "find me someone like our best current employee," which describes one person, not a hireable pool.
  • Legal cover for visa or internal candidates. Some postings are written narrowly on purpose, to satisfy a labor certification step or make an internal promotion look competitive.
  • ATS keyword stuffing. Requirements get padded to match what the applicant tracking system scans for, not what the job needs day one.

If you want the mechanics of how that scanning actually filters resumes before a human ever sees them, this breakdown of how ATS resume screening really works is worth reading before you tailor another resume to an inflated posting.

Plain-language summary: many "requirements" are internal wishlists, not hiring bars. Meeting 70% of a bloated list is often enough to apply.

Lowball job offers vs approved comp ranges: what's really happening

Pay transparency laws forced companies to post salary ranges, but the range and the actual offer aren't always the same number. A posting might legally show $90k–$130k, while the recruiter is instructed to open at $90k regardless of experience and only move up if a candidate has a competing offer in hand. Candidates apply expecting mid-range pay for their experience level, get an offer at the floor, and decline. The hiring manager logs that as "candidate wasn't serious" instead of "offer wasn't competitive."

This is comp-range gaming, and it's common enough that recruiters in C2C and contract markets have built entire workflows around anchoring low first. If you're navigating contract-to-hire or corp-to-corp roles specifically, rate compression works the same way — see what a C2C contract actually means and how bench sales and vendor chains really work for how rate negotiation gets squeezed at each layer.

SignalWhat it usually means
Posted range is 3x wide (e.g. $70k–$210k)Range compliance only, not a real band for this role
Same role reposted every 30-45 daysPipeline building, not an active hire
Recruiter can't confirm the range on a screening callBudget likely isn't finalized
Requirements list 6+ "must-haves" for a mid-level titleWishlist posting, negotiable in practice
Listing has been live 60+ days with no status updatePossible ghost or zombie posting

What are ghost job postings and zombie listings?

A ghost job posting is a listing for a role the company has no active intent to fill right now. A zombie listing is the related but distinct case: the role was real once, got filled or shelved, and nobody took the posting down. Both waste applicant time equally.

Companies keep ghost postings up for reasons that have nothing to do with hiring you specifically:

  1. Signal growth to investors or the market by keeping open-req counts high even when hiring is frozen.
  2. Build a talent pipeline for a headcount approval that might come in Q3, so resumes are banked "just in case."
  3. Justify current team workload to leadership by showing an open req that "can't get filled," deflecting pressure to raise pay or headcount internally.
  4. Keep competitors guessing about hiring plans, especially for specialized or senior roles.
  5. Let a recruiter hit sourcing quotas without an actual mandate to close, common with third-party agencies working contingency.

Our deep dive on how fast recruiters respond after a job is posted is a useful cross-check here: real openings with budget approved tend to move fast in the first 72 hours. Silence past that window, especially past 3-4 weeks, is a strong ghost-listing signal.

Plain-language summary: if a listing has been up for months with zero movement, it's probably not hiring right now regardless of what the description promises.

How to spot listings you shouldn't waste time on

You can't verify a company's internal budget approvals, but you can read the public signals:

  • Check if the same title has been reposted multiple times in the last 90 days under a new req ID.
  • Look at headcount and hiring freeze news for the company before applying to a stale posting.
  • Ask directly on a first call: "Is this a new headcount or a backfill, and when do you need someone starting?" Vague answers are a signal.
  • Compare the posted range against sites tracking real offers for the title and region, not just the listing itself.
  • Notice if the listing has been live over 45 days with no "applications closed" or status change — many boards flag stale posts, most companies don't bother updating them.

None of this means stop applying broadly. It means triage: spend tailored effort on fresh, specific, recently-posted roles, and spend less energy chasing a listing that's been open since spring. Our data on 149 applications and 14 callbacks backs this up — tailoring pays off most on fresh postings, not stale ones.

What job seekers can actually control in this environment

You can't fix a company's requirement-writing habits or force a recruiter to post a real range. But you control three things that move outcomes: speed, targeting, and where you spend follow-up energy.

  1. Apply within hours of a posting going live, not days. Fresh listings are far more likely to have an active, funded search behind them. See why applying early beats a better resume.
  2. Skip postings with 60+ days of inactivity unless you have a warm referral into the company.
  3. Ask range and headcount questions early in any screening call, before you invest hours in interview prep.
  4. Track which listings ghost you so you stop reapplying to serial reposters. A simple system beats memory — see how to track 30+ applications without losing your mind.
  5. Read requirement lists as a wishlist, not a gate. Meeting the core 3-4 items is usually enough to apply; nobody meets all eight.

The part you can't out-strategize: getting there first

Ghost postings and lowball ranges are a filtering problem you can partially route around. But even legitimate, funded roles get buried under hundreds of applicants within the first day, and most job boards' "real-time" alerts run on a delay measured in hours, not minutes — worth understanding if you're relying on alerts, covered in how real-time job alerts actually work. GiraffyReach was built around that exact gap: it detects fresh postings the moment they go live and can auto-apply before the queue fills, so your effort goes toward roles that are actually active, not the ones sitting stale since spring. Be first, or be forgotten — that's true whether the listing is real or not, but it matters a lot more when it is.