There isn't a talent gap, there's reality gap.
http://www.forbes.com/sites/lizryan/2015/01/08/the-truth-about-the-talent-shortage/2/I think some managers think they are "saving" money by leaving positions unfilled, but they are hurting the company. Likewise, there are those that try to cheap-out on hiring talent. (See: H1B visas, Google, et al and the suppression of IT salaries...)
Granted, most of my hiring was done at entry level, so I was looking for folks with basic skills. The absolute best forklift driver I ever hired had never been on a forklift before. (She applied for the job figuring she had nothing to lose and everything to gain.
) We would give them a basic "pick the pallet off the top rack, drive around the racking and put it back" test. She did it perfect and in record time. It was only after she'd been with us three months that she "confessed" to her inexperience.
But just as important is admitting you've made a bad hire and letting them go. No one wants to admit they've made a mistake, especially in hiring, and will hang on to someone long after they've proven their ineptitude and/or unsuitability for the job. Having that conversation is never fun. "Hey, I think I've made a mistake, and we can agree that it's not a good fit."
If you have to do that a lot then you suck at hiring.