Career Site Jobs Monitor: ATS Jobs & New Roles avatar

Career Site Jobs Monitor: ATS Jobs & New Roles

Pricing

from $1.00 / 1,000 job returneds

Go to Apify Store
Career Site Jobs Monitor: ATS Jobs & New Roles

Career Site Jobs Monitor: ATS Jobs & New Roles

Open roles from company career sites on Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee and Personio in one schema. Monitor mode returns only roles opened or closed since the last run. Official public job-board endpoints, no proxy or login.

Pricing

from $1.00 / 1,000 job returneds

Rating

0.0

(0)

Developer

Offera Studio

Offera Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

What does Career Site Jobs Monitor do?

Career Site Jobs Monitor reads the open roles of companies straight from their career sites, whichever applicant tracking system (ATS) they use: Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee and Personio. You give it a list of companies and get one clean schema back, so a list that mixes five systems still lands in one table.

  • 🔎 Give a company in the way you have it: a career-page URL (https://boards.greenhouse.io/airbnb), a company domain (stripe.com, the Actor looks for the career site once) or a board token (airbnb or greenhouse:airbnb).
  • 🆕 Monitor mode: returns only the roles that opened or closed since the last run. A company that suddenly opens ten sales roles is a hiring signal for sales and recruiting teams.
  • 🧹 Filters: title keywords, department, location, remote only, posted within N days.
  • 💶 Compensation when the company publishes it (Ashby, Lever, Recruitee, Greenhouse pay ranges).
  • 📊 A free summary row per company: open roles, new and closed since the last run, top departments.

It uses only the official public job-board endpoints of these systems: no login, no proxy, no scraping of protected pages.

Who is it for?

  • Sales and business development: find companies that are hiring for the roles your product serves (a hiring signal), and see when they start or stop.
  • Recruiting and sourcing teams: one feed of new roles across target companies, with department, location and remote flag.
  • Market and competitor research: watch competitors' hiring by department over time.
  • Job boards and aggregators: a normalised feed for a list of companies you choose.

How to use it

  1. Paste your companies into Companies, one per line. Mix URLs, domains and tokens freely.
  2. Choose a Mode: All open roles for a snapshot, or Monitor to get only what changed since the last run.
  3. Optional: add title keywords, departments, locations, Remote roles only or Posted within (days).
  4. Click Start. The Jobs tab shows the roles, the Company summary tab one row per company.

Daily monitor. Save the input as a task with a Monitor name, set mode to Monitor and add a schedule (for example every morning). The first run has nothing to compare with, so every role counts as new; later runs return only roles that opened (new) and, free of charge, roles that closed (closed). Switch on Include unchanged roles only if you also want the roles that stayed open.

How the Actor finds the ATS

You giveWhat happens
A career-page URL of a supported systemThe board name is read from the URL. No request to the company's own site.
greenhouse:airbnb (system and token)Used as given.
A bare token such as airbnbThe systems are tried in turn (Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee, Personio); the first with a board of that name wins.
A company domain such as stripe.comrobots.txt is read once. If it allows it, /careers and then /jobs are fetched once each and searched for links to the supported systems. If the site blocks it or uses another system, the row says no-ats-found (free).

Input example

{
"companies": ["https://boards.greenhouse.io/airbnb", "https://jobs.lever.co/spotify", "stripe.com", "ashby:ramp"],
"keywords": ["engineer", "sales"],
"locations": ["Remote", "London"],
"mode": "monitor",
"monitorName": "target-accounts",
"maxResultsPerCompany": 200
}

Output example

One row per role (real data from a run on 7 October 2026, description shortened out):

{
"type": "job",
"company": "ramp",
"ats": "ashby",
"boardToken": "ramp",
"input": "https://jobs.ashbyhq.com/ramp",
"jobId": "34413f8d-26bf-4bbc-8ade-eb309a0e2245",
"title": "Security Engineer, Cloud",
"department": "Engineering",
"team": "Backend",
"locations": ["New York, NY (HQ)", "Remote (Canada)", "Remote (US)", "Miami, FL"],
"location": "New York, NY (HQ)",
"remote": true,
"workplaceType": "hybrid",
"employmentType": "full-time",
"compensation": { "min": 211400, "max": 290600, "currency": "USD", "interval": "year", "summary": "$211.4K – $290.6K • Offers Equity" },
"postedAt": "2026-04-07T17:12:35.753Z",
"updatedAt": null,
"applyUrl": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245",
"description": null,
"change": "new",
"firstSeenAt": "2026-10-07T16:23:37.530Z",
"checkedAt": "2026-10-07T16:23:37.530Z",
"monitorName": "jobs-monitor-10f98e33df3a3b46"
}

And one summary row per company:

{
"type": "summary",
"company": "ramp",
"ats": "ashby",
"openRoles": 160,
"matchingRoles": 160,
"newRoles": 160,
"closedRoles": 0,
"firstRun": true,
"topDepartments": [{ "department": "Sales", "count": 62 }, { "department": "Engineering", "count": 38 }, { "department": "People & Talent", "count": 14 }],
"summary": "160 open roles on ashby; 160 match your filters; first run: every role counts as new; top departments: Sales (62), Engineering (38), People & Talent (14)."
}

What each system publishes differs, and the Actor never invents data: department / team exist where the company fills them, compensation only where it is published, postedAt is the first publication date (Greenhouse, Ashby, Workable, SmartRecruiters, Recruitee, Personio) or the creation date (Lever), updatedAt is only given by Greenhouse and Recruitee.

Errors are free

Rows with type: "error" explain what could not be read and are never charged: invalid-input (not a URL, domain or token), no-ats-found (no supported system found on the domain), board-not-found (no such board), rate-limited (the system asked us to slow down and kept refusing) and fetch-failed.

How much does it cost?

Pay per event: $0.001 per job returned (job-returned). So 1,000 roles cost $1.00. Free: summary rows, closed roles in monitor mode, and all error rows. In monitor mode a quiet day costs nothing but the Apify start fee.

Set Max results (or Apify's "maximum cost per run") to cap spend. Max results per company keeps one huge employer from using the whole budget.

Limitations

  • Supported systems only. Companies on Workday, iCIMS, Taleo, SuccessFactors, BambooHR or a home-made career page are not covered (a domain on one of them returns no-ats-found).
  • Public postings only. Internal or unlisted roles are not visible. Some systems (Workable) may rate-limit by IP; the Actor backs off and reports rate-limited if the system keeps refusing.
  • Monitor mode compares job IDs. A role that is closed and re-posted with a new ID shows as one closed and one new. If a system returns an empty list by mistake, that run reports the earlier roles as closed.
  • Roles not returned because of a limit (Max results, Max results per company or the cost limit) are not saved in the snapshot, so they are reported as new on the next run.
  • Descriptions are plain text, cut at 4,000 characters. SmartRecruiters needs one extra request per job to give a description.
  • A change of the company list changes the default snapshot store; set a Monitor name to keep history when you edit the list.
  • Salary data is whatever the company publishes; most do not.

FAQ

Which ATS does a company use?

Look at the apply link of any of its jobs: boards.greenhouse.io, jobs.lever.co, jobs.ashbyhq.com, apply.workable.com, jobs.smartrecruiters.com, *.recruitee.com or *.jobs.personio.de. Or give the domain and let the Actor look.

Why did my first monitor run return every role?

Nothing was saved yet, so every role is new. From the next run only changes are returned.

Why do I get no job rows on a daily run?

Nothing opened since yesterday. The free summary row still tells you the number of open roles. Switch on Include unchanged roles if you want the full list each time.

Is the data allowed to be used commercially?

The Actor reads the public job-board endpoints that companies publish for exactly this purpose (listing their jobs on other websites). It does not log in, bypass anything or collect candidate data. You are responsible for how you use the jobs, and for the terms of the companies' own sites.

Does it use a proxy?

No.

More tools from the same developer

All pay-per-result, no proxy or login needed, built and maintained by the same developer:

Website audits

Company data and compliance

Media and AI

Market signals

Feedback

Missing a field or a source that does not work well? Open an issue on the Issues tab.