Job Postings Dataset: 320k+ Open Jobs, Updated Daily
Pricing
from $0.96 / 1,000 jobs
Job Postings Dataset: 320k+ Open Jobs, Updated Daily
320,000+ open jobs from 10,000+ company career sites (Greenhouse, Lever, Ashby), updated daily with first-seen and closed dates. Bulk export or daily new/closed delta. $1.20 per 1,000 jobs.
Job Postings Dataset: 324,000 Open Jobs from Company Career Sites, Updated Daily
Every open job on more than 11,000 company career sites, collected fresh each day: 324,634 jobs on 15 November 2026, about 150,000 of them with a posted salary. The jobs come straight from employers' own Greenhouse, Lever and Ashby boards, so there are no reposts from job aggregators and no expired ads.
Export the whole table or a filtered slice to CSV, Excel or JSON. Or schedule it and get only the jobs that opened and closed since your last run.
Who uses it
- Sales and recruiting teams looking for companies that are hiring right now. A company that opens five sales roles has budget.
- Job boards and HR tech products that need a daily feed of real jobs from employers.
- Researchers and analysts tracking hiring by company, role, country and pay, with the date each job opened and closed.
What you get
US jobs with a posted salary that first appeared on 14 and 15 November 2026:
| Company | Job | Location | Pay (USD per year) | Posted |
|---|---|---|---|---|
| Ashby | Senior DevSecOps Engineer | Remote, US | 178,000 to 250,000 | 13 Nov |
| Fieldguide | Principal/Staff Product Manager, Risk Advisory | San Francisco or remote | 225,000 to 315,000 | 13 Nov |
| Crusoe | Senior Software Engineer, Storage | San Francisco, CA | 170,000 to 190,000 | 13 Nov |
| Airwallex | Senior Manager, Obligations Management | Dallas | 128,000 to 210,000 | 12 Nov |
| Coder | Senior Account Executive (US West) | United States | 123,000 to 167,000 | 13 Nov |
| Finni Health | Board Certified Behavior Analyst | Remote, US | 80,000 to 85,000 | 13 Nov |
Each row has about 25 columns: company, title, department, location, country code, remote/hybrid/onsite, employment type, salary range with currency and period, job function, seniority and the apply link. You also get two dates nobody else gives you: firstSeen, the day we first saw the job, and closedOn, the day it came down.
Three ways to use it
| Mode | What you get | Good for |
|---|---|---|
snapshot (default) | Every open job that matches your filters | One-off exports, research |
new | Jobs first seen in the last N days (newWithinDays) | A daily "who started hiring" list |
changes | Jobs that opened or closed since your last run | Scheduled feeds, CRM and Sheets sync |
Price
$1.20 per 1,000 jobs. There's no start fee. 100 jobs cost $0.12. In changes mode a day with nothing new costs nothing.
For scale: the default filters (jobs posted in the last 30 days, evergreen ads left out) matched 93,976 jobs on 15 November, so the full export costs about $113. Set maxItems to cap a run.
How to run it
Engineering jobs in Germany:
{"countries": ["Germany"],"roleFamilies": ["Engineering"],"maxItems": 500}
US jobs paying $150,000 to $250,000:
{"countries": ["United States"],"minSalary": 150000,"maxSalary": 250000,"maxItems": 500}
A daily feed into Google Sheets. Save this as a task, schedule it daily and connect the Google Sheets integration. Each run appends only the jobs it hasn't sent you before, always in the same column order:
{"countries": ["United Kingdom"],"roleFamilies": ["Sales"],"outputFormat": "sheets_flat","cursor": "auto","maxItems": 200}
Ready-made searches, each with sample results on its own page:
- New US job postings today
- Remote engineering jobs in Germany
- UK sales jobs
- Jobs opened and closed at Spotify
Input
| Field | Default | What it does |
|---|---|---|
mode | snapshot | snapshot, new or changes (see above). |
newWithinDays | 1 | For new: how many days back to look. |
search | none | Keywords that must all appear in the title, description, company or department. |
titleContains, excludeTitleKeywords | none | Keep jobs that mention any of these words, then drop jobs that mention any of those. |
companies, excludeCompanies | all | companies limits to named companies or board tokens. excludeCompanies drops jobs from named companies or board tokens before that include, so excluded jobs are never returned. |
ats | all | greenhouse, lever or ashby. |
countries | all | Country names or codes: Germany, US. |
locations | all | Any part of the location: Berlin, EMEA. |
roleFamilies | all | For example Engineering, Sales, Data/Analytics, Product Management. |
seniority | all | Intern, Junior, Mid, Senior, Lead/Principal. |
remoteOnly | false | Remote jobs only. |
hasSalary | false | Only jobs with a posted pay range. |
minSalary, maxSalary | none | Keep jobs whose posted range overlaps this band. |
postedWithinDays | 30 | Jobs posted in the last N days. 0 means any date. |
includeEvergreen | false | Include talent-pool ads and ads posted 180 or more days ago. |
includeAggregators | false | Include staffing boards that repost other companies' jobs. |
newlyHiringCompanies | false | One row per company that opened at least one role in the last newlyHiringWithinDays (7 by default). |
output | rows | events returns a compact feed of new, changed and closed jobs. |
outputFormat | rows | sheets_flat keeps one fixed column order for spreadsheets. |
cursor | none | auto returns only jobs this exact input hasn't returned before. |
maxItems | 100 | The most jobs to return. 0 returns every match. |
Output fields
changeType (open, new or closed), id, company, ats, board, title, department, location, countryCode, workplaceType, employmentType, postedAt, url, salaryMin, salaryMax, salaryCurrency, salaryPeriod, roleFamily, seniority, firstSeen, trackedSince, generalApplication, evergreen, closedOn, daysOpen (closed jobs), dataAsOf.
Every column is flat, so the file opens cleanly in Excel or Google Sheets.
FAQ
How fresh is it?
We collect every board once a day, around 23:00 UTC. dataAsOf on each row gives the date.
Which sites does it cover? Company career sites hosted on Greenhouse (5,838 companies), Ashby (3,501) and Lever (1,903). It doesn't include LinkedIn, Indeed or Workday.
How far back does the closed-job history go?
We started tracking on 31 October 2026, so closedOn and daysOpen cover the days since then, and the history grows by a day every day.
Why do some jobs have no salary?
The employer didn't post one. We never estimate missing values. Set hasSalary: true to get only jobs with a range.
Where do roleFamily and seniority come from?
We assign them from the job title and department. The employer doesn't provide them, so treat them as a good guide rather than an official label.
How is this different from ATS Jobs Search? Both read the same data. ATS Jobs Search is built for keyword searches and single companies. This Actor is built for bulk exports and daily change feeds.
I need a filter that isn't here. Open an issue on the Issues tab and tell us what you're trying to pull.
Ready-made examples
Each one opens a saved run you can copy and start with one click.
- New US job postings today: Every job first seen in the last 24 hours at US employers, from 11,000+ company career boards on Greenhouse, Lever and Ashby
- Remote engineering job postings in Germany
- UK sales job postings: Sales job postings in London
- Job postings opened and closed at Spotify: Which jobs a company opened and closed since the last snapshot, here Spotify
Use it from AI agents (MCP) and Python
AI agents. Add this Actor as a tool in Claude, Cursor, VS Code or any MCP client through the Apify MCP server. The agent reads the input schema, so a plain request is enough.
{"mcpServers": {"job-postings-dataset": {"url": "https://mcp.apify.com?tools=redomic/job-postings-dataset","headers": {"Authorization": "Bearer <YOUR_APIFY_TOKEN>"}}}}
Python. pip install apify-client, then:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("redomic/job-postings-dataset").call(run_input={"mode": "snapshot", "maxItems": 5})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
More from us
- Allabolag Scraper - Swedish Company Data: Scrape allabolag.se for Swedish company financials, industry, status and board role titles by search, org number or URL
- Ashby Jobs Scraper with Salaries: Ashby jobs scraper for any startup careers board (OpenAI, Ramp, Notion and thousands more), with salary ranges as numbers: min, max, currency, period, plus equity and bonus flags
- ATS Jobs Search: Greenhouse, Lever & Ashby Jobs API: Search 300,000+ open jobs from 11,000+ companies on Greenhouse, Lever and Ashby in one run
- Blocket Scraper: Car Monitor: Blocket scraper: each run returns up to 2,500 Blocket Bil and Torget listings as flat rows with price, make, model, year, mileage, VIN, inspections and seller
- Closed Jobs Tracker: Filled Roles & Time-to-Fill: Search closed jobs from 11,000+ companies with closedOn, daysOpen and time-to-fill signals
- Google Jobs Scraper - Job Postings API: Google Jobs and job postings scraper: get job title, company, location, posted date, salary, full description and every apply link for any search
- Google Trends API: Trending Now & Interest Over Time: Trending-now searches and new-trends alerts/monitoring per country with the news behind them, plus interest over time, interest by region, and related and rising queries for any keyword
- GovDeals Scraper: Search and monitor GovDeals government surplus auctions
- Greenhouse Jobs Monitor & Scraper: Monitor Greenhouse jobs from any company careers board (Airbnb, Stripe, Discord and thousands more)
- Lever Jobs Scraper with Salaries: Lever jobs scraper for any company's careers page (Palantir, Spotify, Zoox, Shield AI and thousands more): flat rows with title, team, location, workplace, commitment, apply link, salary as numbers and the full description merged
- Marktplaats.nl Scraper: Scrape Marktplaats.nl listings into clean rows: title, price in EUR, condition, seller, location, images
- Otodom Scraper: Poland Property Listings & Price Monitor: Scrape Otodom.pl property listings in Poland
- Otomoto.pl Scraper: Scrape Otomoto.pl Polish car listings: one run returns used-car rows with price, make, model, year, mileage, fuel, gearbox, seller and URL
- Personio Jobs Scraper: Scrape open jobs from Personio company career pages (jobs.personio.de/.com XML feeds)
- Salary Data API: Pay Ranges by Job Title & Level: Get salary benchmarks (p10-p90, annualised, with n) and pay ranges from 150,000+ employer-posted jobs across 11,000+ companies, updated daily
- SIRET Company Scraper: Search French companies by name, SIREN or SIRET
- SUUMO Scraper - Japan Property Listings: Scrape SUUMO Japan property listings from search URLs for rentals and sales
- Talabat Scraper — Menus, Prices & Delivery Fees: Talabat menus, prices and delivery fees as flat rows in 8 MENA markets
- Workday Jobs Scraper: Search and monitor public Workday (myworkdayjobs.com) job postings