Damn, I hate to keep posting on Slashdot about my SO who is a HR recruiter for a tech security firm, but I have to. Hiring managers, who at her company are actually technical people, don't give shit for position requirements. Usually, the recruiter knows a couple of buzz words about the position, salary range, and an education requirement. Since the recruiter hasn't spent time on the project (and the manager doesn't want to spend time selecting candidates), you get bad choices.
*Recruiter takes resume/notes from phone interview to manger*
Manager: This person doesn't have PHP development for X years.
Recruiter: They have Perl, Python, Java, whatever.
Manager: That's not what I asked for, quit wasting my time.
*Recruiter takes info from PHP developer to Manger*
Manager: This person doesn't have enough experience.
Recruiter: How much experience do you want?
Manager: More (typical response).
Recruiter: I will try to find someone that meets the salary constraints.
We give HR a hard time because they seem to bumble around all the time. However, they usually only deal with something for a few minutes. It's just not possible for them to be up to speed. If they were given better specifications, they would make better decisions. However, it all goes back to the manager who wouldn't speed 10 extra minutes creating a job description.