Job Link Checker — Is the Job Still Open? Closed & Expired Jobs
Pricing
from $0.80 / 1,000 link checkeds
Job Link Checker — Is the Job Still Open? Closed & Expired Jobs
Check job links and get open, closed or unknown for each, with the evidence: the ATS API (Greenhouse, Lever, Ashby, Workday and 5 more), LinkedIn, or the page (404, expired, "no longer accepting"). Re-run daily: only links whose status changed. No login.
Pricing
from $0.80 / 1,000 link checkeds
Rating
0.0
(0)
Developer
Northbell
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Job Link Checker — Is the Job Still Open?
You have a list of job links — on your job board, in a spreadsheet, in yesterday's scraper run — and some of them closed since. Give this Actor the links and get back, for each one, open, closed or unknown, with how it was decided and the evidence quoted. Run it again tomorrow on the same list and get only the links whose status changed (every link is still checked and charged, so the saving is in rows to handle, not in cost). No login.
$1 per 1,000 links checked, plus $0.01 per run.
How each link is checked
The strongest check available is used, and named in how:
how | links | closed when |
|---|---|---|
ats | Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable, Recruitee, Personio, Breezy — also Greenhouse jobs shown on a company's own domain (?gh_jid=) | the ATS's public API has no such open job. Greenhouse, Lever, SmartRecruiters and Workday answer per job; for the others the job is looked up among all of the board's open roles, read once per run |
linkedin | linkedin.com/jobs/view/… | the public job page is gone (404) or says No longer accepting applications |
page | any other job page | the page answers 404 or 410; its JobPosting data has a validThrough in the past; it says the job is closed (English, German, French, Dutch, Spanish wording); or the job page sends you to the site's front page or job list |
unknown is an answer, not a guess. A page with none of those signals, a site that refuses automated readers, or a request that fails comes back unknown with the reason. A page that carries JobPosting data and no closed signal is open.
Measured on 11 October 2026 on 163 job links that our own scrapers collected 6 to 11 days earlier: 23 had closed, none came back unknown. Workday 14 of 40 closed in 11 days (we searched the board for two of them by requisition number: not there), Greenhouse 5 of 40, Lever 3 of 40, LinkedIn 1 of 43.
Run it again and again
- On a schedule — save your input as a task and add a Schedule: the same list of links every morning, or right after your job scraper's scheduled run. Send each run to Google Sheets, Slack or email with an integration on the task.
- Watch for changes — Turn on Return only links whose status changed: from the second run you receive only the jobs that closed (or reopened) since the last check, each with the evidence.
- In bulk — Put every link in Job links, or pick every scraper run in Datasets from your job scraper runs: up to 20,000 links in one run.
What you get
One row per link:
| field | |
|---|---|
status | open, closed or unknown |
how, reason | e.g. ats / not-on-board, page / expired, linkedin / closed-notice, page / http-404 |
evidence | what the decision rests on, quoted: the API answer, the closed sentence from the page, the validThrough date |
previousStatus, statusChanged, statusSince | the last check of this link, whether the status changed, and since when the current status holds |
title, company | carried over from your dataset rows |
provider, board, jobId, httpStatus, finalUrl | the details behind the check |
Input
- Job links (
urls): one per line, any mix of sites. - Datasets from your job scraper runs (
datasetIds): the link is read fromjobUrl,url,link,applyUrland similar fields on each row. - Up to 20,000 links per run. The same link given twice is checked once.
Pricing
$1 per 1,000 links checked, plus $0.01 per run. With Return only links whose status changed on, every link is still checked (and charged), but you only receive the ones that changed. If a run reaches your Maximum total charge, it stops there and remembers the links it checked; the others keep their earlier result until the next run.
For AI agents
Call with {"urls": ["<job link>", "..."]}. Each row has type: "link", status (open / closed / unknown) and evidence as text.
Related
Score the jobs that are still open for staleness and reposting: Ghost Job Detector. Every open role of a company, from its website: Careers Page Jobs Scraper. LinkedIn jobs with applicant counts: LinkedIn Jobs Scraper with Applicant Counts.