From my own observations there is no shortage of american tech workers. However there seems a shortage of people who can write appropriate job requirements for the jobs that they are trying to fill.
Job for tech workers make a lot of huge mistakes.
1. Trying to replace the person not the position. So the guy left for bigger and better things... If you make your requirements to match the guy who left, you will not find any people... Because those who do have the requirements are looking for bigger and better things too.
2. Thinking your vendors names are bigger then the are. So you got "UltramegaSaaSEngine v.5.32 Cloud edition". It may be a great tool for your organization. But if you are trying to find people who will put it on their resume, you are out of luck. There will be some training involved, you can't expect to find someone with that experience.
3. Make sure you have the correct titles: You want a software architect, you are willing to pay an architect salary. You post position Software Developer. You get a bunch of resumes from under qualified people, because the title sounds like a good fit. People looking for Architect jobs will just glance over it, and go to the next page. Going the opposite direction too Making the job sound too high end, means you will get a lot of people who will be requesting a lot more money for the position you really need to fill.
4. Be reasonable on years of experience. 3 years experience with Windows Server 2012? That is a tough to fill position, as you expect most people not to upgrade all their servers to the new windows version overnight. Or finding someone with a decade experience in some language that just got popular a few years ago.
5. Do not be education snobs. I have seen jobs requiring a PHD for Bachelors level computer science work. Or the fact that professionally years of experience may counteract advanced degrees. Also the PHD will not take these jobs as it is beneath them. Tech in general has a lot "Street Smarts" skill, so that high school dropout may out perform that guy who just got his masters.
6. Post the position you want to fill. When you find someone who seems to fit the bill, call them and get the process going. I have had cases where I post my resume in, then a year or so later I get a call wanting to talk, by then I may have gotten my Promotion or started a new job and want to plant myself for a while.