Recruiter: "Here's your offer for $X"
You: "Well I'm also negotiating an offer with Z for $X + 200k
Recruiter: OK well how about $X + 200k and a 50k signing bonus?
Multiple offers are key -- seriously, timing that properly is the biggest thing you can do to optimize your job search. Even if you can't give exact numbers, the mere presence of a competing offer will make a company offer you top of band.
At a big company with known positions (e.g. junior, mid-range, and senior devs), salaries for each of those positions may fall within a narrow range with little to no leeway. At a smaller company, where roles are more amorphous, starting salary may span a huge range depending on your specific qualifications, how their business is going, etc.
I don't think I'm negotiating to get a better compensation than what is reasonable. On the contrary, I'm negotiating to get a fair compensation.
Some companies (bigger ones) will just say "we hire you for this title, so the compensation is $X and we don't negotiate because we want it to be fair for your colleagues". Then I don't think you can negotiate much, but at the same time they're probably not screwing you. It's just what it's worth to them, take it or leave it.
Recruiter: "Here's your offer for $X compensation."
You: "I was actually looking for something paying $X+Y."
Recruiter: "Well our offer is $X."
You: "This data shows that comparable jobs with the work I'm taking on are paying $X+Y."
Recruiter: "Our offer is $X. Do you want the job or not?"
You: "Well, I'm not willing to join for less than $X+(Y/2)."
Recruiter: "OK, well, bye. We have 35 other candidates lined up to talk to. Good luck."
Not sure how it's different when you have multiple offers. The company offering a lower comp will just say "Well, their offer is higher. Have fun at Company B. Thanks for interviewing!" Reading stories of these Captains Of Industry just asking for more and getting it, or getting companies into a bidding war over them is... kind of wild. It's like we're living in different universes.