If you are looking for work in Minnesota, most job postings tell you what the job pays. In West Virginia, most don’t.
We counted. On October 11, 2026 we took every open job posting Seekless publishes that names exactly one US state, 529,601 of them, and checked which ones state their pay. The dividing line is the law. In the 15 places where a law requires a pay range in the job posting itself (14 states and the District of Columbia), 84.6% of postings state pay. In the other 36 states, 39.2% do.
84.6%of 220,320 postings state pay in the 15 places that require a range in the posting
39.2%of 309,281 postings state pay in the 36 states that don't
How we counted
Which postings. Every job Seekless publishes on its site and in search on October 11, 2026: open, read from the employer’s own careers page or applicant tracking system, in English, with a description that passed our quality check, at a company we still crawl. That was 1,033,493 postings. We kept the ones whose location, as our enrichment read it, is exactly one place in the United States with a state: 529,601. We left out 81,615 postings that list several locations, because we couldn’t say which state’s law applies to them, and 88,390 that list one US location without a state we could recognise, such as “Remote, United States”. Everything else is outside the US or has no location.
What counts as stating pay. For every posting, a language model answers one question when it reads the description: “Is a salary or pay rate explicitly stated in the posting?” A posting states pay if the answer is yes, or if we stored a salary figure for it. When we checked this by hand on October 4, 2026, none of 300 postings the model marked as stating no pay, in states with a posting law, actually stated a range for the job (the dollar amounts in them were funding rounds, bonuses and the like). In a sample of 200 postings marked as stating pay but with no figure stored, 174 (87%) had a pay amount in the text. So if anything, the counts here lean slightly towards stating pay.
When. One read-only query against our production database, run in 33 slices by job id between 01:08 and 01:28 UTC, because our database tool stops a single statement after 30 seconds. The slices add up to the whole set. Postings can open and close while a query like this runs, so the snapshot is a moment, not a fixed list.
Which places have a law. We count a jurisdiction as having a posting law when, on October 11, 2026, a state law required a pay range (or a fixed rate) in the job posting itself. We checked each against the statute or the state labor department:
Rhode Island and Nevada require a range on request or after an interview, not in the posting, and Delaware’s posting law does not take effect until 2027, so all three count as states without one. City ordinances, such as Jersey City’s and Cleveland’s, are not counted.
The query. The core of it, with the id slice left out:
select upper(trim(locs -> 0 ->> 'state')) as state,
count(*) as postings,
count(*) filter (where salary_is_transparent is true
or salary_min is not null
or salary_max is not null) as stating_pay
from (
select j.salary_min, j.salary_max, j.salary_is_transparent,
j.enrichment_data -> 'locations' as locs
from jobs j join companies c on c.id = j.company_id
where j.is_active and c.is_active
and j.description_quality_score >= 0.5
and j.is_url_unresolvable is not true
and not j.is_provisional
and (j.description_language is null or j.description_language = 'en')
and j.enrichment_version is not null
) published
where jsonb_typeof(locs) = 'array'
and jsonb_array_length(locs) = 1
and upper(trim(locs -> 0 ->> 'country')) in ('US', 'USA')
group by 1;
The full version also maps spelled-out state names (“NEW YORK”) to their codes.