Hacker News new | ask | show | jobs
by pmoriarty 3782 days ago
"Time and again, he says, employers seem to lose interest after he answers a question that they ask early on: 'What was your last salary?'"

I never answer that question.

Almost always it's been recruiters asking that (and only some recruiters, the less reputable ones).

This is a seller's market for IT talent. You don't have to give in to bullying tactics to get a good job. I've had to walk away exactly once when a recruiter wouldn't accept that I wasn't going to tell him my previous salary and refused to work with me on that basis. The other recruiters who've asked accepted my refusal to reveal that information. They're generally more interested in getting paid for recruiting you than in finding out what you used to be paid.

I also never reveal the salary I'm looking for and insist on doing my own salary negotiations with the employer. I let the employer make an offer they think is reasonable and go from there.

You do have to be willing to walk away in the handful of times when this leads to an impasse. Fortunately, the way the IT job market is right now, there are plenty of other fish in the pond, and not showing your hand prematurely puts you in a much stronger negotiating position.

12 comments

But it goes the other way, too.

I've been contacted by many many recruiters offering interesting jobs but won't discuss the salary range targeted for that position. So how much time are you willing to spend on resume polishing, phone screens, on-site interviews, getting to an offer...just to find out that they can't even come close to your current salary?

So now I just flat out say what my jump-number is. Any answer other than "yeah, we can work with that" is a reason to end the conversation and save everybody's time.

So now I just flat out say what my jump-number is. Any answer other than "yeah, we can work with that" is a reason to end the conversation and save everybody's time.

Can't upvote that enough! I've been doing this for years. I don't have time to waste and if they won't talk the numbers there is no point in having the conversation. Statements like "we are competitive" or my other favorite "can you send us proof of your current salary" are hilarious. The proof is my favorite. What is the point of that? If I won't talk to you for less than x dollars there is no value in proving what I currently make.

No, you never give out a number. It's like asking the person sitting across from you to show you their cards before placing a bet.

If a company is willing to pay $100K and you throw out a number, say $80K for example, then how much are you out?

If your first thought is $20K, then you'd probably be wrong. You would be correct if you stayed only one year with the company. However, every year you're with the company you're out another $20K not to mention any salary bumps or profit share that is a percentage of your salary, etc... After 5 years, you're out $100K.

You never give out your number.

When you are asked, "what's it going to take", you should always answer with something like: you're most competitive offer. I don't feel this is rude at all.

I usually recap how key points from the interview. Come back with how you believe you would add value to X and would love to work on Y and that your best competitive offer would get the ball rolling.

Your job is to find out the maximum a prospective employer is willing to pay. Likewise, a prospective employer is attempting to get the best bang for their buck.

Never show your hand. I've interviewed probably 15-20 times in my career and have never strayed from this course. Now I'm a business owner. I've interviewed 100s of people over the years and it never ceases to amaze me how many candidates flat out give me a number when I ask.

Head hunters are pain in the ass to deal with. They insist on knowing where you're at because they don't want you wasting their time. Well, tough shit! Head hunters need to figure out what the going rates are for whatever it is they are seeking candidates for. A good head hunter will let you negotiate for yourself.

>No, you never give out a number. It's like asking the person sitting across from you to show you their cards before placing a bet.

The thing I've never understood about this approach is the reason it's suggested not to give your number first is, presumably, it can anchor your salary negotiations lower than what the company was originally prepared to offer.

I've switched jobs a few times for no other reason than to get a huge salary jump, and I've always given my salary requirements to a recruiter or during the interview process based on the high, high end of industry salary surveys in my field based on my years of experience. Sometimes the conversation will stop then and there, but a few times they've bitten and I've gotten the huge raise. Not to be smug or anything, but I'm fairly sure I'm making quite a bit more than most of the co-workers I've had in similar roles, even if they have more experience than me.

From my perspective, I'm anchoring the salary negotiations on the high end, as opposed to letting the recruiter spit out a number first and anchor the negotiation on the low end. What would I gain from letting them make an offer first?

