How do candidates make their first impressions on you? Through well-written and eye-catching CVs.

How do you make a first impression on potential candidates? Through a well-written and eye-catching job description.

In 2014 alone, there were a total of 1,114,000 software engineer jobs in the U.S., and the numbers are projected to increase 17% by 2024.

What this means for you is that you’re competing with hundreds of thousands of other companies for good software engineering talent. Moreover, you only get 49 seconds to make a good first impression, so it better be a good one in this candidate-led market.

In addition to managing your employer brand consistently, job descriptions and postings are your best tools to make positive impressions on potential candidates. A well-written and specific job description will not only help you attract job seekers, it'll help you attract the right candidates.

In the rest of this post, we will cover:

A Typical Software Engineer Job Description

Let’s be honest, most JDs aren't that great. Oftentimes, they don't actually describe the specific job they're advertising. What's worse is that recruiters often forget that JDs are essentially advertisements for their company.

Like all advertisements, you're trying to attract the right people to your product, your company in this case. In a candidate-led market, this is especially important to remember.

Let's take a look at what a typical software engineer JD looks like:

This JD did a good job:

Highlighting the location of the position

Providing a detailed description of what the engineer's main responsibilities will be

Keeping it short

With that said, it is far from ideal. Here's why:

There's no information about the company — its vision, mission statement, or culture

The job responsibilities are written in a disengaging and bureaucratic tone

There's no information about the salary range

The requirements don’t specify the skills they're looking for

In short, this job description is disengaging and dull. It doesn't tell a compelling story.

Basic Anatomy of a Good Job Description

On average, job-seekers only spend about 49.7 seconds on a job ad before dismissing a position as a poor fit. If they think the post matches their interest and skills, they'll spend 76.7 seconds on it.

That means you have to grab the job seeker's attention fast and present the most important and eye-catching information first.

Here's how your job description should be structured:

Job title, location, type of employment (full-time, part-time, etc.), and salary range An overview of the company’s vision, mission statement, and culture A detailed list of day-to-day responsibilities Must-have and good-to-have qualifications Benefits and perks

Now let's talk about each of the sections.

1. Job title, location, form of employment, and salary range

Location and form of employment are quite straightforward. Job title and salary range, on the other hand, are works of art.

Think of your job title as a piece of minimalist artwork: simple and clean. Don't throw in words like "ninja" and "rockstar" — it lacks professionalism and signals that you haven't thought enough about the role this developer will fill.

Stick with "software engineer" or "software developer." If you want to be more specific, feel free to add "front-end," "back-end," "full-stack," "Android," etc.

Salary range is trickier. From the company's point of view, not listing anything gives them the most negotiating power and allows them to keep employees' compensation private. With that said, most job seekers believe that salary range should be mandatory. In fact, Matt Sherman, engineering manager at Stack Overflow ran an A/B test, where half of the job ads presented a salary range and the other half didn’t. He found out that ads with salary range has a 75% increase in click-through rates.

There are different ways to present salary information in a JD, but the safest bet is to include a salary range.

Let's say your budget for a software engineer position is $50,000 - $90,000; the smartest way to advertise for the role is to lower the advertised salary range to $45,000 - $85,000. This will give you a little more room to negotiate if you believe the candidate will make a counteroffer and give you more leeway to go above and beyond for a candidate that really stands out. Though the job description may look slightly different, this would apply to hiring freelance developers as well.

2. Company Information & Overview

On average, job-seekers spend 23 seconds reading a company’s description, according to an eye-tracking study done by researchers at TheLadders.

Considering the fact that most job seekers only spend about 49 seconds on a job description, 23 seconds is a lot of time.

The reasons is simple: job seekers want to know what it's really like to work at your company.



Source: Glassdoor's survey

In the company description section, avoid generic statements like "Our mission is to develop products that serve the needs of our users." Write things that are unique about your company.

Moreover, painting a picture of your team's culture would set your software engineer job description apart from the others. Some common things software engineers look for in a team include its commitment to:

Code quality

Open discussion

Curiosity and passion for coding

Efficient and effective execution

Ownership and accountability

3. Job Responsibilities

This is what job seekers spend the most time on. After skimming through the job responsibilities, they should know what the job is about and whether their skills match up.

Even though there are some "software engineer job description templates" out there, you should never copy and paste them. Your job responsibilities and descriptions should be crafted according to projects and products your software engineers will work on.

Here's a good example from Bitmovin, a YC15 startup that creates video infrastructure solutions:

Instead of writing generic things like "build reusable code and libraries for future use" or "optimize application for maximum speed and scalability," Bitmovin clearly and concisely communicates their expectations in four bullet points.

