As mentioned by Greyfox - low quality recruiters are a pain. Some who struggle to communicate, others who can't function without incessant phone calls. On the company side, there's an unwillingness to pay for experience (I've seen job postings for "senior" positions that pay junior rates). I've had plenty of phone screens with someone who has no idea what they are talking about, but even with skilled engineers who know how to code, but not how to ask technical questions relevant to the job they are hiring for!
One of the more frustrating things is the "full stack" creep. Full stack used to mean someone who could write server code and front end code. Now it also means being a sysadmin, a dba, an architect, a ux guy, and in some cases even a designer. I've seen companies hiring an entire tech department in one job description.
There's also where the office is located. Allow remote workers! If you're in Boston, hire people in New York, New Hampshire, etc. They can come in every so often for essential "face time", but code like crazy for you and in the same timezone.