The "never give it out" camp always, to me, seems to be making the assumption that salary negotiation is exactly like a game of poker. No one could ever guess what's in your hand and you can't guess what's in theirs. You better bluff all the way to the end and if your hand is better then you win.

Most people can look at payscale or glassdoor though. If I'm putting out a Junior req for a front end position for a CRUD product, then I know pretty well what I'm looking for, and the salary range is pretty set. When someone comes in the game they're playing is "let me convince you why I'm worth the upper end of the range (or even a bit more)", and my game is "let me get you down to the lower end of the range by convincing you how awesome we are, etc." The underlying assumption is that our mental ranges overlap somewhat. If someone comes in and their range doesn't overlap with mine, even if they are supremely talented and worth it, it still won't work out, because I'm not looking for a Senior person, remember? People, most often, hire for best fit not let's get the best person possible. If someone comes in and their expectations are grossly out of sync with my own, it's better to just have it out. If I'm out of sync with reality then the market will correct me or I'll perish, either way it's no skin off the back of the candidates who said, "way too low, see ya later!"

100% agree with just about everything you said except if I may expand a bit.

"If someone comes in and their range doesn't overlap with mine"

Right there is where I think both sides need to do their homework. I have interviewed many candidates over the years that had no clue what the going rate was for a given market and given area.

Example: Oracle DBAs in New York and SanFran command more than the same Oracle DBA working in Detroit at one of the big 3 automotive companies. If you don't understand these dynamics, you're pretty much at a disadvantage and that goes for both sides.

It's only true to never give out your number if you have a nontrivial probability of being offered a higher salary than said number.

If you expect $X and only 5% of employers out there are willing to pay >=$X, it might very well be worth your time to state $X at the start to avoiding wasting countless hours in an interviewing process.

They should tell you their range before beginning, not the other way around.

Recruiters already have a massive advantage: they have much better knowledge of the market (many more datapoints), why give them for free an additional advantage they can only use against you?

That may also largely depend on who the recruiter you're talking to works for. If it's HR for the company that's different than a third party technical recruiter like a TEKSystems or something. The third party technical recruiter, which is who I'm usually talking to, has no real incentive to low-ball you.
This is great advice, and I agree with most of it.

As a headhunter, I wholeheartedly agree that you should never give out a number in negotiations. By doing so, you either sell yourself short or price yourself out. These days, especially, technical talent has the leverage and should use it to their advantage. When the market cycle shifts and employers have more strong applicants than necessary, it will be different. That's why, like you said, the $20K difference today will pay huge dividends over the long-term.

I disagree on "going rates." That lumps candidates into an average, which is unfair to them. Salary negotiations are complex and presumptions on the part of a headhunter will backfire.

Above all, I want transparency upfront. My ideal situation is when I know that the candidate's and employer's approximate compensation ranges are aligned. Granted, it's rare, but there's nothing worse than a positive interview process followed by the surprise reveal that both parties were way off in their expectations. The time wasted for the headhunter is negligible compared to that of both the employer and candidate. This is why I want to know the rough ranges at the onset. However, I agree that headhunters are trained to place undue pressure on candidates for specific numbers and it's a poor practice.

Presumably if you're female, then you can use "equal" pay legislation to ensure you get whatever the best male negotiator got. Thus you could accept a lower wage up front in order to seal the deal.
Always give your number first. It's called anchoring. Backed by good research.
To me it depends a lot on the job though, which is not always clear up front, so I usually like to find out a little more about what they have in mind. My real "minimum salary" is a really huge range, roughly anywhere from $70k to $130k depending on what kind of job it is. I do AI research, which can be more or less applied, and more or less "researchy". Is there very interesting work, good vacation policy, freedom to pursue research, and company support for me publishing code & papers? I'll take quite a bit less money for that kind of job. Less interesting work, less freedom, little time off, and a no-publishing policy? Well, then I'll want a much higher salary.
Yup on every call a sale is made, either you sell them on a reason they can pay you that much or they sell you on a reason they can't.

