Pay transparency, measured across 645,000+ postings
Pay-transparency laws made employers put numbers in job postings. This page measures what actually shows up: which platforms carry machine-readable pay, what the posted ranges look like for engineers, and one trap in reading any "salary trend" built from job-board data.
Machine-readable pay varies by an order of magnitude across platforms
| Window | Platform | Postings | With pay | Share |
|---|---|---|---|---|
| spring | lever | 108,137 | 3,769 | 3.5% |
| spring | ashby | 58,877 | 11,138 | 18.9% |
| spring | greenhouse | 47,015 | 23,258 | 49.5% |
| spring | smartrecruiters | 17,194 | 526 | 3.1% |
| spring | dice | 13,398 | 2,572 | 19.2% |
| spring | 2,963 | 2,326 | 78.5% | |
| spring | workday | 2,943 | 1,032 | 35.1% |
| spring | remoteok | 1,367 | 116 | 8.5% |
| spring | indeed | 1,198 | 0 | 0.0% |
| autumn | greenhouse | 296,928 | 136,303 | 45.9% |
| autumn | workday | 78,628 | 36,453 | 46.4% |
| autumn | ashby | 5,561 | 1,795 | 32.3% |
| autumn | 3,765 | 1,489 | 39.5% | |
| autumn | lever | 2,407 | 13 | 0.5% |
| autumn | dice | 1,804 | 927 | 51.4% |
The spread is the finding. The same extractor that finds pay in roughly half of Greenhouse postings finds it in 3.5% of Lever postings — consistent across both windows and two independently written harvesters, so it is a property of what each platform exposes in the posting body, not of one crawler. Any "X% of jobs disclose pay" headline that does not say which platforms it read is reporting its crawler's mix, not the market.
What posted engineer salaries look like
| Window | Postings | 25th pct | Median | 75th pct | Median band width |
|---|---|---|---|---|---|
| spring | 20,044 | $145,000 | $177,500 | $212,500 | $50,000 |
| autumn | 44,851 | $136,000 | $169,500 | $205,000 | $60,000 |
Midpoints of posted ranges, titles containing "engineer", yearly figures only, USD. The number worth staring at is the last column: the median posted range is $60,000 wide — 35.4% of the median salary itself. A range a third as wide as the number it brackets complies with the law and still tells a candidate very little. Transparent the way a frosted window is.
The trend trap
Read naively, the table above says engineer pay fell from spring ($177,500) to autumn ($169,500). It did not. Hold the platform constant — same cut, Greenhouse postings only — and the median rose: $172,500 → $175,500. The apparent decline is entirely the harvest's platform mix shifting between windows (spring was Lever/Ashby-heavy; autumn is Greenhouse/Workday-heavy — see the first table). A salary-trend claim built from job-board data that does not control for source mix is reporting its own crawler, not the market.
What this page can and cannot say
- The metric is "machine-readable pay found in the stored posting description" — a property of posting plus parser, reported per platform. It is deliberately NOT a single "disclosure rate".
- Lever's low share reflects that Lever posting bodies are terse in both windows (median description about one-sixth the length of a Greenhouse posting); pay may exist elsewhere on the page the harvester does not store.
- Engineer medians are midpoints of posted ranges from this corpus's platform mix, not an estimate of what anyone is paid.
- No employer is named. Aggregates only.
This data is a by-product of running NetaJob — the source code that collected it. It is a one-time $189 for the full, readable Python, run on your own machine under your own accounts. It will not tell you whether you will get the job; nothing can. What it does is keep a record like the one above for your own search.
Not buying today? Leave an email and you'll hear once, when there's something worth saying. No drip sequence.
