Ghost Job Detector
Pricing
Pay per usage
Ghost Job Detector
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
Actor stats
0
Bookmarked
3
Total users
3
Monthly active users
4 days ago
Last modified
Categories
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 LRA[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
Continuous monitoring (recommended for best ghost detection):
{"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.
| Field | Type | Description / Example values |
|---|---|---|
| url | string | Original job posting URL |
| score | number | 0–100 (higher = higher probability it's a ghost job) |
| classification | string | "Actively Hiring", "Possible Hire", "Low Intent", "Likely Ghost Job" |
| signals | array[object] | List of detected signals (type, weight, value, message) |
| checkedAt | string (ISO) | Timestamp of the last meaningful snapshot used for scoring |
| error | string | null | Error 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