As an engineer involved in the hiring process at two different companies, it's rather depressing how many people outright lie on their resume about what they know or what experience they have.
We certainly weren't looking for imaginary unicorns, but we also couldn't afford to train someone who sent in a code sample in a MS word doc that was full of syntax errors...
There are companies that will check a resume for employment and education details. You also can and should do reference checks. In my experience outright lying is rare, there's definitely some embellishment. The person who sent in the MS word doc was a CS/Engineering graduate with significant experience in respectable companies? Hard to believe.
Any software development job requires training. Every project is different and it takes time to come up to speed. For a good developer catching up on some particular buzzword is much faster than your undocumented spaghetti of a project ;) If you can't afford new people ramp up then you have a bigger problem.
> The person who sent in the MS word doc was a CS/Engineering graduate with significant experience in respectable companies? Hard to believe.
This is a bit of a fun story to tell in person; this was the same person who claimed to be the second coming of Christ, and tried suing us for religious discrimination when we didn't hire him.
Fortunately for us, the people in the interview didn't respond to his claims at all, didn't mention it in the feedback we gave him when we declined to hire him, and (edit: the company) lost only lawyer fees fighting the lawsuit.
That said, hiring is damned expensive, and I have a hard time faulting companies who make the process difficult for potential candidates.
Companies who treat potential candidates unfairly eventually tarnish their reputation. You don't design your process for the single outlier crazy person and then treat everyone like they are potentially crazy or liars. You treat everyone with respect, that's how you build a reputation. Respect includes respect for their time amongst other aspects.
Presumably this is partly why hiring is expensive. Not that I'm sure it's really that expensive in the big scheme of things. The problem isn't the process being difficult per se, it's the process having poor predictive power.
Firing a bad hire can be just as or more expensive than hiring them in the first place.
I agree with your overall points- especially with regard to respecting your candidates time. You do need to verify that the relevant information they provide is correct however. You wouldn't make a significant investment in finances, buying a car, marrying someone, or go into business with someone if you didn't trust that you have a decent understanding of what you're getting into.
Then again, if you do, it's a lesson you'll learn rather quickly. Respect yes, blind trust no.
To be honest, I would treat them as a wishlist. If you've got a solid handle on at least some of the requirements, it literally won't hurt to apply.
More often than not, those job requirements are not written by the person who is doing the hiring, or the people you will be working with. Just be honest about what you know, what areas you are willing to grow in, and what excites you about the job position.
Some companies "hire only the best". A good company for a junior developer will look for a person's "trajectory"- i.e. is a person willing and worth investing in to help them grow.
We certainly weren't looking for imaginary unicorns, but we also couldn't afford to train someone who sent in a code sample in a MS word doc that was full of syntax errors...