I think if a pro sports team could figure out how to make it so the opposing team couldn't tell which one of their players is which they would choose to. Good luck running a shift in the MLB if you don't know if the batter is swinging lefty or righty.
Also I think pro sports teams is probably one of the best examples that public information doesn't make perfect decisions. Anybody that seriously follows a team can tell you about numerous bonehead (perhaps bonehead in hindsight) trades that their team made. Or players that were offered a deal well beyond what they were worth.
Athletes leave teams all the time over disagreements over compensation. At least in the NHL it's not uncommon for a player to take the team to arbitration over their salary [1].
Also, I'm not sure what happens if they offer more than that to someone after posting the offer. I suspect offering lower would be would be lawsuit time... But I don't think a higher offer is that much of a problem.
(If the job is sales, then negotiating for higher pay could just be part of proving your skill, of course.)
As far as I'm concerned, if you wanted 250k but the Jr. Dev's range caps at 220k then you can still negotiate to be hired as a Dev.
But if you wanted 250k and the Jr. Dev caps at 240k I think it's pretty reasonable for them to hire you at 250k as a Jr. Dev and just say that when they made the ad they reasonably believed the maximum salary was 240k.
> [1] A pay range must include a minimum and maximum annual salary or hourly rate of compensation for a job, promotion, or transfer opportunity that the employer in good faith believes to be accurate at the time of the posting.
[1]: https://dol.ny.gov/system/files/documents/2023/09/p687-pay-t...
Instead of negotiating for another $20k, you'll be negotiating to add prefixes like 'Senior' and 'Staff' and 'Architect' to your title, which will be worth $20k each.