
Job Posting Datasets
451M+ job postings since January 2020 from 270+ sources, covering 250 countries and territories. Use our historical archive to backfill analyses or run sales intelligence on hiring trends over time.
since 2020
since 2020
in Database
Covered per Month
Try it free
No sales call - start with the free tier that fits how you want to use the data.
Jobs API
JSON queries across all countries (last 3 months). Free Basic plan: 100 requests = 1,000 job postings per month.
Start free on RapidAPIData feed
Ongoing data: daily JSON Lines files on AWS S3 with the last 3 months of postings. Free for Luxembourg, same format as every paid country feed.
Get the free feed (AWS)Historical dataset
History since January 2020: every daily file for a country. Free for Luxembourg, same format as every paid dataset.
Get the free dataset (AWS)The same 100 real job postings from Luxembourg, September 2026 - the JSON Lines file as delivered, the CSV converted from it with 30 columns:
title, company, city, state, countryCode, dateCreated, dateExpired, portal, source, occupation, dateActive, timezone, contractType, language, industry, locale, geoPoint, skills, timezoneOffset, isDuplicate, department, workPlace, isRecruiter, hasSalary, careerLevel, workType, postCode, isDirect, jsonLD, description
Historic Job Postings since 2020
451M+ job postings since January 2020, across 250 countries and territories - delivered as JSON documents for large-scale analysis. Two things people mostly use it for:
For example, the US alone accounts for 120M postings since January 2020 - see US coverage or browse all 250 countries & territories.
Free on AWS Data Exchange - same format as every paid country. Field reference: Job Data Overview.
Pricing
$49 to $5,999 per country for the complete archive since January 2020, one-time, priced by the size of that country's archive. Startup and research discounts on request. A full free Luxembourg dataset is available with no purchase required, so you can evaluate the format first. Examples - the price of each country is on its country page:
| Country | Historical dataset, one-time |
|---|---|
| Greece | $99 |
| Czechia | $179 |
| Poland | $199 |
| Spain | $499 |
| Japan | $199 |
| Australia | $999 |
| United Kingdom | $4,999 |
| Germany | $4,999 |
| United States | $5,999 |
| France | $1,999 |
Based on published AWS Data Exchange listings; exact bracket boundaries may vary by country.
See the full pricing comparison across API, datafeeds, and datasets.
Sample Dataset Entry
One job posting, shown pretty-printed with API and CSV field names (title, flat company). The raw .jsonl.gz files (newline-delimited JSON, one job posting per line) use the source schema (name, nested company) - see the field mapping in the Job Data Converter.
{
"title": "Senior Backend Engineer",
"company": "Example GmbH",
"countryCode": "de",
"city": "Berlin",
"workPlace": ["Remote"],
"industry": "Information Technology",
"skills": ["Python", "Kubernetes", "PostgreSQL"],
"dateCreated": "2026-09-18T09:12:00.000Z",
"portal": "linkedin",
"source": "linkedin_de"
}The same job posting as a CSV row - arrays stay JSON-encoded inside their cell:
"title","company","countryCode","city","workPlace","industry","skills","dateCreated","portal","source"
"Senior Backend Engineer","Example GmbH","de","Berlin","[""Remote""]","Information Technology","[""Python"",""Kubernetes"",""PostgreSQL""]","2026-09-18T09:12:00.000Z","linkedin","linkedin_de"Full field reference: Data Dictionary. Real data for 100 job postings: free sample CSV (all 30 columns) and the same postings as original JSON Lines file (source schema).
Available Formats: JSON, CSV and Parquet
- JSON (JSON Lines) - the delivery format: gzip-compressed
.jsonl.gzfiles with one job posting per line and the full export schema, ready for data warehouses and streaming. Download the original JSON Lines sample (100 postings, uncompressed). - CSV - one row per job posting with the 30 columns of the sample above, for spreadsheets, pandas or R. Download the free CSV sample to check the columns.
- Parquet - columnar files for Spark, DuckDB, BigQuery or Athena, with the same columns as the CSV.
CSV and Parquet (as well as XML, RSS, Atom and Excel) are created from the JSON Lines files with the free Job Data Converter - copy-paste source code in JavaScript, Python, Java and Bash that runs on your own machine.
Integrations
Delivered to your own AWS S3 bucket, or via AWS Data Exchange subscription.
Over 6 years of historic job data
Global coverage of the labour market
Easy delivery via AWS S3 files
Ready-to-use JSON data
Original cleaned data: job title, company, location, etc.
Trusted payments via AWS Data Exchange
per Month
per Month
per month
per Month
Job Data Use Cases
Extract actionable insights to boost your sales, market, investment, recruitment, business, or competitive intelligence now!
We enable you to collect and filter large amounts of job postings without developing, maintaining, and operating your own job crawling and scraping infrastructure to make data-driven decisions!
Historical Dataset FAQ
What's the difference between the Jobs API, RSS API, data feeds and historical datasets?
The Job Posting API searches the last 3 months of job postings across all countries and is billed per request on RapidAPI. The RSS API delivers the same postings as RSS/XML feeds, e.g. for job board backfill. Data feeds are per-country subscriptions on AWS Data Exchange: daily gzip-compressed JSON Lines files on AWS S3, refreshed hourly. Historical datasets contain every daily file for a country from January 2020 onwards.
Is there data before 2020?
No. The archive starts in January 2020. Historical datasets contain every daily file of a country from January 2020 to today.
How does AWS Data Exchange work, and where is my S3 bucket?
You subscribe with your AWS account and AWS bills it with your AWS invoice. AWS Data Exchange then grants your account read access to the S3 bucket with the daily files - the bucket alias and prefix are shown under 'Entitled data' in the console, and new files appear automatically. Read them directly or copy them to your own bucket. All data is stored in AWS eu-central-1 (Frankfurt). Step-by-step commands are in the developer section.
What does a country, a bundle or all countries cost?
A data feed costs $9 - $649 per country & month, by posting volume (lower monthly rates for 3- and 12-month terms), a historical dataset $49 - $5,999 per country, one-time depending on the size of the country's archive - each country page under /data/countries shows its prices. Bundles of regions and language areas cost $49 to $4,999 a month (e.g. EU $2,499, all countries $4,999). The Jobs API covers all countries in every plan at about $1 per 1,000 job postings (paid plans from $29/month). For other combinations, ask our Data Team for a quote.
Is there a startup or research discount?
Yes, for data feeds on AWS Data Exchange: startups under 5 years old get 50% off for up to 12 months, and research and academic projects get a discount with proof of affiliation. Contact our Data Team to apply.
Can I pay by invoice or bank transfer?
Data feeds and historical datasets are billed by AWS through your AWS account - whether you pay the AWS invoice by bank transfer or card depends on your AWS account settings. API plans are paid via RapidAPI by credit card, or pay per use through your AWS bill when you use the Jobs API on AWS Data Exchange. Techmap does not invoice directly.
Can I buy only a filtered subset (e.g. an industry, occupation or company)?
No. Data feeds and datasets always contain all postings of a country, and you filter them in your pipeline (e.g. by industry, occupation, company). For smaller volumes, the Jobs API returns filtered results directly.
Is there a free tier?
Yes, four: the BASIC plan of the Jobs API on RapidAPI (100 requests = 1,000 job postings per month), the BASIC plan of the RSS API (100 requests = 1,000 job postings per month), and on AWS Data Exchange the free Luxembourg data feed and Luxembourg historical dataset - the same formats as every paid country.
How are duplicates handled?
Duplicates are flagged, not deleted. A job posting with the same company name, city, country and job title within a 3-day window gets isDuplicate: true; in the data feeds, isDuplicateOf also points to the earliest identical posting - also across portals. In the API, add isDuplicate=false to exclude them. Kept duplicates are useful for analysis, e.g. where a company distributes its job ads and how much it spends on them.
Build something great!
Unleash the full potential of our high-quality job postings to achieve your business objectives and gain a competitive edge in your industry!
Excellent Service
Our reliable services are tailored to meet your needs, helping you achieve your goals with confidence.
Scalable Solution
Our global coverage is designed to support your use-case, enabling you to easily add new markets.
Fast Set-up
Download job postings from our API or AWS S3 and load them into your Databases in minutes.







