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.
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.
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...
(If the job is sales, then negotiating for higher pay could just be part of proving your skill, of course.)