One of the truths we are told at job search clubs and interviewing workshops is: find out what problem a company is facing at the moment, and suggest ways to solve it. Getting them to see you as a solution to their problem may be the key to hiring you.
For a long time it sounded presumptuous to me. First of all, how would you know what problems the company is facing? Do they shout about their problems from the rooftops? Do they post them on the front page of their website? (That would do wonders to their stock price! :-)) Or am I supposed to have a high-level buddy in every company I interview with? Someone who would grumble about his work problems at our weekly golf game? Is there any hope for someone who is not in the ole' boys network?
When you are applying to be a junior level, rank-and-file coder at some corporation, as I did 11 years ago, wouldn't it be awfully arrogant of you to suggest that you are a solution to the company's problems? At best you can hope to be considered a peg of the right shape to fit a hole in a corporate board game.
But later I see this advice coming true more and more often, and you don't have to be in the ole' boys network to make use of it. Companies WILL tell you their problems. They might tell you this at a job interview, where they bring a list of features they want to be implemented in their application. Or they may tell you their pain as you stop by their booth at a career fair -- even if you don't necessarily have the skills this company has said it needs. This has been my recent experience. This one company originally said it needed Java developers, but when I started talking with their CEO (who is also a developer -- it's a small startup) -- he said they were considering switching to a different platform, because Java was too much pain. They have not even been able to set up a development environment in Java that would work consistently. (According to the guy, this is because Java is an open-source language, and you have too many different open-source components for it to work; and they are often incompatible, or require different versions of the same library, or some such.)
So yes, there are companies out there who are open about seeking someone to ease their pain. However, the kind of problems I personally heard about seemed big enough that I didn't feel confident to take them on. Working at a job for 10 years, like I did, can shoehorn you into a limited role where you do pretty much the same things over and over -- unless you are very strategic about diversifying the tasks you do. So I don't know. Maybe if I worked a few contract jobs, writing different kinds of software, maybe then I could become the kind of person those companies seek. As it is now, some of those jobs companies are desperately seeking to fill sound like a devil's bargain.