LinkedIn Job Apply Link Verifier & Ghost Job Checker avatar

LinkedIn Job Apply Link Verifier & Ghost Job Checker

Pricing

from $2.80 / 1,000 verified job decisions

Go to Apify Store
LinkedIn Job Apply Link Verifier & Ghost Job Checker

LinkedIn Job Apply Link Verifier & Ghost Job Checker

Ghost job checker and apply-link verifier for LinkedIn job rows. Recovers the exact official application link, flags expired and mismatched listings, and blocks unverified rows before they reach your job board or recruiting pipeline.

Pricing

from $2.80 / 1,000 verified job decisions

Rating

0.0

(0)

Developer

Kamer Ozkan

Kamer Ozkan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Categories

Share

Recover exact company application links and stop unsafe job rows before they reach your users.

LinkedIn job feeds often return an empty external apply URL, a copy of the LinkedIn job URL, or a generic company careers page. This Actor takes the job rows you already have, reconciles each one against public employer and ATS evidence, and returns a safe action for your workflow.

It is built for job boards, recruiting products, staffing automations, and job data pipelines. It is not another job scraper.

What it fixes

Feed problemActor decision
External apply URL is missingFinds and proves the exact employer or ATS route
Apply URL opens a generic careers boardResolves the board to the exact job
LinkedIn row remains visible after the official job closesReturns EXPIRED with no publishable URL
Company, title, location, or job content conflictsReturns SOURCE_MISMATCH or STATUS_CONFLICT
The job only supports LinkedIn Easy ApplyReturns LINKEDIN_EASY_APPLY and the LinkedIn route
Evidence is not strong enoughReturns AMBIGUOUS, publishes no URL, and does not charge

The safety rule is simple: no proof, no link.

Try it in 60 seconds

  1. Keep the two prefilled example jobs.
  2. Click Start.
  3. Open the Verified apply routes dataset view.
  4. Use actionUrl only when safeToPublish is true.

The prefill demonstrates both supported outcomes: an exact company-owned application page and a LinkedIn Easy Apply route. No LinkedIn account, cookies, or browser profile are required.

Input

Use either an existing Apify dataset or paste rows directly. Common LinkedIn scraper field names are detected automatically.

Each row needs:

  • LinkedIn job URL or job ID
  • job title
  • company
  • location

An existing applyUrl, companyApplyUrl, or company website is optional. It is treated as a hint and must pass the same verification policy.

{
"rows": [
{
"jobId": "4441060956",
"jobUrl": "https://www.linkedin.com/jobs/view/4441060956",
"jobTitle": "Account Executive - Travel",
"companyName": "Nike Communications, Inc.",
"location": "New York, NY"
}
],
"maxItems": 25
}

For an existing dataset, provide its ID instead:

{
"datasetId": "YOUR_DATASET_ID",
"maxItems": 500
}

Output

Every input row produces an auditable decision. A verified result looks like:

{
"status": "ACTIVE",
"actionUrl": "https://nikecommunicationsinc.applytojob.com/apply/eDPh7BCIhx/Account-Executive-Travel",
"safeToPublish": true,
"reviewRequired": false,
"usefulClassification": true,
"confidence": 1,
"sourceProvider": "jazzhr",
"evidence": [
"linkedin_apply_method:OFFSITE",
"official_site_to_career_source_verified",
"generic_board_resolved_to_exact_job",
"conservative_official_inventory_match"
]
}

Important output fields:

FieldUse
actionUrlRoute your product may open or publish
safeToPublishMachine-readable release gate
statusFinal decision for the job row
reviewRequiredWhether the row should enter a manual queue
confidenceStrength of the match
sourceProviderVerified ATS or official source
evidenceChecks supporting the decision
requestAccountingRequests used by each verification layer
originalOriginal input row, unchanged

Decision statuses

StatusMeaning
ACTIVEExact live official job route verified
AUTHORIZED_APPLY_ROUTEValid source-owned application route verified
LINKEDIN_EASY_APPLYNo external route is expected; use the LinkedIn URL
EXPIREDThe exact official job is no longer available
SOURCE_MISMATCHThe row appears to belong to a different hiring organization
STATUS_CONFLICTTrusted sources disagree about the current state
AMBIGUOUSEvidence is insufficient; no URL is published and the row is not charged

Why this is different

Most LinkedIn job Actors collect listings. Official career-site APIs sell their own job inventory. This Actor works between those products and your publishing system:

  1. It preserves your existing job row.
  2. It checks customer-supplied links instead of trusting them.
  3. It resolves generic ATS boards to the exact job.
  4. It compares LinkedIn, employer, ATS, and live detail-page evidence.
  5. It blocks expired, mismatched, conflicting, and unproven routes.

Search results and job mirrors may help discover a candidate, but they can never become a publishable answer on their own.

Quality evidence

The latest clean regression used 100 previously unseen LinkedIn job rows with static resolution memory disabled:

  • 98 useful classifications
  • 97 safe action routes
  • 2 rows safely held as AMBIGUOUS
  • 0 unsafe guessed URLs
  • 697 total HTTP requests
  • 468.6 seconds on the local reference run

The production build also passed private Apify cloud tests:

  • 2 normal rows: 2 useful, 2 publishable, 0 held
  • 1 unresolved row: 0 publishable, correctly held for review
  • 42 automated regression tests passed

These are measured tests, not a promise that every future source will resolve automatically. The product promise is that an unproven route is never marked safe.

Pricing

The Actor charges $4.00 per 1,000 verified job decisions.

  • $0.004 per useful decision
  • AMBIGUOUS rows are delivered without charge
  • failed runs do not create useful-decision charges
  • Apify platform usage is included
  • no subscription or per-seat fee

Example: verifying 25,000 useful job rows costs $100.

Production workflow

For a recurring feed:

  1. Run your existing LinkedIn or job scraper.
  2. Pass its dataset ID to this Actor.
  3. Publish rows where safeToPublish is true.
  4. Send reviewRequired rows to a review queue.
  5. Schedule the workflow or connect it through webhooks, Make, Zapier, n8n, or the Apify API.

The default batch is 25 jobs for easy inspection. A run accepts up to 500 jobs. Cold companies take longer because their public website, ATS, and job evidence must be discovered live.

Responsible use and limits

  • The Actor checks public web evidence and does not require LinkedIn login credentials.
  • Source websites can throttle, remove, or change public pages.
  • An active official listing proves that an application route exists. It cannot prove a hiring manager's private intent or guarantee that a role will be filled.
  • Review the terms and laws that apply to your data source and use case.