Taking on a fuck you pay me attitude is the best thing that ever happened to my life.

Seriously, this is good advice, if you're in the above average skill set range in an area that is in demand, such as senior sys admin/ senior programmer, and various other combos. Then you can name your price, the trick is finding a company that can afford you and isn't a total shit place to work for.

I took a decent cut in pay just to be able to work for a company I actually really like. And while I can't afford to buy a new computer nearly as often I do get to work with really fun people and on projects that I really care about.

Are you guys both over 45? Just curious.
I'm 32 and I've been setting my price for the past 4 years. I also didn't get out much for 6 years :D but it was worth it.
34
My standard response is "What is the pay range? Who is the client?" to the recruiter emails. The recruiters that get back to you generally mean business. Because of this, I have a huge amount of data on contract rates now. Also, a good side effect is that at least someone is telling them their rates are too low. Hope it helps another consultant down the line...
You should share that data, help your fellow job hunters.

Last time I worked at a BigTechCo, salary ranges were $85-100K for juniors, 120-130 mid-level, and 150-165 for senior devs. Bonuses tend to hover around 30%. Of course, stock grants varied widely.

The largest IC pay I saw was $2M/year for a someone who years ago was part of a famous project -- semi-known guy. More recently, I've seen (indirectly) BigTechCo's offering $300-350/year total comp to mid-levels, and 5-600K to seniors.

Anyone else wanna share?

>Anyone else wanna share?

Yes please do (everyone). The reason is to drive wages up. Hiding this knowledge doesn't protect YOU, it raises the bar for your next job. They're going to outsource and insource you anyway so that's nothing to fear.

Looking for an entry level Django gig and have always wondered what it should be (of course market matters). Generally stated, finding -any- developer under 85K is a bargain IMO and you pretty much confirmed that. I know many make less than 85 (like me), but I've had it with being taken advantage of as well. Only have so many healthy years to provide, next job is going to be the right deal to take care of my family.

Why wait for the next job? If both you and your employer understand your wage is under market value, your work is good, and you are reliable, why are you hesitating bringing up your current pay? Give them a number that works for you.
*edit- wow that ended up a lot longer than intended.

Interesting point and totally valid. I agree with your sentiment, though sitting back, it reads idealistic to me. Easier stated than done. But I did exactly that last year. My manager and his, our director responded well to it. I was prepared to walk if they feigned offense/anger (had that happen once years ago at another place). I got a decent raise, 10%. I don't expect any existing job to go much further than that TBH. Usually asking for 10% or more will earn you a good laugh.. your initial salary usually sets the pace till you leave.

I felt that was them being generous as a very large corporation such as mine goes. It was out of bounds, did not affect this year's standard raise and so forth. I've made them a lot of money, hundreds of thousands a year in direct billables for 5 years now, I think I peaked there in 2013 at $400,000 for the company. At my rate, $220 that's almost billing all day everyday for the year. Of course, I have a support system but you still have to bill the time and do the work. Plus the intangible benefits of my employment there and have been getting "exceeds expectations" for the last couple of years. I don't think there's a time that I didn't come through, and I never say/said "I don't know" to things (which drives me nuts to hear from people as I'm a stubborn researcher). I mentioned all of this, had hard numbers ready and so forth when asking for the raise.

I didn't hesitate to ask for it when the time was right. 4 years of pretty clutch contributions (if I must say so myself) and a large, critical project coming up that only I could accomplish for them (they foolishly let everyone else go with knowledge of the product). But you can't keep going back time and time again asking for bigger raises, and that 10% was determined by HR doing their market research. I didn't get to give any input. To put me where I should be would've been a 20K raise. I knew that was a pretty tough task though- that's a switching jobs raise.

So at this point, I pretty much have to drop the salary point and continue working. I don't think it's right to keep asking for more without a role change, promotion or significant time passing, it kind of shows they never should've played ball the first time IMO. If I want a big raise again, I'll just have to move on one day. I wouldn't mind switching stacks anyway to something Python. I'm also able to work from home, so I'm looking for the best place to put down some roots and start looking for that role. Austin, Vancouver, WA (Portland) or Chicago. So that freedom has a lot of value.

I'm only hesitant to do that because most of my career has been abusive, long unpaid overtime and I've been fairly easy to exploit because I was your typical virtuous midwesterner who has been turned fairly cynical when I found said values like "work hard, get the money" weren't really true. I have a strong sense of justice, so when I feel wronged I get fired up.

My belief was that if I came through on every job and project, I'd be recognized and taken care of. It's not true, you're just the dummy who works his ass off sacrificing your health in the process. When you're burned, they dump you for a new model. No one cares about you. You just need to shut the laptop down at 5:30PM and walk out the door. Damn what everyone else does or thinks, as unpaid overtime is the root of all evil.

The last couple of years it's been the first time I've received humane treatment and spooked to start over somewhere else. :)

