Career Jobs Feed: New Greenhouse, SmartRecruiters, Ashby Jobs
Pricing
from $1.10 / 1,000 jobs
Career Jobs Feed: New Greenhouse, SmartRecruiters, Ashby Jobs
The jobs that are new since your last run, from about 9,300 company career sites on Greenhouse, Ashby, Lever, Personio and SmartRecruiters. Run it as a feed.
Pricing
from $1.10 / 1,000 jobs
Rating
0.0
(0)
Developer
Dodo Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share
Only the jobs that are new since your last run, from about 9,300 company career sites on Greenhouse, Ashby, Lever, Personio and SmartRecruiters. Schedule it, and every run hands you the jobs this feed has not delivered yet, as clean JSON. No career-page URLs, no company list, no de-duplication on your side. It reads the same index as Career Site Jobs Search: 469,340 open jobs on 31 October 2026, refreshed daily.
In one minute
- What you get: one JSON row per new job: title, company, locations, remote flag, employment type, pay range as numbers when the employer publishes one, publish date, the date our index first saw it, the employer's apply link and, if you ask for it, the full text.
- What it costs: $1.50 per 1,000 jobs on Apify's free plan, $1.10 on Gold and higher plans, plus a start fee of $0.00005 per GB of memory, one event at the default 1 GB. A run that finds nothing new costs only the start fee. Apify's free plan includes $5 of usage every month.
- Try it: click Start. The prefilled feed ("data engineer", "analytics engineer") returned 38 new jobs from 31 companies in about 8 seconds on 31 October 2026, out of 2,300 open jobs that match: about $0.06 on the free plan. Run it again and it returns 0, because nothing is new until the index refreshes. That is the point.
One real row from that run:
{"id": "ashby:virtahealth:714ee3dd-46f5-425a-b19b-a92d948a069b","title": "Senior Analytics Engineer","company": "virtahealth","location": "Remote","country": "USA","workplace_type": "remote","employment_type": "FullTime","salary_min": 161500,"salary_max": 209000,"salary_currency": "USD","salary_period": "year","posted_at": "2026-10-30T19:03:34.721Z","first_seen_at": "2026-10-31","change_status": "new","apply_url": "https://jobs.ashbyhq.com/virtahealth/714ee3dd-46f5-425a-b19b-a92d948a069b/application"}
Who it is for
- A job board or newsletter that publishes new openings every morning and must never post the same job twice.
- A recruiter or sourcing team watching a role, a city or a list of companies, who wants only what appeared since yesterday.
- A data pipeline or AI agent that appends new postings to a table on a schedule and wants the de-duplication done before the data arrives.
If you want to search everything that is open right now instead, use Career Site Jobs Search: same index, same filters, newest first.
How "new" works
Every job in the index carries first_seen_at, the date our index first listed it. A feed is a name (Feed name, default unless you change it) plus a memory on your own Apify account: a key-value store called dododata-feed-<name> that this Actor creates on the feed's first run.
- First run of a feed: the jobs the index first saw in its latest refresh (First run: days of new jobs, 1 by default; up to 3). A feed starts from the latest refreshes; for everything open now, use Career Site Jobs Search.
- Every later run: the jobs first seen since the previous run that this feed has not delivered. Each job comes once per feed; a run that fails part-way may repeat up to 500 of its jobs in the next run.
- Max items spreads a large refresh over several runs. New jobs beyond Max items wait and come first in the next run, for as long as the employer still lists them: a job closed before its turn is not sent. Measured on 27 October 2026 with no filters: the latest refresh held 4,929 new jobs; three runs at 1,000, 1,500 and 10,000 returned 1,000, 1,500 and 2,429, which is all 4,929, each id exactly once, and a fourth run returned 0.
- Backlog is not news. When we add career sites to the index, their whole existing job list is "first seen" on that day: on 26 October 2026 the index first saw 98,261 jobs, 94,778 of them on 4,134 career sites it had never read before, and 81,870 of the 98,261 had been posted more than a week earlier. So a job counts as new only if the site posted it at most 7 days before our index first saw it (Skip backlog older than (days); 0 turns this off). In a normal refresh this leaves out about one newly listed job in eight (681 of 5,610 on 27 October 2026, 308 of 2,378 on 23 October): postings re-published on a board the index already read. Set it to 0 to receive them too.
- Not every new listing is a new job. The index keeps the first-seen date when a job is re-posted under a new id with the same title, place and requisition number, and not when one of those changes. Measured on 3 November 2026: the refresh first saw 9,573 listings, and 7,357 remain once these are set aside: 1,245 on two boards that replaced hundreds of listings that day (
jobgether,aogarciaagency; Exclude companies drops a board), 641 with the title of a job the same board closed that day, and 330 that had closed earlier and came back. The feed delivers all of them unless your filters drop them. - Several feeds side by side: use one feed name per schedule or per set of filters. Names that differ only in case, spaces or punctuation (
My Feed,my-feed) are the same feed. Changing the filters of an existing feed applies from that run on; it does not replay the past. Start this feed over forgets what a feed delivered (turn it off again afterwards).
The memory is small (155 KB after remembering 10,000 jobs) and stays in your account until you delete the store. Two runs of the same feed cannot overlap: a run started while another run of that feed is still going stops at once, before delivering any job, so it costs only the start fee.
Filters
The same filters as Career Site Jobs Search, applied before anything is saved, so you only pay for jobs you get:
| Filter | What it does |
|---|---|
| Title keywords / Exclude title words | a title word that starts with one of these ("engineer" also finds "Engineering Manager"); drop titles with these whole words (senior, intern) |
| Locations / Exclude locations | whole words in the location, country or workplace type: berlin, united kingdom, us, remote |
| Remote only / Workplace type | jobs the employer marks as remote; or remote, hybrid, on-site as marked (most Greenhouse boards mark none) |
| Companies / Exclude companies | by name or career-page slug (stripe, Figma) |
| Career-page systems | Greenhouse, Ashby, Lever, Personio, SmartRecruiters |
| Only jobs with a pay range | jobs whose pay is in the index (Ashby, Lever, Personio); Greenhouse and SmartRecruiters jobs are read one by one for theirs: see below |
| Seniority | as the title states it: intern, junior, senior, lead (staff, principal), director (VP, head of), or no level in the title |
| Employment types | full-time, part-time, contract, intern, temporary; Greenhouse publishes none, so this leaves Greenhouse out |
| Max jobs per company | empty for a complete feed; a number caps each company per run, and the jobs over it are not sent later |
| Include full descriptions | off by default; on, the full text is fetched live from each employer's board |
| Max items | up to 10,000 per run (1,000 by default); with your Maximum cost per run in Apify, it caps what a run costs, and jobs past either wait |
Measured on 27 October 2026, first runs: "engineer", remote only, senior or lead, Ashby and Lever, excluding India, three days of refreshes, full descriptions on and Max items 40 returned 40 of 490 new jobs from 12 companies, 12 with pay and 39 with full text (the 40th had closed since the refresh), in 31 to 52 seconds; the other 450 waited. "Product manager" with full descriptions on returned 20 of 78 new jobs (Max items 20), all 20 with full text and 16 with pay, in 16 seconds; the other 58 waited for the next run.
Pay on Greenhouse and SmartRecruiters. Neither system's job list carries pay, so with Only jobs with a pay range on, each new Greenhouse or SmartRecruiters job the feed picks is read for its own pay range (the same polite requests as the full text). A job that states one is delivered; a job that states none is left out, not charged, and remembered, so later runs do not read it again; a job that cannot be read (closed since the refresh) waits for the next run, and is left out if a later refresh still lists it and it still cannot be read. Reads of jobs without pay stop at 4 times the jobs the run can return (Max items, or fewer under your maximum cost per run; at least 200), or after 20 minutes, and the jobs not read yet wait for the next run, with the same companies' jobs held back behind them by Max jobs per company; the run log counts each kind. Measured on 30 October 2026 (local run, first run, "software engineer", Max items 40): 31 jobs read, 20 with pay, and 25 new jobs delivered, all 25 with pay, 20 of them from Greenhouse and SmartRecruiters, in 25 seconds. The second run of that feed read only the one job the first could not read.
How to schedule it
- Set your filters and a Feed name, and run it once: that run is the feed's first run.
- In Apify Console, create a Schedule for this Actor with the same input, daily after 03:00 UTC.
- Read each run's dataset, or connect it to Google Sheets, a webhook, Make, Zapier or your own code through the API. AI agents can call it through Apify's MCP server.
The index refreshes every day at about 02:15 UTC and is usually written by 03:00 UTC, so schedule the feed after that: each daily run then returns that day's new jobs once. A run before the day's refresh returns an empty dataset, which costs only the start fee. A whole unfiltered refresh is large: the 4,929 new jobs of 27 October 2026 would cost $7.39 on the free plan and $5.42 on Gold, so on the free plan add filters or keep Max items low and let the rest wait.
How long it takes: 6 to 15 seconds a run in our measurements of 31 October 2026, most of it loading the index; 10,000 jobs without descriptions took about 15 seconds (11 to 17 in our runs of 27 October 2026). Full text is fetched politely, at most five requests a second to the job boards (one a second to Lever), so with descriptions on, 1,000 Greenhouse jobs need about three and a half minutes at that rate.
Three real rows
From the prefilled run of 31 October 2026 (descriptions off, the default):
[{"id": "ashby:virtahealth:714ee3dd-46f5-425a-b19b-a92d948a069b","ats": "ashby","company": "virtahealth","company_name": null,"title": "Senior Analytics Engineer","department": "Product Development","team": "Engineering","location": "Remote","locations": ["Remote"],"country": "USA","workplace_type": "remote","remote": true,"employment_type": "FullTime","experience_level": null,"salary_min": 161500,"salary_max": 209000,"salary_currency": "USD","salary_period": "year","salary_text": null,"posted_at": "2026-10-30T19:03:34.721Z","updated_at": null,"requisition_id": null,"description": null,"apply_url": "https://jobs.ashbyhq.com/virtahealth/714ee3dd-46f5-425a-b19b-a92d948a069b/application","url": "https://jobs.ashbyhq.com/virtahealth/714ee3dd-46f5-425a-b19b-a92d948a069b","change_status": "new","first_seen_at": "2026-10-31","last_seen_at": null,"scraped_at": "2026-10-31T04:26:45.510Z","salary_source": "description"},{"id": "greenhouse:anthropic:5464234008","ats": "greenhouse","company": "anthropic","company_name": "Anthropic","title": "Data Engineer","department": null,"team": null,"location": "San Francisco, CA | New York City, NY; Seattle, WA","locations": ["San Francisco, CA | New York City, NY; Seattle, WA"],"country": null,"workplace_type": null,"remote": null,"employment_type": null,"experience_level": null,"salary_min": null,"salary_max": null,"salary_currency": null,"salary_period": null,"salary_text": null,"posted_at": "2026-10-30T23:34:18.000Z","updated_at": "2026-10-30T23:37:41.000Z","requisition_id": "PIP-267933","description": null,"apply_url": "https://job-boards.greenhouse.io/anthropic/jobs/5464234008","url": "https://job-boards.greenhouse.io/anthropic/jobs/5464234008","change_status": "new","first_seen_at": "2026-10-31","last_seen_at": null,"scraped_at": "2026-10-31T04:26:45.510Z","salary_source": null},{"id": "smartrecruiters:deliveryhero:744000158742670","ats": "smartrecruiters","company": "deliveryhero","company_name": "Delivery Hero","title": "Data Analytics Engineer MX Global","department": null,"team": "Information Technology","location": "Barcelona, Spain","locations": ["Barcelona, Spain"],"country": "ES","workplace_type": "hybrid","remote": false,"employment_type": "Full-time","experience_level": "Mid-Senior Level","salary_min": null,"salary_max": null,"salary_currency": null,"salary_period": null,"salary_text": null,"posted_at": "2026-10-30T13:22:10.885Z","updated_at": null,"requisition_id": "JR0086646","description": null,"apply_url": "https://jobs.smartrecruiters.com/deliveryhero/744000158742670","url": "https://jobs.smartrecruiters.com/deliveryhero/744000158742670","change_status": "new","first_seen_at": "2026-10-31","last_seen_at": null,"scraped_at": "2026-10-31T04:26:45.510Z","salary_source": null}]
Fields that a system does not publish are null rather than guessed: Greenhouse listings carry no department, country or employment type; only Greenhouse carries updated_at; Greenhouse and SmartRecruiters carry a requisition number; SmartRecruiters and Personio state an experience level. Greenhouse and SmartRecruiters pay comes from each job's own record, so it appears only with full descriptions on or with Only jobs with a pay range (8 of the 38 prefilled jobs had pay with descriptions on, 3 without, 31 October 2026).
Where the jobs come from
Only from each company's own public job board, through the endpoint that system publishes for it: Greenhouse's Job Board API, Ashby's job posting API, Lever's postings API (one request a second, as its robots.txt asks), Personio's documented public XML feed and SmartRecruiters' public Posting API. On 31 October 2026 the index held 198,205 SmartRecruiters jobs, 169,015 Greenhouse, 53,007 Ashby, 34,096 Lever and 15,017 Personio, from 9,326 career sites. Which companies use which system was found from public web data (the Common Crawl URL index) and confirmed by reading each board. No aggregator, no LinkedIn, no Indeed, nothing behind a login. Every row links back to the employer's own posting; a company that wants its board left out can say so in the Issues tab: we add the board to the index's exclusion list and refresh the index at once, so its jobs leave the index, and every feed and search over it, within 24 hours of the request.
What we deliberately do not collect
- No personal data: e-mail addresses and phone numbers are removed from the job text, and the names of contact people where the text makes them recognisable.
- Nothing behind a login, no candidate data, no tracking.
- This Actor declares limited permissions: it can only write to its own storages on your account, which are each run's dataset and one key-value store per feed name,
dododata-feed-<name>, created by this Actor. If a store of that name already exists that this Actor did not create, Apify will not let the Actor open it, and the run stops with a message asking for another feed name.
Related Actors
- Career Site Jobs Search: search the same index of about 470,000 open jobs by title, place, remote, pay and date.
- Career Page Jobs Scraper: read specific companies' career pages live, on ten systems including Workday and SmartRecruiters.
Price
$1.50 per 1,000 jobs on Apify's free plan, less on paid plans: $1.30 on Bronze, $1.20 on Silver, $1.10 on Gold and above. You pay only for new jobs delivered; a run with nothing new costs the start fee alone. Any change is announced 14 days ahead through Apify, as its rules require, and applies to every user alike.
Questions and feedback
Something missing, wrong or unclear? Open an Issue on this page: we answer within a day, and fixes usually ship within 48 hours. If the feed saves you time, a short review here helps other people find it.
Changelog
- 2026-11-03: "How new works" now says what share of new listings are really new, measured on the 3 November refresh.
- 2026-10-31: SmartRecruiters named in the sources and field notes (in the index since 29 October 2026, about 198,000 jobs); figures and the sample row measured again on build 0.1.4.
- 2026-10-30, v0.1.4: a job whose pay cannot be read waits one run, then is left out, so it never holds the feed back. v0.1.3: a store of the feed's name that this Actor did not create stops the run with a plain message.
- 2026-10-27, v0.1: first build. Measured locally against the index of 270,722 jobs from 8,476 career sites (refresh of 27 October 2026).