We Analysed 101,432 Job Postings. Half Cannot Show a Salary.
We analysed 101,432 open job postings from 2,704 companies on 1 August 2026, and found something that explains a complaint almost every job seeker has: half of all postings physically cannot show you a salary, because the software they were posted through has no field for one.
Not “employers chose not to fill it in”. The field does not exist.
Of the 49,722 postings we collected from Greenhouse, exactly zero carried structured pay data. Of the 51,710 from Lever, 15,060 did. That is 29.1% against 0%, on two platforms of almost identical size.
Why the obvious version of this stat is wrong
It would be easy to report that half of all job postings don’t mention pay. That would be false, and the difference matters.
Plenty of employers do state pay. They write it into the job description as prose: “the base range for this role is $120,000 to $150,000.” A human reading the ad sees it immediately. Any software reading the structured salary field sees nothing, because that field is empty or absent.
So we counted twice. Once for the structured field, once by searching the full description text of all 101,432 postings. Then we checked the answer against each platform’s own public API rather than trusting our own data pipeline, because a claim about someone else’s product should survive someone else checking it.
The verification anyone can repeat
Both platforms publish an open API. No account or key is needed, so anyone can check this in under a minute.
The Greenhouse job board API returns a posting’s title, location, description, departments, offices and deadline. It returns no pay field of any kind. There is nowhere for a salary to go.
The Lever postings API returns a dedicated salary object on every posting that has one, carrying a minimum, a maximum, a currency and whether the figure is hourly or annual.
That difference is the whole story. One platform treats pay as data. The other treats it as prose, when it is mentioned at all.
Employers disclose at similar rates. The platforms don’t.
Here is the part that surprised us. When we searched the description text as well as the structured field, disclosure rates were close.
| Platform | Postings | Structured pay | Pay stated anywhere |
|---|---|---|---|
| Greenhouse | 49,722 | 0% | 37.4% |
| Lever | 51,710 | 29.1% | 30.3% |
Greenhouse employers actually disclose slightly more often. All of it is locked in prose.
This is why salary filters on job boards work so badly. The aggregator can only filter what it can read as data, so roughly 18,600 Greenhouse postings that do state pay are invisible to every salary filter on the internet. The information exists. The plumbing throws it away.
Disclosure by country
The geographic spread is wider than the platform gap.
| Country | Postings | State pay |
|---|---|---|
| United States | 49,832 | 52.4% |
| Canada | 3,946 | 25.7% |
| United Kingdom | 4,686 | 6.8% |
| India | 1,575 | 2.5% |
A US candidate is roughly twenty times more likely to see pay than an Indian one. The obvious explanation is legislation: several US states now require a range in the posting, and the effect shows up clearly in the data.
Remote roles disclose less, not more
This one runs against expectation. Remote postings state pay 19.7% of the time. Onsite postings manage 37.5%.
Remote is where a candidate has least ability to guess, since there is no local market to anchor against. It is also where disclosure is weakest.
We can’t prove the mechanism from this data. The likeliest reading is that pay transparency rules attach to a work location, and a posting with no stated location is harder to attach a rule to. That is a hypothesis, not a finding.
While we were in there: ghost jobs
The same snapshot answers a different question. How long do these postings stay open?
| Age | Postings | Share |
|---|---|---|
| Posted in last 7 days | 21,684 | 21.4% |
| Open over 90 days | 29,436 | 29.0% |
| Open over 180 days | 19,280 | 19.0% |
| Open over 1 year | 13,636 | 13.4% |
Median time open is 28 days, which is healthy. The tail is not. More than one posting in eight has been live for over a year.
Some of those are genuinely hard to fill. Some are evergreen pipelines that were never a specific vacancy. From the outside we can’t tell the two apart, and neither can a candidate deciding whether to spend an hour applying.
One more thing about who these jobs are for. Only 15.3% of the 101,432 postings are engineering or technical roles. The rest are healthcare, sales, retail, marketing, operations and a long tail of everything else. Worth stating because these two platforms are usually described as tech recruiting tools. At this sample size they are simply general hiring infrastructure.
Get the data
The aggregate figures behind every table on this page are published as an open dataset with a permanent DOI, so they can be cited and re-checked independently.
| DOI | 10.5281/zenodo.21754196 |
| Record | zenodo.org/records/21754197 |
| Licence | CC BY 4.0. Free to reuse with attribution. |
| Contains | Aggregate CSV plus a method file stating every limitation in full. |
If you are writing about this and want a cut we have not published, email contact@lastroundai.com and we will run it.
Method
Snapshot taken 1 August 2026. 101,432 postings, 2,704 distinct companies, collected from the public job boards of Greenhouse and Lever. No private data, no scraping behind a login.
A posting counts as disclosing pay if its structured salary field is populated, or its description contains a dollar figure in the thousands (written either as $120,000 or as $120k) or one of the phrases “salary range”, “base pay range”, “compensation range” or “pay range”. We will share the exact search pattern with anyone wanting to reproduce the analysis.
Limitations, stated plainly
The text pattern is tuned for dollar amounts and English phrasing. It will under-count postings that state pay in rupees, euros or pounds without a recognised keyword, so every disclosure figure here should be read as a lower bound. The India and UK numbers are the most affected by this and the true rates are likely somewhat higher.
Two platforms are not the whole market. Workday, Ashby, SmartRecruiters and Taleo are absent, and a full picture would need them.
Company sizes are uneven, so a single large employer can move a country’s percentage. And “posted date” is what the platform reports, which is not always when a role genuinely opened.
Frequently asked questions
Why don’t job postings show salary?
Two separate reasons. Some employers choose not to disclose. But on Greenhouse, which carries about half the postings we analysed, the public job board API has no pay field at all, so even employers who do state a range can only write it into the description text.
Why do salary filters on job boards miss so many jobs?
Because filters read structured data. Around 18,600 Greenhouse postings in our sample state pay in the description but expose nothing machine-readable, so a salary filter cannot see them even though a human reader can.
Which countries disclose pay most often?
The United States leads at 52.4%, followed by Canada at 25.7%. The United Kingdom sits at 6.8% and India at 2.5%. US state pay transparency legislation is the most plausible driver of that gap.
How many job postings are ghost jobs?
We can’t identify intent, only age. In this snapshot 29% had been open more than 90 days and 13.4% more than a year. Median time open was 28 days, so the problem sits entirely in the tail.
Can I use this data?
Yes. Cite it as LastRound AI, analysis of 101,432 job postings, August 2026, with a link to this page. If you want a cut we haven’t published, email contact@lastroundai.com and we will run it.
The thing worth fixing
Pay transparency is usually argued as a question of employer willingness. In at least half this dataset it is a question of schema design. Employers wrote the number down and the software had nowhere to put it.
Written by
Dhanush
Writes about the engineering behind real-time conversation tools and how they hold up in practice.
