Huh. Where is this mystical place where there are lots of qualified candidates competing for jobs?
It's certainly not the Bay Area in California, where there are far more jobs than competent developers. I'm out in Colorado, and I still get constant offers even though I'm not looking for a job.
If you're not able to learn what's required, then maybe you should question whether you're in the right field. I've been keeping on top of HTML, CSS, backend development and server administration, especially high performance servers and NoSQL databases, with a smattering of JavaScript on the side, in my spare time while working on video games as my full time day job. Suddenly I'm finding that I needed all of those skills after all; understanding the whole stack can be quite useful, it turns out.
If you don't even have a day job, then you should have plenty of time to become an expert (or at least competent) in at least one narrow field that people are hiring for. If not, then there's no way you'd be able to handle a serious job if you were hired, since just about any job you take will require that you do a lot of learning on the job.
The key skill to have is how to learn. Unfortunately school (elementary through University) tends to hammer that skill out of people. Try to find it and reclaim it. Then build something that you can show off to prospective companies -- or sell it yourself! Good luck.
It certainly is the Bay Area in California, specifically the North Bay. There do seem to be more jobs south of the Golden Gate, but that is too far for me to commute and I have not built up enough of a financial cushion to survive long if I move and still cannot find work.
Nobody hires in one narrow field anymore, at least not according to the job ads. You need to show competence with six to a dozen different technologies from the basics (languages, server software) to the specifics (frameworks). Miss one and you're out. Have you worked with a CMS but not that specific CMS? You don't qualify. Have you lots of experience with several similar languages but never used this specific language in the workplace? You don't qualify. Are you an expert in the previous version of the language but you haven't caught up with the changes in the latest version? You don't qualify. Someone else evidently does because the company closes the position.
The North Bay doesn't really count. You've got, what, San Rafael, Santa Rosa, and a few bedroom communities -- barely any tech at all. The Oakland/Berkeley/Emeryville area alone probably has more jobs than the entire North Bay, and that's not counting San Francisco or other Peninsula jobs.
You need to be either on Bart somewhere or on Caltrain somewhere. Then you'll have tons of options -- in San Francisco, or in the 'burbs/secondary technology areas -- and the commute can be on public transit (to avoid the awful traffic all around the Bay).
And you don't NEED to move before you find a job. Suck it up and drive for two or three hours to interview if you have to. Try to get several interviews on the same day in the same area if you can. And make it clear to them that you're planning to move for the job -- some companies don't care what your commute distance is, but others do actually care how happy their people are, and assume that someone commuting 10 minutes will be happier than someone commuting two hours.
For these reasons. I am generalizing from specific cases in my past: having used Drupal but not Joomla, knowing Java and C++ and object-orientation in general but not having used C# outside a brief school project, knowing early Perl 5 but not the changes up through 5.10, having programmed a bit in Ruby but never used Rails when the job description just said Ruby. "I can learn it" is never an acceptable answer when they can get someone else who already knows it well.
It's certainly not the Bay Area in California, where there are far more jobs than competent developers. I'm out in Colorado, and I still get constant offers even though I'm not looking for a job.
If you're not able to learn what's required, then maybe you should question whether you're in the right field. I've been keeping on top of HTML, CSS, backend development and server administration, especially high performance servers and NoSQL databases, with a smattering of JavaScript on the side, in my spare time while working on video games as my full time day job. Suddenly I'm finding that I needed all of those skills after all; understanding the whole stack can be quite useful, it turns out.
If you don't even have a day job, then you should have plenty of time to become an expert (or at least competent) in at least one narrow field that people are hiring for. If not, then there's no way you'd be able to handle a serious job if you were hired, since just about any job you take will require that you do a lot of learning on the job.
The key skill to have is how to learn. Unfortunately school (elementary through University) tends to hammer that skill out of people. Try to find it and reclaim it. Then build something that you can show off to prospective companies -- or sell it yourself! Good luck.