Monday, February 26, 2007

How to Recruit Developers: Attractive Job Postings

Most job postings for software development jobs are terrible. Completely unredeemable. In the last ten years, I can count the number of interesting job postings I've seen in Toronto on my hands (and, yes, I have the normal number of fingers).

Your job posting is your first point of contact with potential candidates: your first chance to market yourself, to make your case. This posting can increase the odds that really great software developers will apply to your company, or it can ruin them. If you fail at this (and I can tell you, most companies do), you've seriously damaged your chances at attracting a good-to-great developer.

Who's Watching?
You can group the pool of potential candidates into three broad areas:

  • Desperate Job-Hunters
  • Job-Hunters
  • The Curious

Desperate job-hunters are developers who really, really need a job. They haven't worked in the industry, or they're already between jobs, of they have a job they really hate, writing RPG or MUMPS. You can't drive these people away with a stick. If they're completely unqualified, but think there's any chance in hell of even getting in the front door for an interview, they'll apply.

Job-hunters are looking for a job, but they aren't desperate. These are developers that probably already have a job they can live with, but they're out looking for a different one. They'll read your posting, and if it looks interesting, they'll apply.

The curious are developers who aren't looking for a job, or who tell themselves that they aren't. They've got a job that they're content with, but they're willing to consider an opportunity. They're keeping an eye on the market, or looking for exciting opportunities, or just have a friend who fits one of these three categories. These people are the hardest to attract, and are likely to respond to postings only if they're seriously intriguing.

Desperate job-hunters will track you down. You'll need to work a little to reach the job-hunters, and you'd need to work hard to reach the curious. Interestingly, I suspect that the groups that are harder to reach also contain a higher percentage of good and great developers, because these people generally find good jobs and are able to keep them.

So: here's what you have to gain by writing a great job posting. You'll increase the odds of reaching a wider audience, and more great developers. You can hook them, catch their interest, and maybe, just maybe, get them to apply. Once they apply, your chances of hiring the best candidates go way, way up.

How to Repel Software Developers
Having seen a lot of incredibly bad postings, it's very easy to point out some of the flaws inherent in many job postings:
  • Don't Describe The Job
  • Don't Describe Yourself
  • Describe the Candidate as a Commodity
If you accept a position, you're going to spend at least a third of your day (almost half the waking hours) at your new job. Most people are going to want to know how they're going to spend that time. The people who don't are probably just looking for a job, any job. Many positions don't describe the job at all. If you want to keep some details private, that's understandable, but share as much as you can. Help your potential new employee be excited about the opportunity in front of him or her.

After the job, the next thing a candidate will want to know is something about the company. You can either try and tell them something about the company in the posting, or direct them to public information about yourself, like a website. Either way, it helps to give context, to give some idea of what you do, what the job's about, and with whom you'll be sharing your work-life.

Finally, it's great if you can tell the candidate what you're looking for without describing them as a commodity. A 'resource', or someone with five bullet-point skill classifications. What kind of person are you looking for? Do they need a passion for development? Does it help to have a background in medicine? Outside interests? These help the candidate to see themselves in the position, rather than see the job as generic.

I've noticed over the years that these flaws are extremely common in recruiter postings. I'm not sure if this is a desire to keep the candidate and the company from finding each other without the recruiter's help, but it's a great way to make a posting seem extremely generic. If you must work with a middleman, see if you can get them to avoid the above flaws. Some sites seem to encourage or accept these more than others. shows a lot more of these generic postings than

Here are some examples of job postings that exhibit these characteristics: "J2EE Developer", "Java Developer". You don't want your postings to look like these.

What's the Alternative?
So what should you do instead? Describe the job. Describe the company. Explain what you're looking for in a candidate. Make it sound fun, exciting. If you're using neat technology, tell us about it. If you're trying to save the world, include that. Maybe include your answers to the Joel Test. This is your chance, so make it good.

What do good postings look like? This is better. It's not brilliant, but it's better. It talks about the company, the project, the approach. It uses a few selling points about the technology and team.

And what about Tim Fennell, who wants to know what they're doing wrong at the Broad Institute? I don't think the posting's bad. It's a little dense, and it doesn't describe the Broad Institute in detail. It could be presented in a more polished, more accessible manner but the basics are all there.

There are a lot of ways to attract good software developers, but if your posting doesn't get those points across, they may never get far enough to notice.


Doug said...

This might be a better link for MUMPS.

Geoffrey Wiseman said...

Yeah, I did consider using that. That's actually the article in which I learned about MUMPS (fortunately for me, I guess).

Considering the subject of the post, it might actually be a better link, but now that you've commented, there's no need to change it.

Monkeyget said...

What? But everybody know that programmers are interchangeable parts. The architect defines what they must do and they just have type it in the machine.

What will you tell me next? That I shouldn't use grep to find the CV with the best buzzword->years of experience mapping?

You're far from standard corporate practices!