But HR isn't the only problem. In my experience having worked for a company that hired heavily for several years, it was the engineers who lacked the talent necessary to conduct proper interviews. Great candidates were being rejected by the truck load. Us engineers, we're great at engineering but many of the junior and mid-level ones don't have much experience interviewing people and usually no training whatsoever. So interviewers tend to ask different questions with every candidate (whatever they feel like it that day), then make some decision based on a random feeling they get. There's not much objectivity. There's not much thought that goes into the questions. Most engineers think intervewing is a game of "how to stump the candidate".
As an inteviewer, you're job is not to stump the candidate. Your job is to figure out how well they can do the job. The questions you come up with should reflect the actual job, and the actual tasks that will be assigned (that's where you should draw your questions/inspiration from), rather than some random data structures question you remember from college or some random questions you found on a google search.