I have been counseling many software engineers this year, developing resumes for engineers and crafting job-search strategies. The economy has made it tough for some very smart people. There are some things to keep in mind. I'll offer a few here today and I'll come back to this topic again soon.
Companies are looking for specific skill sets: Anything that is hard core algorithms, pattern recognition, statistics -- applying algorithms to real world data. If you have these skills you are likely to have a better chance to find an opportunity. You may even find you'll get multiple offers.
If you lack these skills and you're having a tough time finding a job, you might try to study up. Find a good book that will help youl build these skills and start putting them to work, maybe in an open source project, or start participating in some discussion groups that allows you to let others know that you are enhancing your skill set.
Sharpening specific skill sets is a good idea, in fact. Companies are trying to figure out how to handle the tons of data they face. They don't know how to analyze it or what to do witih it. Things like computer vision, data mining, collaborative filtering, machine learning, video processing: Ready up. Learn the vocabulary. Identify recent innovations and the companies associated with them.
Managers hiring programmers are impressed if you have contributed to open source projects. If you are a Java programmer and have participated in an open source Java project that will imply that you are pretty good. Or, create your own open source project. It will cause people to pay attention to you. It isn't something that everybody does. Keep all of this in mind when you are networking and while writing your resume for programmers.