Career Site Jobs API & Change Monitor avatar

Career Site Jobs API & Change Monitor

Pricing

from $1.50 / 1,000 job or job changes

Go to Apify Store
Career Site Jobs API & Change Monitor

Career Site Jobs API & Change Monitor

Normalize and monitor public jobs from Workday, Workable, Personio, Greenhouse, Lever, Ashby, and JSON-LD career pages.

Pricing

from $1.50 / 1,000 job or job changes

Rating

0.0

(0)

Developer

Isteno Tools

Isteno Tools

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Career Site Jobs API icon

Unofficial independent tool. Not affiliated with or endorsed by Workday, Workable, Personio, Greenhouse, Lever, Ashby, or any company whose public career page is processed. Product names identify compatible public job-board formats only.

Turn public company career pages into one normalized jobs API. Run a current snapshot or monitor added, updated, and removed jobs—with no ATS login, cookies, or private account access.

SourceWhat is supported
GreenhousePublic Job Board API
LeverGlobal and EU public Postings API
AshbyPublic Job Postings API
WorkdayPublic career-site CXS job search and details
WorkablePublic published-jobs account feed
PersonioEnabled public XML jobs feed
Other career sitesServer-rendered Schema.org JobPosting JSON-LD

Built for

  • Job-board, recruiting, and talent-intelligence products
  • Company hiring trackers and competitive monitoring
  • Lead generation from verified hiring signals
  • Research datasets and internal search
  • Automations triggered by new or changed vacancies

Why use it

  • One normalized schema across several major ATS providers
  • Multiple companies in one run
  • Exact maxItems cost control
  • Filtering by title, location, department, date, and remote status
  • Stable fingerprints and deduplication
  • Persistent change detection without exporting candidate or applicant data
  • Partial-source diagnostics without false “removed” events when a source temporarily fails

Run a snapshot

{
"startUrls": [
{ "url": "https://boards.greenhouse.io/greenhouse" },
{ "url": "https://jobs.lever.co/palantir" },
{ "url": "https://jobs.ashbyhq.com/Ashby" },
{ "url": "https://workday.wd5.myworkdayjobs.com/en-US/workday" },
{ "url": "https://apply.workable.com/clients-blackbox-inc/" },
{ "url": "https://personio.jobs.personio.com/" }
],
"maxItems": 1000,
"mode": "snapshot",
"remoteOnly": false
}

Add any number of supported public boards. maxItems is a hard cap across the whole run.

Use structured sources when you want to override a company name or provider:

{
"sources": [
{
"url": "https://boards.greenhouse.io/example",
"provider": "greenhouse",
"companyName": "Example Company"
}
],
"titleKeywords": ["engineer", "developer"],
"locations": ["Riga", "remote"],
"maxItems": 500
}

Normalized output

Each default-dataset item is one current job or one change event:

{
"id": "9ad52e6dc10ca06ed98fcd56",
"fingerprint": "f5d2a0...",
"changeType": "snapshot",
"source": "greenhouse",
"sourceId": "1234567",
"sourceUrl": "https://boards.greenhouse.io/example",
"companyName": "Example Company",
"title": "Senior Platform Engineer",
"location": "Riga, Latvia or Remote",
"workplaceType": "Remote",
"department": "Engineering",
"employmentType": "Full-time",
"descriptionText": "Build and operate...",
"publishedAt": "2026-08-01T09:00:00.000Z",
"updatedAt": "2026-08-02T12:30:00.000Z",
"applicationUrl": "https://boards.greenhouse.io/example/jobs/1234567",
"scrapedAt": "2026-08-03T12:00:00.000Z"
}

The OUTPUT record in the run's default key-value store contains source diagnostics, counts, filter totals, and the state-store name.

Monitor hiring changes

Set "mode": "changes" and run the same input on a schedule. The Actor compares normalized fingerprints with a named persistent key-value store:

  • added: a new stable job identifier
  • updated: the identifier exists but buyer-visible fields changed
  • removed: the identifier disappeared from a healthy source

If a source fails, its previous records are protected from removal. Supply stateStoreName when you want several tasks to share an explicit monitor state; otherwise a deterministic name is derived from the sources and filters.

Cost control

maxItems is the hard result cap. The Store price is shown before a run, and Apify's maximum total charge setting remains authoritative. Diagnostic data is stored in OUTPUT, not the paid dataset. When no matching jobs or changes are emitted, the Actor creates no primary result events.

FAQ

Does it need an ATS account?
No. It processes currently published public job data only.

Can it monitor several companies in one task?
Yes. Add multiple boards and schedule the same changes-mode input.

Will a temporary outage mark every job as removed?
No. Failed sources retain their prior state and cannot create a removal flood.

Can it apply to jobs or retrieve candidates?
No. It neither submits applications nor accesses candidate, applicant, resume, or private ATS data.

Reliability and responsible use

  • Only HTTPS public sources are accepted.
  • Local, private, link-local, multicast, and reserved network destinations are blocked.
  • Redirects are revalidated and response sizes, timeouts, retries, pages, and concurrency are bounded.
  • This Actor reads published job advertisements only. It does not submit applications or retrieve candidates, applicants, unpublished jobs, or private ATS data.
  • Respect applicable source terms, robots policies, employment law, privacy law, and your intended use of the resulting data.

Support

When reporting a problem, include the public source URL, run ID, and failing provider. Never send cookies, passwords, ATS API keys, identity documents, or private candidate information.