Skip to content

How we estimate ghost-job risk

By Jesse Johnson, Founder of ShouldApply. Published , last updated .

Every job ShouldApply scores gets an estimated ghost probability from 0 to 95%. Each signal below either adds to the estimate or pulls it down, and the total stops at 95% so no posting is ever called a certain ghost. The number is an estimate of risk, never a verdict on any employer's intent.

How the estimate is built

The model is additive. Signals that suggest a dead or never-real opening add to the score; signals that confirm a live requisition subtract from it. Some signals step up with severity, so a 95-day-old posting counts for more than a 35-day-old one. We don't publish the value of each signal: those numbers stay server-side so the estimate can't be gamed by tuning a listing to slip under them. What you see on a scored job is the probability plus the plain-English reasons that drove it.

Signals that raise the estimate

Posting age

Raises risk

Age adds to the estimate past 30 days, more past 60 and more again past 90. Real openings get filled; a listing still up after three months has often lost its budget or its urgency.

Silent reposts

Raises risk

When a board shows a fresh date but the original listing timestamp is older, we use the older date. A role that keeps getting re-dated is treated as old, because it is.

Repost and refresh loops

Raises risk

The same role reappearing on a regular cycle suggests an automated ATS refresh or resume-pile building, not a chair being filled. We track first-seen dates across the job pool to catch it.

No salary, or a very wide range

Raises risk

A company that will not name a number often has no approved budget for the seat. A range so wide it says nothing counts against the posting too.

Thin description

Raises risk

Under 100 words, with no team and no concrete responsibilities. Boards that only publish snippets are exempt, since the short text is the board's choice, not the employer's.

Evergreen talent-pool titles

Raises risk

Titles like "General Application" or "Future Opportunities" are pipelines, not openings.

A lone, aging listing

Raises risk

A company whose only open role has been up for 30+ days looks more like a placeholder than a team that is hiring.

More than 500 applicants while still open

Raises risk

Hundreds of applicants over weeks with the listing still live usually means nobody is reading them or the req is frozen.

Staffing-agency indicators

Raises risk

Postings routed through staffing shells are more often talent-pool nets than specific openings. Detected from employer-name and apply-link patterns.

Recent layoffs and WARN notices

Raises risk

A company that filed a WARN notice or announced a reduction recently is less likely to be filling new seats. The effect fades over a 90-day window.

Old funding plus a stale listing

Raises risk

For venture-backed companies, a long gap since the last round combined with an aging posting suggests a hiring freeze.

Closed on the employer's own systems

Raises risk

If the requisition is gone from the origin ATS, or the role no longer appears on the company careers page, the posting is treated as likely dead.

Signals that lower it

Verified on the careers page or origin ATS

Lowers risk

When the same role is live on the company's own careers page or applicant tracking system, the estimate drops.

A named recruiter or hiring manager

Lowers risk

A real person attached to the posting is a sign someone owns the hire.

A company with several open roles

Lowers risk

Five or more open roles at the same employer suggests an active hiring team, not a single forgotten listing.

Sample size and refresh cadence

As of , the Ghost Jobs Report draws on 8,711 postings scored for ghost risk across 3,967 employers, out of 169,400 active listings in the job pool. These figures refresh once a day.

  • Ghost estimates are recalculated daily for jobs posted in the last 90 days that haven't been checked in the past 24 hours.
  • The same daily run re-checks company careers pages for postings that are 14+ days old or already carry a risk signal.
  • A job is also scored the moment you add it, so a fresh estimate never waits for the nightly run.

Limitations, plainly

  • These are probabilistic signals, not proof. A high estimate can be wrong about any individual posting.
  • Our pool skews toward the roles our users search for; it is not a census of the job market.
  • If we can't reach a company's careers page, that check is skipped and counts neither way. A careers page that lists the role under a different title can still count against the posting, which is one more reason the result is an estimate, not a verdict.
  • Company-level statistics are only ever published above minimum sample sizes, and always as estimates.

See the numbers this method produces in the Ghost Jobs Report, read what each flag means on your dashboard in the ghost job detection guide, compare the same signals by state on the job postings map, explore the employer directory in the Ghost Job Index, or test a specific posting with the free ghost job checker.