Ghost Job Detector avatar
Ghost Job Detector
Under maintenance

Pricing

Pay per usage

Go to Apify Store
Ghost Job Detector

Ghost Job Detector

Under maintenance

Identify ghost, fake, or reposted LinkedIn and company jobs. Monitors listings, extracts signals, and calculates a Hiring Likelihood Score to help job seekers focus on genuine opportunities.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Badruddeen Naseem

Badruddeen Naseem

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

3

Monthly active users

4 days ago

Last modified

Share

Detect fake, abandoned or "ghost" job postings before you waste your time applying.

This actor tracks job listings over time, captures changes (reposts, title/location modifications, disappearance), extracts meaningful signals and calculates a Hiring Likelihood Score — helping you quickly understand which jobs are actually worth applying to.

Free to use until February 16, 2026
(Apify platform usage costs — compute, storage, proxies — still apply)

✨ Features

  • One-time check or continuous monitoring of job postings
  • Works with LinkedIn and many other job boards (that allow public access)
  • Detects common ghost-job signals:
    • No changes for many weeks/months
    • Reposts with near-identical content
    • Sudden disappearance
    • Very short or unchanged description
    • Title/location changes without real updates
  • Outputs clear Hiring Likelihood Score (0–100) + human-readable classification
  • Built-in residential proxy support (strongly recommended for LinkedIn)

⚡ How It Works

flowchart LR
A[Job URLs] --> B[Periodic Snapshots]
B --> C[Signal Extraction]
C --> D[Hiring Likelihood Score & Classification]
D --> E[RESULTS Dataset]
```markdown
| Field | Type | Required? | Default | Description |
|-----------------------|----------------|---------------|---------|----------------------------------------------------------------------------|
| `job_urls` | string / array | **Yes** | — | Job posting URLs (comma, semicolon, newline separated or array) |
| `run_mode` | string | **Yes** | — | `"single"` – one-time check<br>`"monitor"` – continuous tracking |
| `monitor_days` | integer | If `monitor` | — | How many days to keep monitoring (ignored in single mode) |
| `use_residential_proxy` | boolean | No | `false` | **Strongly recommended = true** for LinkedIn (helps avoid blocks) |

Input Examples

{
"job_urls": [
"https://www.linkedin.com/jobs/view/4350325108",
"https://company.com/careers/software-engineer-xyz-12345"
],
"run_mode": "monitor",
"monitor_days": 14,
"use_residential_proxy": true
}

Quick single check (fast scan):

{
"job_urls": "https://www.linkedin.com/jobs/view/3987654321",
"run_mode": "single",
"use_residential_proxy": true
}

📤 Output (RESULTS dataset)

One clean object per job URL.

FieldTypeDescription / Example values
urlstringOriginal job posting URL
scorenumber0–100 (higher = higher probability it's a ghost job)
classificationstring"Actively Hiring", "Possible Hire", "Low Intent", "Likely Ghost Job"
signalsarray[object]List of detected signals (type, weight, value, message)
checkedAtstring (ISO)Timestamp of the last meaningful snapshot used for scoring
errorstring | nullError message if processing failed (page not found, blocked, parsing issue…)

💡 Tips for Best Results

Always enable residential proxies when checking LinkedIn jobs Monitor for at least 7–14 days for significantly more reliable ghost detection Use the score as a strong filtering signal — not as a 100% final verdict Start with "single" mode to quickly scan many jobs, then monitor only the promising ones