You can't prove from outside that a software engineering posting is a ghost job. You can spend five minutes finding out whether it's worth an hour of your time. Look for the role on the company's own careers page, read its age and wording as hints, and decide before you apply the date a quiet application goes to Closed.
Is that engineering posting real? Start with the company's own board
A ghost job is a posting for a role the company isn't actively filling. The Congressional Research Service says there are no official statistics on how many exist. Its list of reasons runs from deliberate to accidental. Deliberate: building a candidate pool, looking like a growing company, a role they plan to give to an internal candidate. Accidental: plans changed, or a job board copied a posting after the role was filled.
That mix is why you can't read intent off a listing. What you can read is whether the company itself still shows the role.
Find the role on the employer's own careers page
Open the company's site, go to its careers page and look for the same title. Built In's advice is the same: cross-reference the company website. A listing that sits on job boards but not on the company's own site is a red flag.
If it's missing there, skip it. You don't need to decide whether anyone meant it. Greenhouse's help pages say closing a job unpublishes its posts from all of the organisation's job boards. So a role that's gone from the company's board has most likely been taken down. A copy on an aggregator can outlive it.
If it's there, you've learned the job is open. You haven't learned that anyone is reading applications.
What else counts as evidence, and what doesn't?
Age and reposts are hints, not proof
Built In treats a listing posted more than a month ago, and especially one up for two or three months, as a warning sign. It's a fair nudge, but weaker than it sounds. Greenhouse's documentation says admins can set a rule to unpublish posts after a set period (minimum seven days) and optionally republish them. It describes no automatic expiry unless an admin sets a rule. So an old listing can be a forgotten post, and a fresh-looking one can be an automatic repost.
Treat age as a reason to look harder at the other signals, not as a verdict.
Engineering-specific wording
For engineering roles, the wording tells you more than the date:
- We'd read titles like "Software Engineer - Open Application" or "Join our talent pool" as a pipeline, not a seat.
- In our read, a real search usually names a team, a level and the stack.
- We'd also look twice at the same title repeated for several levels or cities with identical text. Built In flags the same position posted again and again.
None of this is proof. A thin description can come from a busy recruiter, and a detailed one can come from a company that's only collecting resumes. We'd weight the company's own board first and wording second.
How common is this for engineers?
Greenhouse says that on its own platform, 18-22% of postings in a given quarter are classified as ghost jobs. It defines them as positions advertised with no intent to hire but doesn't say how it decides a posting has none. No source we found gives a share for software engineering roles. For a figure that matters to you, count the rows in your job-search sheet with an Applied stage that are still live at 30 days with no reply.
What should you do after you apply to a role you aren't sure about?
Decide the end date before you press submit. Log the posting URL and the day you applied, then follow the same rule you'd use for any quiet application: a note at two weeks, a second one a week later, and then Closed. Closed is the stage you move a row to in your sheet or tracker when you stop waiting. The two-follow-up rule for a quiet application has the wording.
If the posting disappears, you can close the row as "Posting gone", which is one of the closed reasons in a spreadsheet with a Posting gone closed reason. If you later get as far as interviews and the replies stop, what to do once an interview round goes quiet picks up from there.
When a ghost-flagged role goes to Closed
Closed isn't a verdict on you or on the company. It means you've stopped holding a slot for this one, and the energy goes to roles that are more likely to answer. If a reply does turn up later, you can reopen the row.
Worked example: one backend engineer, two postings (illustrative)
Say she finds "Senior Backend Engineer" on a job aggregator, posted about 75 days ago. She opens the company's careers page and the role isn't there. She doesn't spend the hour tailoring. The row stays Saved, not applied.
Another company's posting for the same kind of role is on its own board, so she applies on 3 November. She logs the board URL and the date. She sets the rest at once: follow-up around 17 November, a second note a week later, Closed on 1 December if nothing comes back, with the reason "No reply".
On 9 December she checks the board and the role is gone. The row already reads Closed. She never had to wonder whether she'd been ignored, because the date had decided it weeks earlier.
What to do with the roles you're unsure about this week
Take the postings you're least sure about. For each one, run the five-minute check: is it on the company's own board, how old is it, does the description name a team and a stack. Apply only where it passes, tailor as much as the role deserves, and put a Closed date in the row before you send anything.
For the ones that fail the check, keep them as Saved and move on without guilt. You haven't skipped a chance. You've declined to guess about a company that may not be hiring.
To keep these dates and reasons in one place, start with our job search tracking guides.
Keeping the dead ends out of your search
If you've been checking each company's own board by hand, Job Search by HighCircl starts from there: its roles come only from employers' own boards. A role disappears when the company takes it down. An employer can still leave a role up without hiring, so your Closed date still matters. It's free during the open beta, which is open to 300 people in the US.
FAQ
How can I tell if a software engineering job posting is a ghost job?
You can't prove it from outside. Check whether the same role is on the company's own careers page. Then look at how long it's been up and whether the description names a team, level and stack. A missing listing on the company's page is the strongest hint to skip it.
Does a job that's been up for months mean it's a ghost job?
No. Greenhouse's documentation describes no automatic expiry unless an admin sets a rule, and admins can also set republish rules. So a long-lived posting can be a forgotten one. A recent one can be an automatic repost. Treat age as a hint.
What share of job postings are ghost jobs?
No official figure exists, according to the Congressional Research Service. Greenhouse says that on its own platform 18-22% of postings in a given quarter are classified as ghost jobs. It doesn't say how it decides a posting has no intent to hire. No source we found gives a share for software engineering roles.
Is it worth applying to a reposted job?
Apply if the role is on the company's own board, and set the Closed date before you send it. A repost on an aggregator with no match on the company's page isn't worth the tailoring time.
When should I stop waiting on an application and move it to Closed?
A common rule is a follow-up at two weeks, a second note a week later, then Closed. Setting that date when you apply means you don't have to decide whether to give up while you're feeling the silence.
