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
Greenhouse, Lever, Ashby & Workday Jobs Scraper with Salaries 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 eight applicant-tracking systems; a company on another one returns a free row saying so. Workday rows carry no posting date, so a date filter keeps them on every run — turn on ‘Only jobs new since my last run’ instead, which remembers each job ID it delivered and returns only new ones, Workday included, never billing the same posting twice. Posted salary ranges come back where the employer published one, and ‘Only jobs with a posted salary’ narrows the feed to those.
Run it yourself: How to run Greenhouse, Lever, Ashby & Workday Jobs Scraper with Salaries 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