Like I said, it's a very large corporation and I highly dislike the lack of passionate employees for the tech. It's a technical graveyard. But there's not much drama and nonsense going on, which I appreciate. So many offices are full of clowns and egos and I'm glad to be out of that. Not to mention, after 5 years everyone knows me, and I know I'm not perfect either.

It's a balance, money isn't everything but getting as much as possible without being made miserable is the goal. I almost got so burned up that I didn't want anything to do with tech-anything, and I'm really glad I didn't quite reach that threshold.

Some point I'll seek out that new role for the bigger raise, and get out of the tech graveyard. I'm bored, capable of more and I need to do it for my wife and kids we're aiming to have.

300-350 for mid level developers and up to 600 for seniors? Where is this?
Big tech companies in silicon valley.
I want to believe the numbers you provide are right, but then I look at https://www.glassdoor.com/Salary/Facebook-Salaries-E40772.ht... and cant see where to get more reliable sources for thinking facebook or google pay that.
What's a jump-number? Googling it came up with your comment as the top result and then skydiving :)
The salary number that would convince joezydeco to "jump ship".
jump ship to the new opportunity (meaning a high number), or jump ship on the conversation (meaning his bare minimum number)?
Jump to the new job. Doesn't necessarily have to be a high number, but if I'm not looking for a lateral (meaning, I like my current job), then it should be significantly larger than what I'm making in salary/benefits today.
I can see how that's ambiguous, and this is just an assumption, but I assumed he meant "jump ship to a new opportunity" because starting off with the lowest number you'd accept seems like a bad negotiation strategy :)
I've found this to be an excellent way to waste a bunch of time by getting far along in the process, only to find out near the end that the company won't make an offer that's anywhere near my requirements. While I don't like being the first to name a number, I also haven't found putting the discussion off until the end of the process to be beneficial.

I've been on the hiring side as a manager in a number of companies, and I've NEVER seen a situation where a candidate was so uniquely awesome that the company was willing to make an offer drastically larger than their normal range for that role. A bit more? Sure. Some more stock or something? Often. But not, say, 50% more salary than anyone else at that level is getting.

After many years in this industry on both the candidate and hiring manager side, I believe that it's in everyone's best interest to make sure you can at least get in the right ballpark early in the process before you waste everyone time.

> I've been on the hiring side as a manager in a number of companies, and I've NEVER seen a situation where a candidate was so uniquely awesome that the company was willing to make an offer drastically larger than their normal range for that role. A bit more? Sure. Some more stock or something? Often. But not, say, 50% more salary than anyone else at that level is getting.

Fyi, at $DayJob we have one guy at my level who makes 50% more than anyone else at the level he is at.

So it does happen but its unusual. [e.g. Developer A-Z get $60-80k, Developer Unicorn gets $120k]

How about when so-so dev makes 50% more than rock star dev! It's real.

