Career Page Job Monitor — ATS Hiring Changes avatar

Career Page Job Monitor — ATS Hiring Changes

Pricing

$0.05 / 1,000 results

Go to Apify Store
Career Page Job Monitor — ATS Hiring Changes

Career Page Job Monitor — ATS Hiring Changes

Scan public career pages and pull every open role plus every ATS job link (Lever, Greenhouse, Ashby, Workable, Personio, Recruitee), each with title, location, URL and a stable ID. Re-run on a schedule, diff the IDs, and you get a hiring signal: roles added, removed or changed.

Pricing

$0.05 / 1,000 results

Rating

0.0

(0)

Developer

David

David

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Scan public career pages and get every open role in one dataset, each with a stable ID you can diff between runs. That diff is the hiring signal: the roles a company added, removed or renamed since last week, without anyone opening a browser.

This Actor is intentionally narrow: it reads public career/job pages, respects robots.txt by default, extracts current job-posting rows, and gives each row a stable ID that can be compared between scheduled runs.

Who uses it

  • Sales and GTM teams: a company opening three SDR roles is a company about to buy sales tooling. Watch your target accounts and act on the signal the week it appears.
  • Recruiters: track which roles competitors open, how fast they close, and which titles keep coming back.
  • Founders and analysts: headcount plans are public before press releases are. Job titles tell you which product line is being staffed.
  • Job seekers: watch 20 company career pages at once and apply the day a role goes up.

Job data extracted from career pages and ATS boards

  • JSON-LD JobPosting data when a page exposes structured job data.
  • Links to common public job-board systems such as Lever, Greenhouse, Ashby, Workable, SmartRecruiters, Breezy, Personio, and Recruitee.
  • Generic career/job links on public career pages.

Input

{
"startUrls": [
{ "url": "https://apify.com/careers" }
],
"maxPagesPerSite": 5,
"sameDomainOnly": true,
"respectRobotsTxt": true
}

Hard limits protect the buyer from accidental runaway runs:

  • startUrls: maximum 20 per run.
  • maxPagesPerSite: default 5, hard maximum 25.
  • No login, no paywalls, no private data, no browser automation.

Output

Each dataset item contains:

{
"companyHost": "example.com",
"sourceUrl": "https://example.com/careers",
"jobUrl": "https://example.com/careers/software-engineer",
"title": "Software Engineer",
"location": "Remote",
"descriptionSnippet": "Short snippet when available",
"extractionMethod": "json_ld_jobposting",
"confidence": 0.98,
"stableId": "1d72f3...",
"detectedAt": "2026-07-01T00:00:00.000Z"
}

Data returned for every job

FieldWhat it holds
companyHostDomain of the company being watched
sourceUrlCareer page the row was found on
jobUrlDirect link to the job posting
titleJob title
locationLocation string when the page publishes one
descriptionSnippetShort excerpt when available
extractionMethodjson_ld_jobposting, ATS link, or generic career link
confidenceExtraction confidence between 0 and 1
stableIdHash used to diff one run against the next
detectedAtTimestamp of the run that saw the row

Monitoring workflow

Run this Actor on an Apify schedule with the same input. Compare stableId values across datasets to detect new, removed, or changed job postings.

Boundaries

This Actor only targets public pages. Keep respectRobotsTxt enabled unless you have verified that your use case and the target site allow crawling. Do not use it for private, authenticated, paywalled, or sensitive personal data.