Before you start writing, it's important to understand what separates an ordinary job description from an outstanding one. A great job description:
Keeps it short: There's no need to get bogged down in details. Use the space you have to sell prospective candidates the unique problems your company solves.
Builds on success: Do your research and read other job descriptions for positions like yours. How are top companies in your industry writing their job openings? How can you do it better?
Sells your company culture: Personality counts! Be clear about what kind of team member succeeds at your company and you'll attract like-minded people.
Gets candidates excited: Always ask yourself, "Why should this candidate want to work for my company?", and craft every sentence to answer that question.
Just like every building begins with a solid foundation, every job description should follow from a solid framework. Think of the following sections as a checklist or guide to organizing your thoughts as you write.
Job titles should clearly indicate the level of the position (for example, Entry Level, Expert, or Lead) and the role in just a few words. Research what other companies in your industry call a given position to make sure your titles are similar.
Browsing versus searching for job titles
Most jobs are posted online, and the job title can make or break the visibility of the job description. If the job is going to be posted on a small job board, you may consider treating the job title as more of a catchy headline. For example:
"Raise your hand if you want to build iPad apps!"
"Seeking UI Engineer with great design sense"
If people are going to be searching for your job, keep the title short, standard, and clear. For example:
"Lead Medical Device Engineer"
"Environmental Engineer, Wastewater Treatment"
This should be where you answer, "Why should I want to work for your company?" in a few sentences. This section should definitely not look like standard company boilerplate! Every position calls for a slightly different description of the work environment; remember that you're advertising to a distinct group of candidates. Depending on the position, you might mention the following points:
Company description, including recent milestones and growth
Office environment and employee perks
Team size and structure
Employee benefits package
Use this section to help candidates see themselves in this position. Be clear about the duties this person must perform, but keep in mind the kind of social and cultural fit you're looking for too. In general, try to cover the following:
Why this position is open
Technical details of the project you're hiring for
Qualities of the ideal candidate
Expected responsibilities for this position
Hours, travel requirements, contract details, or salary expectations
Ideally, the technical requirements should be one of the shortest and quickest sections of any job description you write. Don't throw in everything but the kitchen sink. The following is all you really need:
Three to four bare minimum requirements
A ranked list of no more than ten nice-to-have requirements
With the preceding outline, you'll be able to start writing tighter, more effective job descriptions for any type of position. The following sections will take a more focused look at how to tailor your job descriptions to engineering positions.
This section will take a more focused look at how to tailor your job descriptions to engineering positions. When you emphasize the right features of your company and job, you'll attract more engineers who are passionate about solving problems and building great products. So, what gets top candidates interested?
Engineering candidates want to build products they can get excited about. The opportunity to tell all of our friends that we helped build an exciting product is a major reward of being an engineer. So, take the opportunity to show off what your company is building in the job description!
If your company is hiring engineers to work on a new or early-stage product that you haven't publicized yet, it's easy to be too coy and speak in general terms. There are reasons to not share too much information, of course. But which of the following jobs sound more interesting?
"Stealth startup seeks data analysis wizard to help us shake up social media."
"We're a small team building a platform to connect independent contractors and homeowners in a trustworthy, transparent marketplace. We're looking for a passionate self-starter to help us scale our product to reach a national audience."
The first job description is obviously more generic. "Social media" is a very saturated market, and the description provides no detail about what the company proposes to do differently. The second one is better; simply, it provides concrete details about what is being built and for whom.
I encourage you to be as specific as possible about what you're actually hiring someone to make. No candidate wants to come into an interview with no idea about the product they'll be working on!
A surprisingly large amount of the day-to-day routine of being an engineer is figuring out if what you're building has already been built, and repurposing existing solutions to fit your current needs. While an engineer who does this well will save huge amounts of time and money, they will never find it as exciting as solving a problem that nobody else has ever solved.
Survey your engineering team members about the last project they had that got them excited. If you want to attract technological innovators, advertise how your team is already inventing new solutions.
Tell potential applicants a little about what the culture of your engineering team is like. Are engineers encouraged to work with other departments? Does your office layout support collaboration or individual privacy? Be sure to mention whether your engineers work with other teams at other locations, and whether working from home is encouraged or discouraged at your company.
Does your organization have codified company values? How do these relate to the engineering team? Do you encourage engineers to give back to the community? To pursue side projects? To manage their own time?
Additionally, if the position presents a great opportunity for personal growth, continuing education, mentorship, or leadership opportunities, be sure to mention that in the job description.
Ideally, every engineering candidate would be a highly domain-experienced, efficient, seasoned professional. Realistically, these are tough to find. Be realistic about what role you need filled—does this person absolutely need to be an expert in order to do the job? Would a generalist who learns quickly and works well in a small team be a better fit? Give an accurate picture of who you imagine the ideal candidate to be and the applicants you get will be those who can see themselves in that role.
If you can, it's good to give engineering candidates an idea of the day-to-day process your engineering team follows (for example, mention if the team follows scrum or other agile development processes). Every company, team, and individual does their best work under different conditions, and you will have more success in hiring if your applicants know that their work style fits your engineering team's style.
What does your typical product lifecycle or release schedule look like? Some engineers thrive in an environment where new code is released every day, while others want to work on projects that are perfected over the course of months and then delivered.
Does the team follow any particular engineering methodology? How are engineers expected to participate in product development and planning? Many of these questions boil down to how much of the engineer's time will be spent in meetings. Every candidate will have a different idea of what works for him or her.