Why? The underperformer w/high-salary was brought in by some idiot manager x years ago - that manager has since lost their job - but this ok performer still pretty good and still in their job.

Have had rock stars contact the company - willing to work for 50% under market and we'd be crazy not to put them on. Without even having an open position at the time.

It is ALL negotiation. Don't assume there is solid logic and "fair" salaries.

A lot of times in situations like this there's eventually pressure from above to manage such people out ... for obvious reasons.
From my experience at small medium startups, some dev gets higher pay because he/she is attractive and socially well adjusted and not nerdy. Not necessarily better coder.
> socially well adjusted

Don't underestimate this. Being a better code doesn't make you a better employee.

Nope but they tend to serve other needs like keeping a good social structure within the company and being presentable to investors or doing client facing pre-sale / post-sale work besides coding.

There are allot of ways that a company can monetize their employees and allot of factors that end up being calculated to come up with the figure they end up paying for them, being socially well adjusted and attractive can have a good effect on your salary as people both tend to equate intelligence to good looks oddly enough and that they could use you for other things as well.

In some cases it also might be ticking a box kind of thing I've seen companies recruit attractive females before to both tick the diversity box and to keep some of the more social awkward coders working harder (this came directly from the mouth of a female headhunter that even boasted she specializes in hiring office eye candy that can do some coding on the side).

The thing is none of the coders at old job were needed in customer interaction. Think it was more of eye candy, cool guy to have around, founder had common hobbies like football etc.
I know that happens but it sucks. We pay everyone based on merit. The quietest, nerdiest person is paid the same as the most attractive, outgoing person with the same skills.
How are you defining 'level'? Two individual contributors are not at the same level just because they do relatively the same job. I'm sure some of the better IC engineers at my company make 2x or more what the new guys do, but there is 15 years of experience between them.
Same job title. All relatively junior developers with less than 10 years of experience. Unicorn has 4.
How are you a junior developer after 10 years of experience? That's pretty mid/senior level at that point.
I said relatively junior. [i.e. They have no management responsibilities and are pure developers]

We pretty much have Developer -> Senior Developer -> CTO.

Depends on indistry, but 10 years is far from senior. (ignoring title inflation.)
How old are you?

I think something often unsaid in conversations about stuff like this is that ageism is rampant in the tech sector. I haven't experienced it first-hand (and I'm probably just now approaching the age where it might be a factor, and I haven't looked for a full-time job in a couple of decades), but I know several folks who have. Even when they've been willing to take lower salaries, when applying for startups, in particular, older folks often get passed over. It gets called things like "cultural fit", etc.

But, the thing is, we're talking about a "low six-figure salary" here, which is not that high for engineering work. In fact, in many markets, it's the baseline for anyone with more than a couple of years experience. I can't believe salary is the primary motivating factor, if it is a reasonable salary, well within the bounds of expected pay for people with experience.

I haven't been in the job market since I was quite young (I've run my own companies since my 20s, with some contract work along the way to make ends meet), but, I know my dad experienced this to some degree; and he was an engineer in an industry that was not nearly as ageist as high tech fields often are (he worked in the oil and gas industry). His salary climbed through his 30s and 40s, and then finding work became more difficult in his 50s, and he retired early partly due to health issues, but also because of difficulty finding good long-term work.

I don't think salary is the only factor here, especially given that most of the folks I know who've experienced this aren't insisting on making more than their peers doing the same work. The people motivated by money tend to rise up to management roles. The engineers who are driven by the desire to build things just want to make a decent salary while being in an environment where they get to build things. The most productive software engineer I think I've ever worked with was in his late 50s, and was making less than a number of developers in the company (but he had a private office and a few other perks that no one else got, and got to work on stuff that excited him, so he seemed reasonably content).

I would not tell recruiters my current salary, ($75K) but I did tell him my target salary, which was market rate for a mid-level Ruby dev in my city. ($115K) He wanted to go in at $110K.

