I agree there is a lack of qualified candidates for software development positions, but I think the biggest problem is the outdated methods used to search for candidates. So many of these companies funnel recruits into a system that filters on keywords and even then they often don't treat qualified recruits like a person. If you are a qualified candidate you are more likely to head somewhere who cares about you and treats you accordingly.
Sending automated emails is the first turn-off. Take the time to send a personal email. You might be surprised how much difference that simple act makes.