Salary ranges in job postings: what they tell you and what they don't
How to read a posted salary range — what the law requires, what employers list vs. what they pay, and the signals a missing or vague range sends.

On this page
The salary line in a job posting used to be reliably absent. As recently as 2020, fewer than 12% of US listings included one. Five years and a handful of state laws later, the picture has changed: pay-transparency requirements now cover roughly 30% of the US workforce, and posted ranges are common enough that their absence is starting to read as a signal in itself.
This post is about reading what's there. A specific range tells you something. "Competitive" tells you something different. A range that goes from $70k to $160k tells you yet another thing — and not the one most candidates assume.
Where the rules apply
The disclosure landscape, simplified: a handful of states (and a growing number of cities) now require salary ranges in postings; most don't. The states with active laws as of 2025 cover roughly a quarter of the US labor market, but they include three of the four largest tech hubs (California, New York, Washington), so postings you actually see often include ranges even when the role is national.
Pay-transparency law coverage by state (US)
As of 2025A few practical implications:
- A national posting from a remote-first company usually includes a range even when the candidate is in a non-disclosure state. Companies don't typically maintain two posting variants based on where the candidate sits.
- A posting without a range, from a company headquartered in a disclosure state, is not necessarily out of compliance — it may be a job that explicitly excludes residents of those states (sometimes for tax/legal reasons), and therefore doesn't require disclosure.
- Cities can have stricter rules than their state (e.g., NYC required disclosure before NY State did). Check the posting's specific location, not just the state.
What the range actually tells you
A posted range carries information beyond the numbers themselves:
Three types of postings — what the range signal means
Read the signalThe most informative type. Min is roughly what they'll offer a junior hire; max is what they'd stretch to for a strong candidate. Plan to negotiate within the upper third.
Either the role is in a no-disclosure state and the company hasn't volunteered a range, or it's in a disclosure state and they're testing compliance. Apply if interested, but ask early in the recruiter call.
$70k–$160k for the same role doesn't mean both are real options — it usually means HR set the range loose to avoid commitment. Treat the high end as aspirational.
The single most useful variable is the spread between min and max. A spread under 25% is a real range — the company has thought about what they'll pay and is being transparent. A spread over 50% is either a placeholder ("we'll figure it out") or covers multiple seniority levels in the same posting. The latter is common in companies that haven't separated out their leveling — a single "Software Engineer" posting might span IC2 to IC5 with a range from $130k to $260k. In that case, you're not negotiating against the high end unless you're a very senior IC5.
Posted vs. paid
Many candidates assume the posted minimum is the floor — the lowest the company will pay for the role. It isn't, exactly. Companies build flexibility into their ranges through experience adjustments, starting-grade discretion, and (occasionally) outright re-ranging mid-process if a strong candidate emerges who's willing to accept less.
Posted vs. paid
Companies build downward flexibility into their ranges via 'experience adjustments' and starting-grade discretion. The posted minimum is a soft floor, not a guarantee — meaningful in negotiation but not binding.
Source · Multiple compensation-data analyses (Payscale, Levels.fyi, Indeed Hiring Lab, 2023–2024)
About 12% of offers come in below the posted minimum, often by 5–15%. The reasons:
- The role got re-leveled. What was posted as Senior gets offered as Mid. The posted Senior range no longer applies.
- A negotiation anchor that worked too well. The candidate's stated current salary was below the posted minimum and the company anchored on it.
- Experience adjustment. The candidate has the title for the role but the company decides their actual experience is shorter than the posted minimum's expectation.
This isn't most offers, but it's enough that the posted minimum should be read as a strong signal of the company's intent — not a contractual floor.
How to use the range in negotiation
A few practical moves once you have a posted range and an offer in hand:
- Anchor on the upper third, not the midpoint. The midpoint is what HR offers to "average" candidates; the upper third is what they'll pay strong candidates without escalation. Open at 70th percentile of the range and let them negotiate to 60th if they need to.
- Ask if the range includes their full intended package. Some companies post base only; others include base + bonus + equity grant value. The same number means very different things in the two cases.
- Use the range to assess offer quality. An offer at 35th percentile of a posted range is below-market for the role; at 65th percentile it's competitive; at 80th+ it's strong. The midpoint is not "the right offer" — it's the average, which means half of all offers in that range are below it.
- Don't assume the range applies to your geography. A national range may apply only to the highest-cost market the company hires from. A San Francisco-based role with a $170k–$210k range becomes $145k–$180k in Denver. Ask early.
When the range is missing or vague
If the posting either omits a range entirely (in a non-disclosure state) or uses vague language like "competitive" or "commensurate with experience," the move is to ask early in the recruiter call. The exact phrasing that works:
"Before we go too deep — what's the budgeted range for this role? I want to make sure we're aligned on level before either of us invests further."
This is normal in 2025 and recruiters expect it. A recruiter who refuses to share a range is sending a signal — usually that the range is below market or that the company doesn't have one set, both of which are red flags. A recruiter who shares a range willingly is making the rest of the conversation more efficient for both sides.
When a range is too good to be true
A few patterns that suggest the high end of the range is aspirational:
- The range is wider than 60% for what's clearly a single seniority level. The high end is for someone who doesn't exist in the company's current bands.
- The role is at a startup that just announced a funding round but the posted range matches FAANG levels. Often a "best case if we close our next round" number, not what's actually being offered now.
- The range is in a competitive field where the company has lost candidates to higher offers. The high end might be what they'll pay the unicorn, not what they'll pay you.
- The posting language emphasizes "for the right candidate" about compensation specifically. Read this as: most candidates won't get the high end.
None of these are dealbreakers — but they do tell you the realistic offer is closer to the midpoint, not the top.
What this isn't
A few things this isn't:
- A guide to negotiation. Negotiation is a separate skill that interacts with the range but isn't determined by it.
- A comprehensive map of pay-transparency law. State and city rules are changing fast; check the specific jurisdiction for any role you're seriously considering.
- An argument that more transparency is always better. Posted ranges have created some unintended effects — wage compression at the top, anchoring effects, and occasional strategic ranging by companies — that are worth knowing about. The information asymmetry is shifting, not gone.
The short version: a range tells you something specific. Read the spread, the phrasing, and the geography. Use it in negotiation as a signal of intent, not a contractual floor. And when it's missing, ask.
More to read
6 min readHow to message a recruiter on LinkedIn (with actual examples)
The cold message that recruiters actually respond to — what to write, what to skip, and the message sequence that converts when the first one doesn't.
job-searchapplications
5 min readThe 'hidden job market': what's real and what's myth
How many jobs are actually filled before they're posted, what channels really matter, and the bad advice that 'just network harder' creates.
job-searchapplications
6 min readReading between the lines of a job description
How to separate must-have requirements from wish-list items, decode the soft signals, and use the language of a posting to estimate what the role actually wants.
job-searchtailoring
6 min readDo cover letters matter? When they're read and when they're skipped
The roles and companies where cover letters change outcomes — and the much larger set where the time is better spent on the resume or outreach.
job-searchapplications