Don't underestimate the art of dealing with recruiters. These are all my own generalizations, based on 7 years of consulting work as a java developer.
Recruiters generally are non-technical and deal with buzzwords on resumes or years of programming experience in a language, but most importantly, remember they are sales people.
They work for the CLIENT, not you for the most part.
You are a commodity to them, not a person.
They work all day at negotiating as paid professionals, the programmers generally only deal with this out of necessity and focus on their technical skills.
There is a business reason for hiring women in the recruiting role that could pass for models. I've read that most developers currently are men, about 80% according to this article. I've also read that it is for a negotiating advantage for the recruiting company. I'm just stating a fact here that was in agreement from my experience, don't read anything else into this comment.
- There are lots of bad recruiters, those that want to exploit you and your skills.
I realize I'm being blunt here, but my experience is that developers are generally poor negotiators, so we are generally outclassed in dealing with the recruiters. A sad, but true fact. It is further exacerbated by the willingness of foreign developers who will agree to do most anything to get a position, including taking much less pay and working for free on contract work above their 40 hours, which puts rate pressure on American developers. This comment can also be misconstrued. I've seen American developers do the same, it just seems more common with the foreign developers in my experience.
Add to all this that it's not always easy selling your skills to a non-technical manager who doesn't always see your market value.
Knowing these things helps give you a slight advantage because it makes you more cautious in dealing with the recruiters. If you need further proof, read your employment contracts. We take most of the risk, but the recruiter holds most of the cards.
For example, just this week a co-worker (contractor) told me he got a lower rate the day he went to sign up for the position. The recruiter said it was the client that did it, but why would the client change the rate the day he was signing? The client sets the rate up front, before the selection process begins. Then after 90 days he gets a letter, again from the recruiter saying his contract was terminating early due to funding issues.
The truth was, the recruiter cut the consultants rate, but kept the same bill rate, then raised the bill rate after 90 days to the client, in hopes that they would pay it. I've confirmed that this has also happened to an IT Manager who is a friend of mine, so while it may not happen every time, apparently it's not a random thing either.
The moral of the story is that rate changes are allowed by the recruiter in some of the employment contracts I've seen, though not in wording that would alarm a programmer, if they even read it.
The bottom line to all this is, yes recruiters are very useful and you can get jobs using a recruiter, just understand the risks I've mentioned and other risks I haven't even brought up. I use them each time I look for a new contract, but I prefer to work with ones I've dealt with before.
What has helped me is to develop a business relationship with a recruiter based on some edge I have in the market, a security clearance, expertise in a hard to find skillset, etc.. That way, in a sense it's a win-win for them to really help me as I have something of value to them that the average developer may not have.