Additionally, specifying the tech stack involved is usually a plus for software engineers. Here' an example from Square:

Square essentially listed out all the technologies they use to give job seekers an idea of their tech stack — developers are not expected to know and work with all of the technologies. Another approach is to keep the list short and sweet by only listing out the technologies developers are expected to know.

4. Qualifications

Most job seekers don't spend a lot time reviewing the qualifications and requirements for different jobs.



Source: The Wall Street Journal

A common mistake recruiters make is writing an endless list of requirements. This will most likely overload potential candidates with information or not get read at all.

To avoid that, only include 3 "must-have" qualities or skills, and then consider adding 2-3 additional "nice-to-have" traits.

Don’t limit your requirements to educational background or years of experience. They should include specific languages, libraries, or other technologies an ideal candidate should have experience with. It can also include tasks that the candidate has preferably done before — some examples for back-end engineers can include:

Integrating multiple data sources and databases into one system

Migrating, transforming, and scripting data

Creating database schemas that represent and support business processes

and more.

5. Benefits & Perks

According to Glassdoor's 2015 Employment Survey, 57% of people reported that benefits and perks are a major deciding factor for whether they’ll accept a job offer. Moreover, 4 out of 5 employees value benefits or perks more than a pay raise.

What kinds of benefits are job seekers looking for? Here's what Harvard Business Review found:

If your company offers any of these benefits and perks, don't be shy about highlighting them in your job advertisements. Furthermore, to make your job ad more attractive, you can play with the formatting to highlight benefits and perks. Here's a visualization for you:

If you’re posting your job ad to job boards like Monster, Indeed, or the like, then you should be good to go! Feel free to skip to the final (& super important tip)!

Now, if your job ads are going to be posted on your own website, there are a few more SEO tips for you to attract more quality software engineers to find and apply to your job.

SEO: Give Your Job Description an Edge

How can you optimize your job descriptions? Make them more visible.

This is where SEO, search engine optimization, comes in.

Marketing specialists deal with SEO everyday, but this may be something new to you. Let's start with a simple definition of SEO:

It is the process of getting traffic from the "free," "organic," "editorial," or "natural" search results on search engines.

Essentially, what you're trying to do is to let Google and other search engines know that your content is relevant to their users. If Google can tell that your content is relevant (and unique), your job listings will have a higher search ranking, which means it'll have a better chance of popping up in the first few pages when job seekers search for jobs. If you want to learn more about SEO, check out this website).

For all intents and purposes, there are two main things you should focus on for SEO:

Keywords (job title, location, perks, technology)

Meta description

Keywords

When candidates are searching for jobs, they'll typically search for specific keywords — for instance, "software engineer job in San Jose." There are two main keywords here:

Software engineer job

San Jose

If you're looking for an Android developer in San Jose, you want to rank for keywords like:

Android developer

San Jose

To do that, make sure these keywords are repeated at least 3 to 5 times in your description.

If you're not sure which keywords you should target, try doing the following:

List out search terms that engineers interested in your job may type Look at your competitors’ job posting and see what keywords are used Use a tools like Keywords Everywhere, a Chrome extension that shows you the search volume of keywords in Google .

For example, if you're debating between keywords like "software engineer" (6,600 search volume/month) and "software developer" (3,600 search volume/month), and which keyword will be searched more, the Chrome extension will give you some guidance.

Apart from keywords, the meta description of your job advert can also be enhanced.

Meta Description

According to Google, a meta description is a "concise, human-readable summary of each page's content." Here's how it appears on Google’s search result page:

Make sure your meta description gives readers an accurate idea of what your job ad. Highlight the most important and relevant information so Google knows your job description is relevant to someone's search. This will encourage job seekers to click on your job ad as well.

Since 70 - 80% of all job seekers use Google to search for job listings, this will help you stand out in the search results.

Final (& Super Important) Tip

Congratulations! 🎊 You now know all the nitty-gritty details of writing an attractive software engineer job description!

There's one more super important thing:

It takes more than one person to write an attractive and specific job description.

Oftentimes, bigger companies see recruitment and job descriptions as the recruiter's job. Though that is certainly true, recruiters need hiring managers' input to pinpoint the exact kind of talent they're looking for. In startups, one person could play both roles — in such cases, it is also good to involve someone else in the company to help you decide what the must-have qualities are, even if they’re not technical.

In general, involving multiple stakeholders will help make your job description specific. That could include specific technical tools, attitude towards best practices, or personality traits that you are looking for. The more you know about what your company needs, the higher the chance it is for you to craft a software engineer job description that would attract the right candidates.

The competition for good talent is real and cutthroat. With that said, after using the tactics we've outlined above, we're confident that you'll be able to communicate your requirements well and attract the right applicants!