I sat in a board meeting for a Series B fintech company about a years ago. We had just decided to freeze hiring for Q3 to conserve runway. The CFO looked at the Head of Talent and asked a simple question.
"Are we taking the job ads down?"
The Head of Talent didn't even blink. "No. We need to keep the pipeline warm for Q4. Just don't interview anyone."
That is a Ghost Job.
You are stressing over your resume formatting. You are tweaking your cover letter. You are worrying about whether your gap year looks bad. Meanwhile, the job you are applying to is nothing more than a digital paperweight. It exists solely to make investors think the company is growing, or to collect a stack of resumes for a hypothetical future that might never happen.
In my 20 years navigating corporate bureaucracy, I have never seen it this bad. The data says 40% of listings are phantom. I think it's higher.
I am going to show you how to spot them. I will teach you the technical "Page Source" method that HR departments pray you never figure out.
The "120-Day" Rule (And The Job ID Secret)
Here is the thing. Job boards (LinkedIn, Indeed, Glassdoor) are businesses. They want inventory. They want freshness.
So, the Applicant Tracking Systems (Workday, Greenhouse, Lever) play a game. They automatically "refresh" a job posting every 30 days to make it look new. You see "Posted 2 days ago." You think you are early.
You aren't. That job has been open since the Obama administration.
The Method: Check the Sequential Job ID. Most ATS platforms assign a sequential number to every requisition.
- Job A (posted in January) is ID #4050.
- Job B (posted in March) is ID #4200.
If you see a "New" job listing with ID #4050, but the company's other actual new jobs are at ID #5000, you are looking at a zombie. It is an old role they just reposted to trick the algorithm.
Last year, a client of mine-let's call him Mark-came to me. He was demoralized. He had applied to a Director role at a major cloud provider. "Perfect fit," he said. "Posted yesterday."
I looked at the URL. The Job requisition ID ended in 004. The company's current listings were in the 900s.
I told him not to apply. He did anyway. He is still waiting for a rejection email that will never come.
The "Source Code" Audit (The Technical Proof)
This is the most important thing you will read today.
If you want to know if a job is real, do not look at the pretty UI. Look at the code. HR managers can lie on the front end, but the database timestamp rarely lies on the back end.
THE GHOST BUSTER WORKFLOW
- Go to the job posting on the company's own career site (not LinkedIn).
- Right-click anywhere on the page.
- Select View Page Source (or Inspect Element).
- Press
Ctrl + F(orCmd + F).- Search for:
datePosted
You are looking for the schema.org data. This is the raw data Google reads.
You will often see something like this: "datePosted": "2025-09-12T08:00"
But the job board says "Posted 3 days ago" (which would be January 2026).
The Verdict: If the datePosted in the source code is more than 60 days old, stop. Close the tab. Do not pass Go.
Unless it is a role for a literal rocket scientist, no legitimate job stays open for 6 months. If they haven't hired someone in 6 months, they either have unrealistic expectations, or they aren't actually hiring.
(Personally, I think the "Easy Apply" button is the worst invention in human history. It reduced hiring to a slot machine. But that is a rant for another day.)
The "Evergreen" Issue
You know those job descriptions that sound incredibly generic?
"Software Engineer II. Responsibilities: Write code, attend meetings, be a team player."
No mention of the specific team (e.g., "Payments Team"). No mention of the specific stack or project. Just... generic fluff.
This is an Evergreen Requisition.
Big tech companies do this constantly. They open a "bucket" listing to collect 10,000 resumes. They have no specific headcount approved. They just want to harvest your data so that if someone quits in six months, they have a pile of bodies to call.
The Rule: If the job description could apply to any company on earth, it's not a real job. Real jobs have specific problems that need solving.
The LinkedIn "People" Audit
Competitors tell you to "research the company culture." I say ignore the culture. Look at the velocity.
Go to the company's LinkedIn page. Click the "People" tab. Search for the title of the job you are applying for (e.g., "Product Manager").
Look at the "Start Date" of the people in the results.
- Scenario A: You see 3 people started in the last 4 months. Verdict: Real. They are actively hiring and onboarding.
- Scenario B: The last person hired with that title started 14 months ago. Verdict: Ghost Job.
If a company claims to be "growing fast" but hasn't onboarded a new hire in your department in a year, the data is inconsistent. Simple as that.
The Solution: Don't Apply. Ping.
So, what do you do? You stop playing their game.
If you find a job that passes the 120-Day Rule and the Source Code Audit, do not click "Apply."
Send a verification email first.
Find the likely hiring manager (Head of X). Send this exact script. It saves you hours of wasted effort.
THE "IS THIS REAL?" SCRIPT
Subject: Quick check re: [Job Title]
Hi [Name],
I saw the [Job Title] role posted. Before I go through the formal application process, I wanted to double-check: is this still an active priority for Q1?
I ask because I know automated systems often keep listings up longer than intended. If you're actively interviewing, I'll send my portfolio over immediately.
Best, [You]
Why this works:
- It treats them like a human, not a portal.
- It shows you understand how the industry works (status signal).
- If they don't reply, the job is a ghost. You just saved yourself 2 hours of tailoring a resume.
Stop screaming into the void. Check the code. Check the dates. And if it smells like a ghost (or turns into a generic data farming scheme), let it haunt someone else.
If you already uploaded your resume to a sketchy portal, your address is likely sold. Use this Data Broker Master List to scrub your personal info for free.
Instead of playing the numbers game with phantom listings, focus on getting headhunted. Use this LinkedIn Boolean search optimization guide to make recruiters come to you.
