Job Posting No Salary Listed? How to Find the Pay Anyway
By City Jobs · Updated June 10, 2026
The listing looks right. The title fits, the city fits, the work sounds like the job you've been hunting for. Then you scroll down for the pay and it isn't there. No range, no hourly rate, nothing.
A job posting with no salary listed isn't automatically a trap. Sometimes it hides a lowball offer. Just as often it's an empty field nobody owned. Here's why pay goes missing, how to estimate the number before you apply, and the exact sentence to use when you ask. Because you should ask.
Why the pay is missing
The biggest reason is geography. Colorado, California, Washington, New York, and Illinois are among the states that require employers to post a salary range. If the job sits in a state without that law, the employer can skip the number, and plenty do. Same company, same role, two different listings: the one in Denver shows a range, the one in Dallas doesn't.
The second reason is policy. Most mid-size and large companies have internal pay bands for every role. They keep them quiet because publishing a range tells current employees what new hires earn and tells competitors what poaching will cost. The band exists. They know it. You're just not supposed to.
The third reason is laziness. A hiring manager forwarded a description from 2019, a coordinator posted it, and nobody owned the salary field. This one is common and harmless. It also means asking will get you a straight answer fast.
How to estimate the pay anyway
Start with the Bureau of Labor Statistics. Its Occupational Employment and Wage Statistics tables publish median wages by occupation and state, free. Look up your title in your state, note the median and the 75th percentile, and you have a floor and a stretch number. It won't capture one company's exact band, but it kills the worst guesswork.
Next, look at similar postings in the same city that do list pay. Three or four comparable roles with posted ranges will cluster, and the silent listing almost certainly sits inside that cluster. Employers compete for the same people in the same market. They can hide their number. They can't hide everyone else's.
The best trick: check the company's own postings in transparency states. If they're hiring for the same or a similar title in California or New York, that listing has to show a range by law. Companies rarely run wildly different bands for the same role across states. If you're in a cheaper market, knock a little off for cost of living. Either way, you now have their number, pulled from their own careers page.
When to ask about pay
On the first screen call. Not after three rounds, not in a nervous email at the offer stage. The first live conversation with a recruiter is exactly where this question belongs, and recruiters answer it every day. They have the range sitting in front of them.
Ask directly and don't apologize. No 'I hate to bring this up' and no 'I know it's early, but.' Apologizing frames a normal logistics question as a favor. It isn't one. They want your number for the same reason you want theirs: nobody wants to spend five interviews discovering a $30k gap.
The exact sentence to use
Here it is: 'Before we go further, can you share the budgeted salary range for this role?' Say it in the first ten minutes of the screen call, then stop talking. The silence does the work.
If the recruiter bounces it back with 'what are your expectations,' don't bite first. Try: 'The role has a set budget, so I'd rather start with the range. I'm happy to tell you whether it works for me.' Most recruiters give it up right there. A recruiter who refuses a direct question twice is showing you how the whole company talks about money. Believe them.
How City Jobs handles missing pay
On City Jobs, pay shows up when the employer lists it. We never invent estimated ranges, because a made-up number wastes your time twice: once when you apply for it and once when the real offer lands. If a listing shows pay, an employer put it there.
Listings come straight from companies' own careers systems and the official federal USAJOBS feed, and they expire automatically when the employer takes them down. So when you find a posting with a range attached, it's a live role with a real number. Start with those, and save the script above for the jobs worth the extra step.