Use case
New Job Postings This Week Across a Company List
A weekly hiring-signal feed: only roles published on or after a date you set, across as many employer domains as you submit.
A company that just opened three engineering roles is a company with budget and a problem, and that is a better moment to reach out than any cold list. So you want a Monday-morning answer to one question across your target accounts: who posted something new since last Monday?
The trouble is that “new” is the hard part. Job boards re-surface old listings, and a careers page shows you everything at once with no sense of what changed.
The manual way, and what it costs
You can do this by hand for a handful of accounts: bookmark their careers pages and skim them weekly. For under ten companies that is genuinely fine.
Past that it breaks down, and not because of the reading. To know what is new you need last week’s list to compare against, which means you were already keeping a spreadsheet — and you are now maintaining a hand-built diff across a dozen differently-shaped careers pages. That is the part that quietly stops happening after three weeks.
The faster way
ATS & Career Page Jobs Scraper (Greenhouse, Lever, Workday) does the same search once and hands back every row at once.
{
"companies": [
"stripe.com",
"notion.so",
"figma.com"
],
"postedAfter": "2026-09-01",
"maxResults": 200
}
postedAfter is what turns a directory pull into a feed: only roles published on or after that
date come back. Set it to the date of your last run and schedule this weekly. One caveat that is
deliberate rather than sloppy — rows whose board publishes no date at all are kept, not
dropped. Workday states “Posted Today” instead of a date, so filtering them out would silently
remove every Workday employer from your feed and make them look like they had stopped hiring.
What comes back
{
"source_url": "https://job-boards.greenhouse.io/vercel/jobs/6136160004",
"company": "vercel.com",
"company_name": "Vercel",
"ats": "greenhouse",
"ats_slug": "vercel",
"detected_by": "slug_match",
"job_id": "6136160004",
"title": "Account Executive, Commercial",
"department": "Account Executive",
"team": null,
"location": "Hybrid - London",
"locations": [
"Office - London"
],
"remote": null,
"employment_type": null,
"posted_at": "2026-08-06T12:50:10-04:00",
"posted_text": null,
"updated_at": "2026-08-18T18:06:19-04:00",
"apply_url": "https://job-boards.greenhouse.io/vercel/jobs/6136160004",
"requisition_id": null,
"description": null
}
| Field | Example value | Meaning |
|---|---|---|
company | vercel.com | The value you submitted — domain, careers URL or explicit board |
company_name | Vercel | Employer name as the board states it (Greenhouse and SmartRecruiters publish it; Ashby, Lever and Workday do not, so it is null there) |
ats | greenhouse | greenhouse, lever, ashby, smartrecruiters or workday |
ats_slug | vercel | The board identifier on that ATS |
detected_by | slug_match | How the board was matched: explicit, careers_page, or slug_match |
job_id | 6136160004 | The board’s own job identifier — stable across runs, so it de-duplicates |
posted_at is what you sort by, and job_id is what makes the feed trustworthy. That id is the
board’s own identifier and it does not change between runs, so a role you saw last week is
recognisably the same role this week — you are diffing on an identifier rather than guessing from
job titles, which change wording more often than you would expect.
Where posted_at is null, posted_text carries the board’s own phrasing so you can still see what
it said.
What you’d do with it
Schedule the actor weekly in the Apify Console and point its webhook at your CRM or a Slack channel. Each run arrives as the week’s new roles with the employer, the title and the apply link, which is enough to trigger an outreach sequence without anyone opening a careers page.
Worth knowing
This tells you a role was posted, not that a company is growing — backfills look identical to new headcount from the outside, and nothing here can tell them apart.
Coverage is five applicant-tracking systems; a company on another one returns a free row saying so. Workday needs its careers URL rather than a bare domain, and its rows carry no posting date, so they arrive on every run rather than only when new. There is no salary data: on 6 September 2026, pay ranges were published on 0 of 617 Greenhouse jobs, 0 of 132 Ashby and 0 of 40 Lever jobs checked.
Run it yourself: How to run ATS & Career Page Jobs Scraper (Greenhouse, Lever, Workday) walks the whole thing step by step.
Every open job at a company, from its career page — when you want the full current picture rather than the delta.
Business Email & Phone Contact Details Scraper — when the hiring signal has landed and you need someone to send it to.
Last updated 2026-09-06