I kept telling him how odd it was to be negotiating salary upfront, and he told me "that's just how recruiting works." I just shrugged and let him do his job. If I'd wanted to negotiate my salary myself, I wouldn't be using a recruiter. Truth be told, I'd take $95K.

I learned from the art world, a lot of times "market value" is a fiction created by people whose job it is to manage expectations on all sides. It's in everybody's best interest to simply accept the status quo. Sure, you can buck the system and gain an additional $10-20K, but that takes a lot of effort and I'd rather put that effort elsewhere.

People buy into the cult of individualism too much. There was an article a month or so back about the maple syrup cartel. People here were applauding the renegades bucking the cartel. Not me. I'd get on very good terms with my cartel rep, get him a very good gift basket for Christmas, jump through every hoop they want me to jump through. The cartel takes a nasty, volatile market and smooths it out and makes it into a nice, reliable engine. That's what I want to be a part of. Not a damn free-for-all.

Any other career field, it would be 10+ years before I can make $100K. Here I managed to do it in 3 years. Be a team player. Climb the ladder, pay your dues. It doesn't take as long as you think.

> Be a team player. Climb the ladder, pay your dues. It doesn't take as long as you think.

This attitude is why engineers get bullied and steamrolled into working for a small fraction of the value they create for their employers, leaving hundreds of thousands of dollars on the table over the course of their careers. Being a team player is for after you're on the team -- but before that happens it's not personal, it's business. Anyone who takes it personally and not as a purely business negotiation is not someone you should work for.

I'd argue that it's a lack of professionalism that's the real problem. It's easy to negotiate yourself out of a perfectly good job offer if you don't know what you're doing. And lets be honest, most devs haven't the slightest clue how to do salary negotiations. Someone posted Patrick's guide, and that's a good start, but you need to learn a whole bunch of little lessons about the corporate world before you can really start to apply them effectively.

Until then, why not just work for market rate or just slightly below? Don't stress yourself out, there's no reason to and it'll hurt your bargaining position. 90% of it is done before you even get to the table anyway.

It doesn't matter how much value you create for your employer; it is how many other people around can create the same value for your employer.
By realizing you have to use the system and studying how to get the system to do your work, you learn how to adapt the system to your desires. Or you can fight it steadily, as a small undeclared war, for the whole of your life.

Many a second-rate fellow gets caught up in some little twitting of the system, and carries it through to warfare. He expends his energy in a foolish project. Now you are going to tell me that somebody has to change the system. I agree; somebody's has to. Which do you want to be? The person who changes the system or the person who does first-class science? Which person is it that you want to be? Be clear, when you fight the system and struggle with it, what you are doing, how far to go out of amusement, and how much to waste your effort fighting the system. My advice is to let somebody else do it and you get on with becoming a first-class scientist. Very few of you have the ability to both reform the system and become a first-class scientist.

From http://www.cs.virginia.edu/~robins/YouAndYourResearch.html

There's a couple more quotes like that. Very similar to your point.

"If I'd wanted to negotiate my salary myself, I wouldn't be using a recruiter."

For me, recruiters are useful for two reasons: to find me interesting opportunities and to help me get an interview.

When they've served those two functions, I'd prefer them to just get out of my way. From that point on, I feel my own interests are best served by me representing myself.

The recruiter's real customer is not really any one particular candidate, who they might see just once in their whole career, but the employer, who will likely be a repeat customer if the recruiter satisfies their needs. Looked upon from that perspective, it's not always in the recruiter's interest to land the candidate the highest salary possible. That might get the recruiter a higher cut that one time, but their real customer might not be too pleased if the recruiter keeps sending them expensive candidates. They'd be far happier if the recruiter managed to get them a sweet deal on a good worker.

So I'll just keep doing my own negotiations, thank you very much.

> The recruiter's real customer is not really any one particular candidate, who they might see just once in their whole career, but the employer, who will likely be a repeat customer if the recruiter satisfies their needs.

