How to spot a ghost job before you waste your time on it
Roughly a third of postings on major job boards aren't real openings. Here's how to tell which ones are ghosts, and how to find the third that's worth applying to.
The thing nobody told you about LinkedIn
You apply to a job that looks perfect. You hear nothing back. You apply to twenty more. Same result. You start to wonder if your resume is the problem.
It might be. But there's a bigger explanation a lot of students don't know about: a meaningful percentage of the postings you're applying to aren't real openings.
Estimates from third-party hiring research run between 20% and 40% depending on the industry. Tech and corporate roles trend toward the higher end. Restaurant, retail, and trades trend lower. The average student-targeted req on LinkedIn or Indeed is somewhere around 30% likely to be a ghost.
A ghost job is any posting that isn't really hiring right now. It can look completely legitimate. Real company logo, real careers page, real recruiter named on the listing. It still isn't an opening you can win.
Why ghost jobs exist
There are four reasons companies leave dead postings up. None of them are about you.
Resume harvesting. The company wants a pipeline of candidates for a role they expect to need in 6 months. They keep the req live so applications keep flowing. Your resume goes into a database. Nobody from the company will ever contact you about it.
The hire is already internal. A team needed to fill a role and already had the person picked. Corporate policy or local labor law required them to post it externally. The posting is theatre. The internal candidate gets the offer in week 3.
Frozen requisitions. The team had budget approval six months ago and posted the role. Budget got cut, hiring got paused, but nobody bothered to take the listing down. Recruiters are too busy to clean up dead reqs.
Evergreen pipeline reqs. Common at big consultancies and large tech companies. "Software Engineer, all levels, US." It's live year-round. They pull from it when a specific team needs someone. Most applications get auto-rejected.
Notice what these have in common: there's no human at the company who is going to interview you for that specific posting today. Your application is fundamentally a free option for them and a sunk cost for you.
The signals that a posting is a ghost
A few tells, in rough order of how reliable they are.
Time the posting has been up. A real opening fills in 30-60 days at most. If LinkedIn says "Posted 3 weeks ago" but the same job was posted to the company's own careers page 4 months ago, that's a ghost. Check the company's careers page directly and read the URL slug for a date. If it's older than 60 days, treat the posting as a ghost until proven otherwise.
Repost frequency. Some platforms show you "reposted 2 days ago." If you see the same job reposted three or more times over 6 months, it's almost certainly a pipeline req, not a real seat. The Zelume extension flags this automatically when you save a job, but you can check by searching LinkedIn for the exact title plus company name and seeing how many old posts come up.
Vague seniority bands. "Software Engineer (Levels L3-L6)" or "Marketing Associate to Senior Associate." Real openings are for one role. Bands this wide mean the team is fishing the pipeline and will slot whoever they find. Apply anyway if you fit, but don't expect a quick response.
Recruiter ratio. Check the company's open req count on LinkedIn against their total employee count. Healthy ratio is 1-3% open reqs. If a 500-person company has 80 open postings (16%), most of those are pipeline reqs or stale. Cross-reference against the company's actual recent headcount changes from their LinkedIn page.
"Always accepting applications" or no role-specific JD. If the posting reads like a recruitment brochure instead of a description of a specific job, it's a ghost. Real reqs have specific tools, specific teams, specific responsibilities. Ghosts have "you'll work on challenging problems" and "we move fast."
Apply button goes to a generic form. If clicking apply takes you to a "general application" portal instead of a posting-specific form, the company is fishing. The posting exists to drive traffic to the funnel.
Job listed but recruiter not contactable. Real reqs have a named recruiter you can sometimes find on the listing. Ghost reqs are anonymous. Cross-reference the company's careers team on LinkedIn. If nobody has the title that would manage this hire, the req is unattended.
Posted on a Friday afternoon. Real reqs get posted Tuesday-Thursday morning, because that's when recruiters set their workflow up. A 4pm Friday posting is often a "I had to post this for compliance" move.
Any single signal isn't conclusive. Three or more on the same posting and you should treat it as a ghost.
How to actively verify before you apply
If a role looks great and you're not sure if it's real, three things to check before spending tailoring time on it.
Search LinkedIn for the title plus the company. Look for people who got hired into that role recently. If five people have started this role at the company in the last 6 months, the req is real and they're hiring volume. If nobody has started it in 18 months, it's almost certainly a ghost.
Look at the team's recent activity. Find the hiring manager (Director or VP of the team named in the JD). Have they posted on LinkedIn about hiring in the last 90 days? Have they liked posts from new hires? Is the team growing visibly?
Find one person on the team and ask. Send a 4-sentence DM: "I'm looking at the [role] posting on your team. Is the team actively interviewing right now, or is this on hold? Happy to send my resume either way." About half the time you'll get a real answer. The other half, the silence itself is a signal.
The 20 minutes you spend verifying saves the 90 minutes you'd spend tailoring an application that was never going to be reviewed.
What to do when you can't tell
Sometimes there's no way to verify. The company is small, you don't know anyone there, the LinkedIn signals are mixed. Apply anyway, but downgrade the effort.
For verified-real jobs: full tailoring pass, real cover letter, followup on day 4 and day 14.
For ambiguous jobs: lighter tailoring (resume swap, no cover letter), one followup at day 7. Move on if no response.
For obvious ghosts: don't apply. Even if it would "only take 5 minutes." The 5 minutes you skip is 5 minutes you can spend on a real opening, and the morale cost of getting silently rejected by a ghost is worse than the time cost.
Where the real jobs are hiding
Once you start filtering out ghosts, you'll notice the real opportunities aren't on the front page of LinkedIn jobs. They're in three places.
Companies in the 50-500 employee range. Big enough to be hiring, small enough that every req is real. The S-1 filings of every recently-public mid-cap are full of these names, and most students have never heard of them.
Job boards that hide aggregator content. Y Combinator's Work at a Startup, Wellfound (Angellist for jobs), Otta, Built In's city-specific boards. Smaller candidate pools, much higher signal-to-noise on real openings.
Through people you know. A referral from someone at the company is the highest-signal channel that exists. You skip the AI screening, the recruiter doesn't dismiss you based on a 4-second skim, and the role you're being considered for is almost always real because nobody refers a friend to a ghost.
That third bucket converts at 6-10x the rate of cold LinkedIn applications. Build it.
The summary
A third of postings aren't real. You can spot most ghosts in 90 seconds using a small handful of signals. The applications you don't send to ghosts are the bandwidth you free up for the real openings, where actual tailoring and followup can move the needle.
Tonight: open your tracker, find five postings you applied to recently with no response, and check them against this list. The pattern that shows up will tell you something useful about the next 50 applications you were about to send.
Notes on ATS parsing, internship pipelines, and the things we built Zelume to solve.
Action Verbs for Software Engineer Resumes (With Real Bullet Examples)
Built, shipped, debugged, scaled. The verbs that work on an engineering resume, the ones that backfire, and wo…
11 Synonyms for 'Managed' on a Resume (and When Each Fits)
'Managed' appears on almost every resume, often three times. Here are 11 more precise alternatives, sorted by…
What to Say Instead of 'Responsible For' on a Resume
'Responsible for' describes your job posting, not your work. Here are 12 stronger replacements, matched to wha…