A job posting stays live even after the role is filled, or it was never open at all.

You can spot these fakes or stale listings by looking for three categories of red flags: posting age and reposting patterns, recruiter/company behavior, and the job description itself. The faster you can filter them out, the faster you can focus on roles that are actually hiring right now.

Check how long the posting has been live

A job that's been posted for months but is still labeled "urgent" or "hiring immediately" is a yellow flag. Most legitimate roles fill within 2–3 weeks of the initial post; if you're seeing the same posting resurface every few weeks with minor tweaks, the company either rejected all candidates, is slow to close the listing, or is using the posting as a fishing expedition to build a candidate pool.

On LinkedIn and job boards, use the "Posted" date filter. If a posting is over 30 days old and the role details haven't changed, ask yourself: why hasn't this been filled yet? Either the bar is unrealistically high, the hiring process is stalled, or the role was never real.

Look for recycled or templated job descriptions

Genuine job descriptions are usually specific: they mention actual projects, team names, reporting structure, or recent wins. Templated descriptions with generic bullet points ("Must be a team player," "5+ years in X technology," no mention of what you'd actually build) are common in ghost jobs.

Search for exact phrases from the job description on Google or LinkedIn. If the same text appears across multiple postings from different companies, it's likely a template or a bait-and-switch.

Test the recruiter's responsiveness and knowledge

Email or message the recruiter directly. A legitimate recruiter will respond within 24–48 hours and can answer specific questions about the team, project, or timeline. If they're vague, don't know details about the role, or use boilerplate language, the listing may be placeholder material.

Ask: "Who will I report to?" or "What's the current status of this hire?" Real recruiters answer these instantly. Fake listings don't have answers because no one is actually hiring.

Watch for missing or inflated compensation details

Legitimate postings either show a salary range or state "competitive compensation." Postings with wildly high ranges ("$80k–$250k") for the same role, or ones that omit pay entirely but promise to discuss "based on your background," are often designed to attract volume, not fill a real role.

If the role exists and is real, the company has already decided on a budget. Vagueness here signals either low intent or a lead-gen scheme.

Check for inconsistencies in job title, requirements, or seniority level

A posting that lists "Junior Developer" but demands "10+ years of AWS and Kubernetes" is mismatched. Legitimate postings align title, level, and requirements. Misalignment suggests the posting was copied from another role, hastily created, or intentionally designed to cast a wide net without real hiring plans.

Look for "We're always hiring" language or evergreen postings

Some companies post roles perpetually, even when they're not actively hiring. This is often called an "evergreen" job posting. It's not always a scam—large tech companies do this to build talent pipelines—but it means your odds of getting a fast response are lower. Pair this signal with other flags. If it's an evergreen *plus* all the other red flags above, skip it.

Use posting recency as your primary filter

The absolute best indicator of whether a role is real and open is how recently it was posted. GiraffyReach detects jobs the moment they go live, which means you're applying before the first wave of applicants even sees the listing. By the time a posting is 2+ weeks old, it's either filled, stalled, or fake.

Speed matters. Being first doesn't just mean a better chance—it means you're only applying to roles that are legitimately hiring, not spending time on phantom postings that waste your effort.