And I'm cool with that. Recruiters do an important job for me at the point in my career that I'm at. Cut through the bullshit. I don't want to deal with a wishy-washy employer. I don't want it to be my whiny voice they hear asking them for more money.

I want a buffer. Because if there's one thing I know about corporations it's that there's a lot of stupid thinking going around when it comes to hiring. Employers think they want things when the things they want, once they had, they'll realize they didn't really want that, and you're the one that has to pay the price for that. Using a recruiter means you're serious about hiring.

I want to stay in my own little world and just code. Job hunting is stressful. I'm happy to let the recruiter do the stressful parts for me. Far as I'm concerned it's a fair trade.

    Sure, you can buck the system and gain an
    additional $10-20K, but that takes a lot of
    effort and I'd rather put that effort
    elsewhere.
$10-20k per year is a lot of money for an extra few hours or days of tenacity.
They have the same incentives as realtors selling homes. If you're commission's 15%, what's the value of 15% of the extra $5k versus time?
A real estate agent is not likely to sell 15 or 20 houses to the same buyer. But a recruiter could well sell 15 or 20 candidates to the same employer. That gives the recruiter a far greater incentive to please the employer than a real estate agent has to please a buyer.
I own my recruiting agency, and I don't care what your last salary was. I do care about what you are looking for so I don't waste your time, my time, or the client's time. I also realize that any target range you give me before even meeting the client may increase or even decrease after you learn all about the company, team, benefits, etc.

All that said, a candidate that knows their market value should never have to fear talking about salary history or expectations. If you know your market rate, and you stick to that as your expectation, you never have to worry about being underpaid. Market rate can be hard to define sometimes, and there are clearly companies that are willing to pay above market rate in certain scenarios, but candidates who do their research (or trust the knowledge of others) never have to worry about talking compensation.

> All that said, a candidate that knows their market value should never have to fear talking about salary history or expectations.

The main article starts with an anecdote about how talking about salary history prevents a guy from getting work.

This is the case whenever your expected salary gets higher than younger, cheaper replacements are willing to accept. This isn't a problem for people that have made more of their younger years, since the positions they're applying for are high enough leverage positions to justify the higher salary ask and younger workers are simply not qualified to apply.

I see this all the time in applicants. They've spent 15-20 years on the job and have less than 5 years of useful experience. The rest is stagnation where they haven't grown their skills. And yet they expect to be paid as if they've got 15-20 years of useful experience. That's why answering the salary question derails the negotiation. There may be an odd recruiter that is willing to accept the premise that an older worker is able to complete the job's tasks at enough above the acceptable level to justify the increase in cost. But most will opt for a younger worker willing to do an acceptable job.

As someone who's regularly on the other side of the hiring (i.e. negotiating with candidates), I often prefer to have some insight into a candidate's rough salary requirements early in the process -- especially if it's someone that might demand more than I could offer. The hiring process is a huge time commitment for both me and the candidate -- I don't want all that time to be wasted if we could identify early on that it's not going to be a good fit.

I wouldn't necessarily walk away from a candidate who wouldn't share approximate salary requirements early on in the process but it would probably be an added red flag if it was someone where I already had this concern.

So just tell the candidate what the salary range for the position is. If that number's a dealbreaker for them, they'll let you know. Why does it always have to be the candidate who shows their cards first?

Personally, for me there are no salary-based dealbreakers. There's always room for negotiation, after both sides determine there's a good fit.

Consider that recruiters also have to justify their own existence. From a business perspective, their position is a sunk cost. If they can't signal to their employer that their work is gaining the business something above and beyond just doing their day-to-day job then there's no chance of advancement.

They also dislike candidates that show proficiency in business for a few reasons.

First, the candidate is more likely to move on for a better opportunity.

Second, people with a business background like to 'shake things up' and head in new directions looking to maximize the potential of a company. Considering that HR's other primary responsibility is protecting the business from legal action, it's in their best interest to choose candidates who will stay on the straight and narrow and not shake things up.

