Sometime, "good candidates" shop around for more offers. It is not always clear any greater effort would actually yield better candidates. Where I work, the entire interview process is just a filter to remove the absolute worst. Then it is a game of luck - whether we can meet the insane demand of the one we liked and whether we are just another "offer" for them to negotiate elsewhere.
I think if companies are better at firing/managing mediocre employees, we wouldn't have so much bad apples trying to make their way in.
Part of the problem is the scarcity of engineers. There is an entire swath of great people, by that I mean decent folks who would be great at what-we-do, entirely avoiding the field because of per-conceived notions or some stigma or the other. If there a better and bigger pool of candidates, the bad ones will naturally leave the field.