US Job Postings, Structured: 74.6k Postings Across 30 Sectors and 21 Metros, with Pay and 81 Extracted Requirements
Updated Oct 20, 2026
$149
Fixed price
Already have an account? Log in
Have an API key? Use the REST API →
Source, license and coverage
Supplier documentation. These claims are separate from the automated sample score. A listing edit date is not a data freshness date.
- License
- Brick & Mortar data licence: internal commercial use incl. model training, no redistribution
- Source / creator
- Public job postings on Indeed, Greenhouse, Lever and Ashby job boards, collected 2026-09-17 to 2026-10-17 with python-jobspy and the boards' public APIs.
- Collection method
- We ran 1,865 searches (30 sectors x 21 US metros, a fixed set of sector job titles) on Indeed and a handful of company applicant-tracking boards (Greenhouse, Lever, Ashby) between 2026-09-17 and 2026-10-17, and kept one row per distinct posting. 55,718 postings carry a stated pay range. We read each posting's full text once, locally, against 81 requirement patterns (bar admission, CDL, lifting 50 lb, night shift, background check, bilingual, and so on), and ship only the resulting flags, never the text. The `requirement_share` table answers questions like: what share of warehouse postings in the South require a forklift certificate, against the West? One finding we measured: requirements barely change by region; pay does (the West pays above the sector median in 29 of 30 sectors).
- Coverage start
- Not applicable
- Coverage end
- Not applicable
- Data last updated
- 2026-10-20
- Update schedule
- snapshot
Sample structure score: 95 / 100
This automated check describes the inspected sample, not factual accuracy, legal rights, representativeness, or the quality of the entire dataset. It is not a customer rating.
Assessed 10 sample records (CSV) on 2026-10-20. All records in the provided sample were checked.
| Check | Points | Evidence |
|---|---|---|
| Populated cells | 45 / 50 | 180 of 200 top-level cells contain a value. Null, absent and blank values count as missing; zero and false count as populated. |
| Consistent value types | 30 / 30 | 180 of 180 populated cells match their column's most common observed type. Types are inferred, not checked against real-world truth. |
| Consistent record shape | 20 / 20 | 10 of 10 records have the expected fields. CSV/TSV use the header width; JSON uses the union of observed keys. |
Field-level findings and improvements
Check missing cells and mixed types below. Document intentional missing values or mixed types in your field descriptions. Do not fill legitimate unknowns with invented values just to increase this score.
| Field | Missing cells | Most common type | Other populated types |
|---|---|---|---|
| posting_id | 0 / 10 | string | 0 / 10 |
| source | 0 / 10 | string | 0 / 10 |
| title | 0 / 10 | string | 0 / 10 |
| employer | 0 / 10 | string | 0 / 10 |
| employer_industry | 8 / 10 | string | 0 / 2 |
| employer_size | 6 / 10 | string | 0 / 4 |
| search_metro | 0 / 10 | string | 0 / 10 |
| city | 0 / 10 | string | 0 / 10 |
| state | 0 / 10 | string | 0 / 10 |
| region | 0 / 10 | string | 0 / 10 |
| posted_on | 0 / 10 | string | 0 / 10 |
| job_type | 1 / 10 | string | 0 / 9 |
| is_remote | 0 / 10 | boolean | 0 / 10 |
| pay_min | 1 / 10 | number | 0 / 9 |
| pay_max | 1 / 10 | number | 0 / 9 |
| pay_interval | 1 / 10 | string | 0 / 9 |
| pay_annualized_mid | 1 / 10 | number | 0 / 9 |
| url | 0 / 10 | string | 0 / 10 |
| sectors | 0 / 10 | string | 0 / 10 |
| requirements | 1 / 10 | string | 0 / 9 |
About this data
74,634 active US job postings (Sep 17 to Oct 17, 2026) from 30 sectors in 21 metros across all four Census regions, as structured fields: title, employer, location, posted date, job type, remote flag, pay range and interval, annualized pay. Plus 260,342 extracted requirement flags (81 credentials, licences, physical demands, schedules) per posting and their share by sector x region. One CSV, 74,634 rows; column meanings in the schema. No posting description text (only our extracted flags). No recruiter or contact names, emails or phone numbers. Craigslist job posts (which can be posted by private individuals) are left out.
Retrieve with your agent or Python
Create an account and configure DATABAZAAR_API_KEY. This example retrieves free or already purchased data; it never makes a purchase. For a multi-file dataset, choose a file index from the manifest.
Download the Python examplepython3 retrieve-dataset.py b84c7bb1-1528-4217-a117-10fb7453598e --output dataset.bin
Schema
| Name | Type | Description |
|---|---|---|
| posting_id | string | |
| source | string | |
| title | string | |
| employer | string | |
| employer_industry | string | |
| employer_size | string | |
| search_metro | string | |
| city | string | |
| state | string | |
| region | string | |
| posted_on | string | |
| job_type | string | |
| is_remote | boolean | |
| pay_min | number | |
| pay_max | number | |
| pay_interval | string | |
| pay_annualized_mid | number | |
| url | string | |
| sectors | string | |
| requirements | string |
Sample Data
Download a free sample to inspect the data before purchasing.
Public sample only. Sign in to retrieve the full dataset, including free datasets.
For AI Agents
# 1. Add to your agent's MCP config (claude_desktop_config.json or similar):
{
"mcpServers": {
"databazaar": { "command": "npx", "args": ["databazaar-mcp"] }
}
}
# 2. Your agent can then call:
search_datasets({ query: "US Job Postings, Structured: 7" })
// Found: b84c7bb1-1528-4217-a117-10fb7453598e
buy_now({ dataset_id: "b84c7bb1-1528-4217-a117-10fb7453598e" }) // uses your saved card# Authenticate with your API key:
curl https://api.databazaar.io/datasets/b84c7bb1-1528-4217-a117-10fb7453598e \
-H "Authorization: Bearer YOUR_API_KEY"
# Purchase:
curl -X POST https://api.databazaar.io/datasets/b84c7bb1-1528-4217-a117-10fb7453598e/buy \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"dataset_id": "b84c7bb1-1528-4217-a117-10fb7453598e"}'