As a candidate, I do not apply to a thousand different places. I find 3-4 where I would want to work and I do my research before I even apply. I know what they can pay me before I get to talk to them.
As an interviewer I try to stay away from candidates that spray and pray. They probably don't care where they work -- usually a bad sign (except for positions where it truly doesn't matter). They probably also have a problem finding a job -- do I want to play the expensive game of finding out why?
When I meet the candidate the first time, I usually ask if they had a chance to look at our website. I have never hired a person that did not (somehow being disinterested prevents people from being good at what they are doing).
More than that, as a candidate your bargaining power is lowest at the beginning of the process and highest at the end when they had a chance to get to know you and really want to hire you.
And if this is not happening, don't get hired. If you made barely passable impression on your new boss but got hired because they needed a warm body in the chair, your career at the company is almost over before it got even started. First impressions matter and self-fulfilling prophecies are real.
And again, as an interviewer, posting salary ranges is a loose loose for me. If you have posted a range, there is couple of things happening. First, you are loosing ALL candidates that you would gladly pay more than the posted salary range, but now that they see the range they say "Meh" to your posting.
Second, everybody expects to get salary close to the top of the range and will be forever unhappy if they do not. So it is more like you have posted an exact salary you are paying and rather than be flexible you can now pretty much only decide to hire or not hire for this salary.