by Jim Warner
The drought isn’t the only shortage plaguing Silicon Valley. The tech industry’s huge demand for qualified engineers far outweighs the supply, meaning companies looking to hire need to keep pace with market rate salary and benefits packages. The way in which companies present this info is crucial as well, as an effective job posting can be the difference between attracting top talent or being overlooked entirely. I’ve helped hire dozens of engineers at both tech giants like Amazon and as head of engineering at several startups. Based on this experience, I’ve put together some tips for an engineering job posting that can compete in the current war for talent.
Do the filtering yourself
A lot of companies make a job posting contain a laundry list of skills they want candidates to have. The idea behind this seems to be to get unqualified candidates to filter themselves out by not applying for the role. There are two main problems with this approach:
First, it simply does not work; unqualified candidates will apply regardless. If you put a job posting on Craigslist or LinkedIn, sure, 90 unqualified people may apply. But put a stringent list of requirements such as “at least 5 years of Java experience” or “minimum 2 years working with AngularJS,” and that may only go down to 85 or so. Filtering out unqualified candidates is your job, not the applicant’s.
Second, the approach is not only useless for dissuading bad candidates to apply, but it can actually cause qualified candidates not to apply. For example, I’ve seen many engineering job descriptions contain a requirement for the candidate to be “comfortable working in a UNIX environment.” The company is, I am sure, simply trying to ensure prospective engineers can handle the production stack they use. However a great engineer might wonder if this role is really an ops role. Of course the right engineer is comfortable in a UNIX environment, but placing an emphasis on the bare minimum requirements for a role can make a great engineer have second thoughts.
Accept the fact that you’ll get unqualified responses to your job posting, and address the applicants who matter, namely…
Talk to the right candidates
There is a bright and motivated person out there who is going to be excited to get up every morning and do the job you’re describing. The goal of an effective job posting should be to encapsulate the things they’ll love about the job. Mentioning generic ideas about the role, like a “challenging work environment,” fails to communicate those things. Instead, describe a specific job requirement the right candidate will get excited about. For example, if the position involves query optimization, your job posting might say, “You’ll obsess over query performance, and you’ll celebrate every unneeded join that is eliminated.”
At a previous company, I wrote in the job posting that “We believe that P=NP in all spy movies.” It’s admittedly a rather nerdy joke, but one that engineers with a solid CS background will appreciate. Such an approach injects some personality into your posting, and is more effective than just requiring a “BS in CS or equivalent experience.”
Tell them about you
In the current hiring market, great engineers can work anywhere. They can work at Google, Facebook, or walk around SoMa for five minutes and find countless willing startups. Telling an applicant you offer a market salary, stock options, a new Macbook, and free snacks is not interesting. A great applicant will get those perks anywhere. Instead, tell them something unique about your company. At Survata, we mention our Friday “beer class,” where we learn about a new or interesting beer while reviewing the week’s results.
If you’re hiring for a small startup, it likely means engineers reading your job post have never heard of your company. In this case, it’s particularly important to talk about why your company is interesting. Talk to the applicants like you would an investor. Tell them your market size, why your solution is defensible, who of note is on your team, how many rounds of funding you have raised and from whom.
It’s also good to tell engineers about your stack. What languages and platforms do you write in? What are your guiding architectural principles? Where do you host your servers? This list is best presented as what you use, not a set of skills that you are looking for. A great engineer can learn Python if they have only done Ruby, but they often want to know what they’ll be working with.
Many companies make the mistake of treating a job posting like a job description. A job description is useful internally, as it simply relays the key responsibilities of a role. It’s what you should circulate when you are discussing your hiring needs with your team, so everyone is on the same page regarding the required roles and skills.
The purpose of a job posting is much different: to get qualified candidates to send you an email. Simply put, it’s an advertisement. You can tell they’re advertisements because you have to pay for people to see them. When Coca-Cola puts an ad on TV, they don’t tell you they’re seeking thirsty people who like sugary drinks. Instead, they show happy people who drink it. Similarly, an effective job posting paints a picture of your company, so that the right candidate can envision themselves at your company and get excited.
Jim Warner is the CTO of Survata, an online market research company. He has been building software in Silicon Valley for 13 years.