Signal Quality
How To Spot A Ghost Job In 30 Seconds
By Agentic Jobs Editorial Team | Published November 20, 2025 | Updated March 29, 2026
A practical screening framework to identify ghost job postings, listings that look active but have no real hiring intent behind them. Save time, increase interview conversion.
Ghost jobs drain applicant energy and distort market perception. A ghost job is a publicly active listing where no real near-term hiring process is underway. The company posted it, but for reasons ranging from budget freezes to simple HR system neglect, nobody is actually interviewing. The harm is concrete: candidates tailor resumes, write cover letters, and wait for responses that never come. This guide gives you a repeatable filter so those submissions stop happening.
What This Guide Is Not
This is not a method to prove definitively that a company is acting in bad faith. Ghost job status is probabilistic. You're building a priority filter, not a blacklist. A listing that scores poorly on several signals should move down your queue, not necessarily be rejected entirely.
The 30-Second Rejection Filter
Before spending more than 30 seconds on any listing, run it through these five checks in order. If two or more fail, deprioritize and move on.
| Check | What to Look At | Red Flag |
|---|---|---|
| 1. Post Date | When was this listing first posted or last refreshed? | Posted more than 45 days ago with no visible update |
| 2. Title Specificity | Does the title name a function and seniority level? | Vague title like "Software Engineer, All Levels" |
| 3. Description Detail | Are there named technologies, team context, deliverables? | Boilerplate that could describe any company in any quarter |
| 4. Source Consistency | Does the ATS page match what aggregators show? | Conflicting location, salary, or title across mirrors |
| 5. Company Activity | Any recent news, hiring announcements, product updates? | No web presence; LinkedIn page dormant for 12+ months |
The Five Core Signal Categories
1. Freshness and Repost Patterns
Freshness is the single most reliable signal available in 30 seconds. A listing posted within the past 14 days is statistically more likely to represent active hiring than one posted 60 or 90 days ago, regardless of how polished the description looks.
The more dangerous variant is the repost loop: a listing that expires, gets reposted verbatim, and picks up a new "posted 2 days ago" timestamp while the underlying hiring decision remains frozen. Watch for descriptions that are word-for-word identical across multiple post dates on the same company's career portal. On Agentic Jobs, the trust score penalizes listings our crawler has seen unchanged for an extended period.
2. Description Quality and Role Specificity
Real open roles have context that generic ones don't. When a team is actively filling a seat, the description usually reflects an immediate problem, a departing engineer, a new product initiative, a scaling challenge, even if only implicitly. Signs of genuine specificity:
- Named technologies with version or environment context ("PostgreSQL on RDS with read replicas" vs. "SQL databases")
- A team context or reporting structure mentioned somewhere in the description
- Specific deliverables expected in the first 90 days or first year
- A realistic compensation range for the location and seniority
- A concrete description of the interview process (technical screen, take-home, panel)
Signs you're looking at copy-paste boilerplate:
- The responsibilities section reads like a Wikipedia definition of the job function
- "We're always looking for talented people" phrasing with no timeline specificity
- Equal opportunity and legal boilerplate is the longest section in the posting
- The exact same description appears, word-for-word, across three or more job boards
3. Source Quality and Posting Proximity
Not all sources carry the same weight. An ATS page such as Greenhouse, Workday, Lever, Ashby, or iCIMS is the closest available record to what the employer actually published. Listings from direct ATS sources have been explicitly pushed by a recruiter or HR system, not scraped and re-syndicated through three layers of aggregation.
| Source Type | Trust Level | Why |
|---|---|---|
| Direct ATS (Greenhouse, Workday, Lever, etc.) | Highest | Employer published directly; closest to source of record |
| Company careers page (careers.company.com) | High | Employer-managed canonical listing |
| LinkedIn (direct-apply posting) | Medium-High | Often employer-posted but subject to resyndication lag |
| Indeed / Glassdoor aggregation | Medium | Scrapes ATS + employer-submitted; freshness varies by source |
| Third-party scraper aggregators | Lower | Often mirrored and stale; de-duplication quality varies |
4. Metadata Consistency Across Sources
When a listing is actively managed, its metadata is consistent: title, location, seniority, and compensation match across the ATS page and any aggregator mirrors. When a listing is stale or poorly maintained, inconsistencies accumulate. A common pattern: LinkedIn shows "Remote" while the Workday source shows "Austin, TX with a hybrid schedule", because the recruiter updated the ATS after the role was first syndicated but the mirrors were never refreshed. The rule is simple: always verify against the ATS source page before applying.
5. External Company Signals
The most advanced ghost job filter is to look for corroborating evidence of active hiring outside the listing itself. This takes an extra 60 seconds but significantly increases assessment reliability:
- Company LinkedIn page: recent employee additions in similar roles? Recruiter posts from this month?
- Multiple open roles: if adjacent roles (EM, product, QA) are also live, that suggests a genuine hiring cycle
- Recent news or funding: a company that raised within 12 months with several open roles is more likely to be actively hiring
- Glassdoor timing: a surge of new employee reviews in the past 3 months suggests headcount changes are real
The Ghost Job Checklist
- ☐Posted within the last 21 days, or recently refreshed with a content change
- ☐Title is specific to a seniority level and job function
- ☐Description mentions team context, technologies, or deliverables
- ☐Compensation range is present and realistic for the location and level
- ☐ATS source page confirms the listing is still live
- ☐Location and work mode are consistent across source and mirror listings
- ☐Company has other open roles or recent public hiring activity
- ☐No identical description found under different post dates
Listings that pass six or more of these eight checks are worth a full tailored application. Listings that pass three or fewer should be deprioritized or skipped entirely.
Real Listing vs. Ghost Listing: Side by Side
✓ High-Signal Listing
Backend Engineer, Payments Infrastructure
Company: Series B fintech, ~120 employees
Posted: 6 days ago via Greenhouse
Excerpt: "You'll own the payment retry logic and webhook reliability layer for our Stripe integration. The team is 4 engineers reporting to the VP of Eng. We're expecting the first production increment within 60 days of joining."
Salary: $155,000 to $185,000 + equity | Location: Remote (US timezones)
✗ Low-Signal Listing
Software Engineer
Company: Enterprise technology company
Posted: 78 days ago via LinkedIn (re-posted)
Excerpt: "We are looking for a talented software engineer to join our growing team. You will work on innovative solutions and collaborate with cross-functional stakeholders to deliver high-quality software products."
Salary: Not listed | Location: Multiple locations
How Agentic Jobs Applies This Automatically
Every listing on this platform is scored using a version of this logic. Source quality, posting freshness, metadata completeness, and deduplication signals combine into a trust score from 0.0 to 1.0 visible on every listing card. High Trust listings have passed the automated version of this checklist. You can filter by trust tier to immediately surface only listings where the observable signals are clean, and use the extra time you save on the filtering to spend on applications that are actually worth the effort.
Apply This Filter on the Dashboard
Filter to High Trust listings and see which roles are worth your time today.
Escalation Workflow For Borderline Listings
Some listings are not clearly high-signal or low-signal after the first pass. This middle bucket is where most wasted time happens because candidates keep revisiting the same uncertain posting without making a decision. Use an escalation workflow with explicit rules so ambiguous listings stop consuming attention. The objective is not perfect certainty. The objective is better allocation of application hours across a large market with uneven posting quality.
- Assign a confidence label after first pass: high confidence real, uncertain, high confidence stale.
- For uncertain listings, run one deeper source check: open ATS source, verify post date and requirements consistency, and confirm work mode details.
- If ATS data is inconsistent with aggregator data, lower the listing priority by one tier and set a 72-hour revisit reminder.
- If no change occurs after 72 hours and no corroborating hiring activity appears, move the listing to archive and stop spending time on it.
- Track outcomes weekly: number of uncertain listings promoted to apply, number archived, and interview conversion from promoted listings.
High-value corroboration signals
- A recruiter from the same company posts interview scheduling updates or role-specific hiring messages in the last 30 days.
- The same team has neighboring openings (for example backend plus SRE plus product) that were posted in a tight window.
- The careers page includes role-specific details that changed recently, such as reporting line or stack updates.
- The listing includes timeline language tied to a shipping date, migration milestone, or customer launch.
- Interview stages are described with concrete sequence and expected duration rather than generic wording.
Weekly Measurement To Improve Your Filter
A ghost-job filter becomes more accurate when you calibrate it using your own outcomes. Keep a lightweight worksheet with listing URL, trust estimate, action taken, and final outcome. Over four to six weeks, you will see where your assumptions are wrong. Some candidates over-penalize older listings at established companies where requisitions stay open for valid reasons. Others under-penalize repost loops and lose hours on dead openings. Data from your own funnel is the fastest way to improve decision quality.
| Metric | What Good Looks Like | Why It Matters |
|---|---|---|
| Applications per week | Lower but more selective | Higher quality targeting usually reduces volume while improving conversion |
| Interview conversion | Rising over 3-6 weeks | Signals that your filter is moving attention toward active hiring teams |
| No-response rate | Declining over time | High no-response rates often indicate stale or low-intent postings |
| Time per application | Stable and intentional | You want depth on strong listings, not speed on weak ones |
Treat ghost-job filtering like triage, not theory. If your tracker shows 40 applications and zero recruiter replies, your signal mix is wrong. Reallocate immediately: shortlist fewer listings, verify ATS freshness before writing, and keep a weekly log of response rates by source. Candidates who run this loop usually see no-response rates fall within two to three weeks because effort shifts toward teams that are genuinely hiring.