How to Write the Best Job Description Ever

You said I could be anything ma...

Scroll this

Hiring people is my favorite part of being a manager. I look at every hiring  opportunity as a way to improve the quality of the team: to fill a key skill set, bring on fresh ideas and reinvigorate the “mojo” of the group through personality.

A single person can absolutely change an entire team. The job description (JD) is a way for you to sell your team, project and company to the best the internet has to offer. You want candidates to be excited about interviewing. You won’t get that with a copy/paste job about the company and listing out a bunch of skills with years of experience attached. The following are some helpful tips I’ve picked up over the year and you’ll need them if you want to build a Flock.

Create a position name that catches the eye.

Nobody – literally nobody, wants to be a Software Engineer III. What the hell are the levels anyways? Is it like murder, where first degree is the most serious? Or like a movie rating of 5 stars is the best? Don’t be afraid to make something up that fits the unique roll. I’m most proud of “Digital Engagement Manager” which took me nearly a week to come up with. (and I had a ton of awesome candidates for that job) What’s a Digital Engagement Manager? It says it right there in the title, someone who manages digital engagement. Do you need a DevOps Tester? DevOps Test Automation Engineer.

Get creative. This is the age of Chief People Officers and Digital Prophets. (please note that I’m laughing as I type Digital Prophet) I think you get the point. The position name is the book title of your JD. And yes, people will judge your book by its cover.

Describe why your project is awesome.

Are you working on a mission critical system that keeps fighter pilots alive? Building the next mission to Mars? Probably something a little more mundane, but don’t undersell yourself. What sets this position apart from the hundreds of thousands others posted on job boards? How are they going to have the opportunity to grow themselves over the next year? People want to care about the work they do and feel like they are contributing. This is your hook. The job title sounds cool and now they really want to work for this project. So transition into something about the work location and job specific perks such as:

  • Great restaurants and bars nearby
  • Metro accessible
  • Telework options
  • Flexible hours
  • On-staff masseuse
  • Taco Tuesdays
  • New laptop (Macs included!)

And then write about what makes your company great. This isn’t the area to put in all of the benefits, just a few sentences about the highlights. Big training budgets, good leave package, growing, lots of opportunities, etc.

Finally it’s time to describe what they are going to do.

Think about why you need an outstanding, smart, talented person to join the team. And how exactly is that person going to contribute on day one? Don’t be generic! Details are crucial. Describe the technology they get to work with. If you have terrible, old technology, talk about how this position offers the candidate the chance to modernize with the technology of their choice. Be positive about the impact this role has on the team overall. The following is an example from the Digital Engagement Manager position:

  • You will be the primary driver behind making our end users happy.
  • Manage customer engagement and support for each application –  including answering questions, providing training, gathering requirements and identifying areas for improvement.
  • Be a driving force for user experience and user interface design. You will be the leader in this practice on the team.
  • Work with teams to develop marketing assets such as flyers, emails and other promotional material. Show off your design skills.
  • Work with customers  and the team to build out wiki portals and pages.
  • Work with customers to build WordPress sites. You’ll get a lot of opportunities to design your own.
  • Improve search engine optimization. We run a search engine and need your help!
  • Develop content and engage customers on our social media network.
  • Lead a new push for analytic driven decision making (A/B testing, Google analytics, etc.)
  • Assist with functional testing of new application features.
  • Occasionally assist with documentation and other technical writing.

This example JD lets potential candidates know what they will be working on and their responsibilities. It describes what they will be leading, what opportunities they will have, and describes the more day-to-day activities.

Do not lie. This should be obvious, but it’s a fine line between embellishment and lies. You need to be open about the bad parts of the job.

This is the core of your JD. Start with the most exciting aspects of the job. Then parse in some of the mundane or less-then-exciting tasks. Your candidate absolutely has to be okay with doing the worst area of the job. They shouldn’t be surprised on day one. If they are – they won’t be happy. If they aren’t happy, you just missed your chance. (To put this a little in context, when I started a job recently, on day one I found out the team I was leading needed to upgrade 65+ servers from Windows 2003 to 2008 because the sunset date was in 8 weeks. Oh, and migrate them to a different server farm. And keep all of the applications up and running. We got it done, but it was not what I signed up for and wasn’t particularly happy since I had turned down a job to work as an AWS Solutions Architect. I eventually got over it, but the point still stands.)

I could care less about years of experience and I don’t care who knows it!

Some of the best people I’ve ever worked with have been straight out of college. Years of experience? Freaking zero. How much did they contribute? A hell of a lot. Way more then some people I’ve worked with who’ve had twenty years in the industry. I could not be more against putting years of experience for skill sets or technologies. Who cares? I worked with a guy for a year who had retirement countdown timer on his work computer. It was up all the time. Do you think that year of “experience” counted for much beyond warming the seat and converting oxygen to CO2?


What you should care about is knowledge. Do they only understand the concepts or are they experts? Put this in plain terms. If you are looking for a front-end Javascript developer who is an expert in React, then literally say so. Putting down something like “5 years of React” makes you look… well, I’ll just say that the only people who have that already work at Facebook. Start with the tools and technologies they will absolutely need to know day one and put them front and center. Then move down to the ancillary items they need to know such as Git, JIRA, and other environmental factors. I like putting in requirements such as, “needs working knowledge” or “understanding” of some of the more forward-leaning areas of experience.

If you’re going to hire a developer they must have a Github account.

This article shared with me by my friend hits the nail on the head. Your Github account is your portfolio. It describes everything about the developer. I’m going to go into more detail about developers and Github in a following article about hiring the best people. This is an absolute requirement to have in your JD. What else would be great is if they had a StackExchange account that you can review. Similarly, if you are hiring anyone for UI/UX, they must have a portfolio or their own website. The idea is, you want someone who cares about their profession outside of work. These are the types of candidates you want on your team.

If all else fails and you’re still stuck, copy from the best. Go look at the leading companies in your industry. They probably have really well put together job descriptions that you can “borrow” from. Or at the very least, get your ideas flowing.

Submit a comment