API Access
Access dataset files directly from scripts, code, or AI agents.
Browse dataset files
API Access
Access dataset files directly from scripts, code, or AI agents.
Each file has a stable URL (r-link) that you can use directly in scripts, apps, or AI agents. These URLs are permanent and safe to hardcode.
Start with these files — they give you everything you need to understand and access the dataset.
- 1. Download data resources listed in the metadata file
- 2. Read README.md for full context
Data Files
Explore with AIpay-transparency
| Field | Type | Description |
|---|---|---|
| dimension | string | Grouping applied: overall, ats_platform, country, seniority, posting_age or work_mode |
| segment | string | Value within that dimension |
| postings | integer | Count of postings in the segment |
| discloses_pay | integer | Count stating pay anywhere, in a structured field or in the description text |
| pct_discloses_pay | number | discloses_pay as a percentage of postings |
| structured_pay_field | integer | Count with a populated machine-readable salary field |
| pct_structured | number | structured_pay_field as a percentage of postings |
Download
Download CSVAbout
- Last updated
- 5 August 2026
- Total rows
- ...
- Format
- CSV
- File size
- 878 B
About this dataset
Job Posting Pay Transparency: 101,432 Greenhouse and Lever Postings
Aggregate counts derived from 101,432 open job postings collected from the public job boards of two applicant tracking systems, Greenhouse and Lever, covering 2,704 distinct companies. Snapshot taken 1 August 2026. No private data and no scraping behind a login. Individual postings are not redistributed, only aggregates.
The finding
Greenhouse's public job board API exposes no salary field at all. Zero of 49,722 postings carry structured pay. Lever's API does expose one, and 15,060 of 51,710 postings (29.1%) use it.
Yet Greenhouse employers state pay in the description slightly more often than Lever employers: 37.4% against 30.3%. The disclosure exists. The structured field to hold it does not. Both APIs are public and this is reproducible in two requests without an account.
Overall, 33.8% of postings disclose pay somewhere, and 14.8% carry it in a machine-readable field.
Columns
| Column | Meaning |
|---|---|
dimension | Grouping applied: overall, ats_platform, country, seniority, posting_age, work_mode |
segment | Value within that dimension |
postings | Count of postings in the segment |
discloses_pay | Count stating pay anywhere, structured field or text |
pct_discloses_pay | discloses_pay as a percentage of postings |
structured_pay_field | Count with a populated machine-readable salary field |
pct_structured | structured_pay_field as a percentage of postings |
Pay columns are blank for the seniority, posting_age and work_mode rows. Those dimensions were tabulated for counts only.
Definitions
Pay disclosure. A posting counts as disclosing pay if its structured salary field is populated, or its description contains a dollar figure in the thousands (written as $120,000 or $120k), or one of the phrases "salary range", "base pay range", "compensation range", "pay range".
Seniority. Assigned from the job title alone, first match wins:
intern: title contains intern or internshipentry_junior_graduate_trainee: entry level, junior, jr, graduate, grad, trainee, apprenticesenior_staff_principal_lead: senior, sr, staff, principal, lead, head of, director, vp, chiefmid_or_unspecified: everything else
"Associate" is deliberately not counted as entry level. It appears in 5,742 titles and is frequently used for mid or senior roles (Associate Director, Associate Partner). An earlier draft of this analysis included it and materially overstated the entry-level share.
Limitations, stated plainly
- The pay-text pattern is tuned for dollar amounts and English phrasing. It under-counts postings stating pay in rupees, euros or pounds without a recognised keyword. Treat every disclosure figure as a lower bound. The India, UK and Australia rows are the most affected.
- Two platforms are not the whole market. Workday, Ashby, SmartRecruiters and Taleo are absent.
- Seniority is inferred from title text alone. About two thirds of titles carry no level signal at all, so
mid_or_unspecifiedcontains an unknown mix of junior- and senior-eligible roles. - Company sizes are uneven. A single large employer can move a country percentage.
posted_atis the date the platform reports, which is not always when the role genuinely opened.
Related
- Job Posting Pay Transparency Study, LastRound AI
- How the Greenhouse and Lever job board APIs differ, LastRound AI
- The companion ATS Company Directory, which maps 9,935 companies to their vendor and board slug.
Licence
CC BY 4.0. Free to use with attribution to LastRound AI and a link to the pay transparency study.
DOI: 10.6084/m9.figshare.33154268
Contact: contact@lastroundai.com