Lots of companies have job openings. My team has job openings; my friends have openings where they work; I get calls constantly from recruiters trying to entice me to leave my job, so lots of other people must have openings too. Most of these jobs never seem to actually get filled since we, as a profession, attrition people out at the same rate we hire. Maybe it’s the market – the most recent statistics I could find show the DC software market to be one of the hardest to fill positions in. One of the other interesting facts in that article is that if a job opening isn’t filled within the first month, then half the time it will take more than three months to fill. That raises the question, if you can’t fill a job why aren’t you figuring out why and changing?
I know at my job we mostly blame the “local job market” for our inability to fill positions in a timely way. I hear from friends who credit “high standards” with their inability to fill their positions. I’m not sure if it’s the market, or standards, or the way candidates are sourced. At any rate, I know I’m contacted by plenty of recruiters whose openings seem to fall into the following categories:
- Jobs where the recruiter can’t clearly articulate the responsibilities or duties;
- Jobs that are unrelated to my listed skills and technical background;
- Jobs requiring relocation;
- Short-term contracts;
- Defense/Intelligence work that they can’t discuss the details of; and
- Jobs I would actually consider.
Number one, in my experience, is a surprisingly large portion of recruiter contacts – people who are looking for software developers but don’t know what technologies they’re working with or where the job is, yet somehow need to know what my required salary would be. Number two is people who are looking for a people to work on technology stacks and domains that aren’t things I’ve had experience with, or even things that are similar to those I’ve worked in. Which raises the question or why they are contacting me about the job. Three and four are pretty straightforward, some people might be interested in these sorts of things, but they are not for me. Number five isn’t something I’m interested in, I generally want to know more about what I’m getting into than what they can tell me.
I’m often willing to talk to recruiters to learn more, and after the initial chat, they’ve usually sent me a job description. All too often, I get some very bland job descriptions like this one I saw recently. It was basically 10 bullet points (I’m paraphrasing here):
- BSCS or BSEE or more experience
- Years of experience required
- Communication ability
- Knowledge of SDLC
- Java or C#
- Know a second programming language
- Web development and services
- SDLC again
- QA processes
- Requirements gathering
A couple of things jumped out at me from the description. There were no database technologies mentioned, even though the job logically requires them. Also, the reference to QA processes worried me, since the way it was phrased didn’t read for something like unit testing, but instead sounded like manual testing and test plans. And there were so many things missing – what does this team actually do, what makes this work interesting or different, what sort of environment do they work in. There was nothing there to really make the job description feel like a special opportunity.
On Stack Exchange podcast #69 (~14 minutes in) Joel Spolsky, Jay Hanlon, and David Fullerton were discussing how they felt that being able to put more jobs in front of developers would help them find better jobs they like more. By increasing the supply of employers they hope to improve the quality of the matches they make. This seems good, but it doesn’t help clear out all of the issues in the market, because the costs associated with evaluating a match are so high. From the beginning of the process, both sides are engaged in a complex signaling dance because of a lack of trust on both sides, and there are significant issues with congestion in the market. (This is a significant simplification of Who Gets What and Why by Alvin Roth which is a great explanation of matching markets as opposed to commodity markets.)
So back to the job description above. It doesn’t help people decide if this is a job that they would want, so it has a high cost associated with finding out more about it. It was getting looked at only because they were actively reaching out to people to direct them to it; it wasn’t generating interest on its own. It doesn’t signal well because it doesn’t create an emotional connection between you and the job as to why you would want to work with these people on these problems. It hits none of the emotional or logical points needed to really draw an applicant in.
If I could rewrite the posting I would include more specifics of what the team is doing and the opportunities that result. I’d fill in some more details about the technical stack. I would also try to build an emotional connection to the team. Show me the personality of the team, how they like to work, and what they think. If you can, try to highlight the specific positive elements to the identity of the company like growth or stability. But job postings and recruiters aren’t the only way to find talent; I would try to get the current employees out into the community to find people who are interested in the kind of things you are working on and bring them in techie to techie. That’s what I’d do to try and recruit me.