I was part of the hiring process durring a period of rapid growth. I noticed that difficulties in hiring had more to do with our own ineptitude in hiring people rather than short comings of the candidates. Simply put: engineers suck at interviewing other engineers. Often times, engineers would ask unreasonable questions or questions that had nothing to do with the job, etc. And it's not just engineers, even engineering managers and engineering leads often don't know what they're doing in interviewing until they get some experience with it. And even then, some of them insist on passing on highly talented people just so they can build up their own ego.
My advice to any company who thinks there's a "skills gap" is take a look at those so called skills and make sure you're asking the right questions. For each tech question you ask, first ask yourself whether that skill/knowledge is used on the job, if so it's a fair question. It's amazing to me how many times engineers will pass on candidates who have over 5-10 years of experience doing essentially the job for which their applying for, just because they don't remember some esoteric thing like linked lists which has little to do with modern software engineering, etc.