Third, business types ignore the 'gatekeepers' and take action on their own. They may make a groundbreaking decision that takes the business in a new and more profitable direction. Unfortunately for HR, it's hard to ride on the back of an accomplishment that they weren't aware of to begin with. Worse yet, that same type of personality may have the potential to climb up the chain to a level where they're the boss of the HR person one day.

They aggressively select for 'code monkeys' because code monkeys do what their told, don't have enough soft skills to be a threat, suck at negotiation, and are too busy nerding out to look for something better.

How does HR "ride on the back of an accomplishment?" For example, if a sales team hits their sales goals how is it that HR would get credit for this? Are you grouping "management" under the umbrella of HR?
I give candidates a range if they ask.
I think the issue is that a fair number of people doing hiring think this is still the 1980s. People worth hiring would like the company to be upfront with them too. If you put the salary range in the posting or mentioned it upfront then problem solved no?
Then you should share the range for the position and let the candidate decide if it's worth continuing.
I share if the candidate asks. In the end the candidates requirements come out though. If I say X, they'll often say, oh I really need Y. I can work with that. If they just walk away when I say X, that's fine too -- it wasn't a good fit.
That's not a fit issue. They just don't want to work for that wage. Find someone who will. Why do they have to ask? If you're really interested in efficiency, state it upfront, atleast the lower and upper bounds.
It doesn't matter to me who asks first, just the the discussion is had to avoid wasting time if it's likely to be a problem. Sometimes they ask about salary range, sometimes I ask about salary requirements.

Debating whether a disconnect on $$ is a "fit" issue seems kind of silly. If it's not a job they would take because of pay, it's not a good fit for them.

Precision matters. Fit is a poorly used term to basically mean, we don't want you for reason X but don't want to tell you that.
Posting the salary range for the position solves this problem.
The salary range I can pay friends on a lot of factors, not just the position. Oftentimes I can adjust the salary and title (up or down) to be appropriate for the candidate. But if a candidate asks what range of salary the position would pay, I'll give an estimate.
So I presume you are sharing your salary range early, then?
Sure, if the candidate asks, I'll give a range. Of course, it's still a negotiation so my range may be a bit lower than I could actually go but I expect the same of whatever numbers candidates offer up. If I say 120k is my top and he needs 175k, there's no reason to move forward. If the numbers aren't that far apart we can go forward and see what happens.
I actually am happy to reveal the salary, mainly because I find myself on the higher end of the compensation scale for my experience. When you're on the higher end, it can help on the candidate side to avoid wasting time with prospective employers who want to lowball.

It also doesn't stop me from negotiating hard, since I have turned down drastically higher numbers than most companies are willing to pay, so they know I easily have options. I'm more than willing to walk away from recruiters (and employers) who want to coerce me into accepting bad deals. Setting number expectations upfront with knowledge of the market saves me time, and tends to be enough to weed out the crap.

As long as the recruiter (either a headhunter or a company recruiter) is up front with what they can offer compensation wise I don't have a problem telling them where I'm at and where I want to be salary-wise. If it's apparent that there's no match there - saves time to all the parties involved. Sure you don't want to be "pigeonholed" into an X..Y salary bucket forever but for the short term while looking for the next opportunity that's just the reality of the situation.
I'm the exact opposite. I'm at a rate that's above the local market, so I mostly have to work remotely for firms in areas with higher cost of living. Any recruiter is going to find my salary range within the first 90 seconds of talking to me. This allows me to filter out 90% of calls because the salary range they're offering isn't even close.
If recruiters are chasing me while I'm gainfully employed...

I, jack up the rate Im currently making, which has worked once; got a better paying gig.

If recruiters are chasing me while I'm looking for my next gig...

I make up a fair livable wage salary that won't push me out of consideration

My mentality going in is "please give me a reason to walk away". The few that don't are always surprising offers and get me excited. I go in determined to find a reason to walk away.
You're not worried about wasting your time on salary mismatches?