I can absolutely relate on the small talent pool problem. I'm part of a startup located in a college town. The university is pretty good, and has some pretty good Computer Science/Computer Engineering classes, but most of the students are not going to be great employees from the start.
It seems there is a whole trend of universities trying to get their students to be great interviewees so that they can work for the Googles and Facebooks of today. The kids will know the theory of the fundamentals(complexity, general OOP design, information theory), but will lack any skill to work on real projects.
Whenever I interview a potential employee that's still a student I notice the trend of students not really being ready to work, but rather the students being ready to go through more training at a company. It's like the 4 years of university are barely enough to get them to write a hello world in Java or a merge sort in Python from memory and fake their way through pseudo code of a Red-Black Tree, and then some big name company will pick them up and finish their training while having them work on a fancy button or keyboard shortcut on a page.