Eli Weinstock-Herman

Writing Better Job Ads

July 26, 2021 ▪ management posts ▪ 22 min read

I'm on the market right now. That means I spend 1-2 hours/day reading job ads, plus another 1-2 hours/day talking to prospective companies, and occasionally an additional couple hours providing advice (I have some free time on my hands).

Table of Contents

There are some great ads out there, but most are less than wonderful. Dry, lacking in critical detail about the role or company. A laundry list of technical requirements. Blocks of unformatted text. Wildly misspelled technologies.

A job ad is marketing. An advertisement.

In a general marketing sense, a job ad is a 30 second clip on the radio or a landing page. It sits near the top of our sales funnel to draw great candidates in. Often, it's the very first touch point a candidate has with our company.

Picture of a hiring funnel with job ads and candidates at the top
Start with the end in mind: Each step in our process should draw great candidates forward

Most people will know little to nothing about our company. They know little or nothing about how we build software, work with customers and each other, handle emergencies, and millions of other things we take for granted by already being a member of the team.

If we want to land great teammates, our efforts to attract and engage these candidates (and screen out others) should start at the job ad.

A Job Ad is a Landing Page

In marketing, the brightly colored button you see on everyone's landing pages is called a "Call to Action".

Here's an example "hero" section from a past company's landing page:

Picture of the hero section from Spreedly's website
Spreedly.com landing page: clear value and call to action for the right prospect

When I arrive on this landing page, the text is designed to speak to the challenge that will resonate with me if I am a good prospect. I am drawn through the content to the next obvious step, that bright blue "Learn More" Call to Action (button).

If this doesn't engage me, then I will likely bounce back to my search results and continue on. The company has gained something by me not submitting a demo request, sales question, support ticket, or free trial.

Getting them to "Please Apply" (or not)

The Job Ad is our landing page, a sales pitch and our filter.

Like a landing page, we want to engage better qualified prospects so they will push our "Apply Now" button, and we want to persuade folks that won't be a good fit to head back to the search results. Increasing the quality of our submissions (qualification), allows us to have a more focused screening process, less bulk filtering of candidates, and so on.

A full landing page is longer than the hero section above, just like a good job ad has an introduction and longer breakdown of the role. The introduction re-engages visitors or connects with those that have already done a lot of research. Like a landing page, the goal of each section is to continue to ramp up engagement and convince the right candidates they want to keep reading, until before they know it they're at an "Apply" button and can't wait to "Learn More" (or, again, have bounced out knowing this isn't a good fit for them).

This job ad is great in a number of ways:

  1. The tone of the posting is friendly and respectful. It isn't a dry list. This particular tone may not fit your company, but the using a tone authentic to your organization will engage folks
  2. The introduction is a great snapshot of the main topics, like the hero section of a landing page. It's 1-2 sentences on each key area that will engage or answer a critical question for a candidate.
  3. "In this role, you will" - This is "you will help build playgrounds for kids" vs "5 years of experience with hammers". Outlining the impact and challenges is attractive to candidates on several fronts: here is the type of thing you'll actually be doing, this is the type of impact and autonomy, etc.
  4. "We're looking for someone who is" - Expanding on the last section, now we show the candidate that we've been thoughtful about what we expect from people in this role, and implicitly a look at what they can expect from their future co-workers. It also shows the organization has been thoughtful about what a "Senior FullStack Developer" looks like here.
  5. "Our Stack" - This matters. By all means encourage folks that have similar skills to apply, but this is a meaningful variable for most candidates and not providing the information can only dissuade good candidates who don't want to go through more steps to find out more
  6. etc.

Your posting doesn't have to be this long. If you read the original, it is pretty lengthy. That said, I suspect it does the job for them really, really well. It communicates culture, expectations, challenges, environment, and the answers to most of the first set of questions a candidate would ask. It will engage a narrower set of candidates than more generic ads and connect to people more likely to be engaged with the company and team.

Knack will receive a better qualified (in terms of their needs) set of candidates, so they will get more mileage for less effort in their screening and interviewing stages. This will then make it even easier for them to be respectful of candidate's time, responsive during the process, etc.

Note: I have not talked to Knack, it's entirely possible they have an awesome post that is nothing like their actual process or internal flow. It's unlikely, but that's why the screening call goes both ways.

Writing your Job Advertisement

My goal with this post was to change folk's perspective a bit. I think we often forget the "Ad" part of "Job Ads". By zooming back out and looking at this as what it is, a marketing exercise, I think it sets us up to write better performing ads that will net us a smaller number of more qualified candidates, which means we can be more personable, more respectful, use less of our time, use less of the general public's time, and be more successful.

Which is something like win/win/win/win/win.

  1. Start with the end in mind: who are we, what do we need, and how can we attract the best candidates and repel folks who would be wasting their time (so they can spend it more productively)
  2. Create the core of your job ad first, draft a section for each of these
    1. What will the candidate achieve? What will their impact be on the company, the product, and their teammates? From the candidate perspective, besides having a paycheck and insurance, their work will have purpose and impact, they will build expertise in one or more potential directions, and they'll have a certain level of autonomy to use their expertise to achieve the purpose - outlining what those are helps find someone that will love the role.
    2. What are the expectations from a team member in this role? If you have defined expectations in the form of a growth framework, job ladder, etc. then lean heavily on that. If you have some specific needs, for interest you're hiring generalist roles but would really appreciate some extra depth in one or two areas, this is the place to list. What are expectations around how folks collaborate, coordinate, and communicate? What are their responsibilities, both the obvious ones and non-obvious but meaningful?
    3. What are the specific tools/processes in use, especially if they may draw strong opinions or you do want prior specific experience? A short run down of the specific tools and processes that are relevant to the role and may be polarizing (for example: the key technologies, processes, etc. that folks may have strong feelings about)
    4. What does the company do, why is it interesting, and what is the impact?
    5. What does compensation (and benefits, perks, etc.) look like? Hopefully folks won't opt out at this point, but this is a final opportunity to filter folks out (or amp them up more). I especially advise posting a salary range, if possible, or something else stronger than "Depends on Experience" or "Competitive". This is good for a whole separate blog post, but I've made "What is your hiring budget" part of every screening call I take now because (1) you are a company with resources to figure that out much better than the individual on the other side can, and (2) I'm surprised often enough at the answer that I need to ask before we get too far into your process, instead of something like mowing the lawn.
  3. Boil it down to a pitch: Take all of that content and create a compelling introduction that candidates will be interested enough in to get to the next section, then the next, etc.
    1. For the introduction, you don't have to summarize each of the items above, but that can be helpful. Looking back at the Knack intro, they are kind and respectful, they mention the technology and role, provide a short intro on what the company does, give an insight into the challenge and impact we would have, and some key points that start to tell us about their company culture. The great thing about this approach is now I want to dig more into each of those statements and they've helpfully given me a longer section on each below.
  4. Tone, length, engagement: You broadly know what you're going to say, that's the raw ingredients. Now consider what tone you want to take and start to edit the content itself.
    1. Word choice is important, and Jade Rubick's post below (resources) points out several tools that can help with that.
    2. Readability: good grammar, short (or no) paragraphs, and refine, refine, refine
    3. Go outside the box a bit: Going back to the original premise, this posting is an advertisement. There is a ton of great content on writing copy, time-proven patterns to make compelling landing pages, etc. Just like folks use the Pixar story formula to build sales decks, we should be looking at proven Copy techniques for our job ads.
    4. Maybe go outside the box a lot: What if you made an actual landing page for the role? If you are a client-focused company, what if you included a client testimonial that speaks highly of your team and reflects core culture? If you're family-based maybe a family-of-an-employee testimonial?
    5. Or don't! The upside of most job ads being meh is that a little effort here can make your ads stand out from the crowd.
  5. Test, Test, Test: Just like any other type of advertisement, test it. Try it out against internal folks and see if it is sparking the type of interest or key points you expected. Post it to a peer community. Ask the first few people you screen what stood out about it. Iterate. Done well, this becomes a draft you can evolve for future campaigns, even as needs and the company change.
  6. Post Thoughtfully: Before you post it across all the usual places, consider if that will net you too many candidates, or if a specific board or forum will net you a smaller number of better qualified candidates. The recruiters that get 1,000 responses to their job ads aren't winning, they're drowning themselves in bad metrics.

I am not a master at any of this, or even an expert. It's frustrating to me that we see folks post so many generic ads, which waste that many more people's time submitting, which waste that many more people's hours screening, which then justifies behavior like ghosting and other rudeness.

My hope is that some of this will be useful, and that I can help by pointing you towards some great resources to help you raise the average for your particular company.

Examples to Avoid

The first time I wrote a job description, I went online and found one that seemed reasonable and changed some of the wording. It was effectively the 3-sentence salary.com job description and a list of my own technical skills, with a few somewhat arbitrary numbers for the years of experience.

I put some actual effort into it, but didn't know better at the time.

I wrote a job ad for a fungible human gear.

I went through one example of a good ad above, but I also want to point out some common traps I see in bad ads.

Quick List:

Unreadable Formatting

Review your job ads after publishing them. Review your job ads when you pay a recruiter to post them.

I'm reviewing a page of postings right now, and out of 1 page I see:

  • 3 postings that meant to post a bullet list, but forgot the bullets and ended up a long, jagged, non-punctuated paragraph
  • 1 posting that lost all formatting and is 1 giant run-on block of code (also missing a lot of punctuation)
Screenshot of a job description with no carriage returns and printed special characters
I suspect most of this is automated systems losing content in integrations.

Your best qualified candidates are going to head right back to search results for the next one.

🔨 How to fix this: Review your job postings after you hit the "Publish" button to make sure they landed in good shape and make the impression you intended.

Clumsy Recruiters

When I work with a third-party recruiter, I usually require them to use my job ads by default. I'm open to feedback and if they really, really want to they can craft their own and run it by me.

I am advertising for my team and company, so I want to make sure I stand by what we broadcast and it reflects well on us.

These are actual examples from postings this week:

• Must be experienced with Function apps, and/or AWS (docker, Landis);
• How to Implement Audit in Entity Frame Work Core?
• Excellent problem solver, able to assimilate formation quickly
• Globalization integration with component for different languages or culture

I accept the occasional miswording or spelling error. There are a lot of technologies out there, recruiters are human too, etc.

These are not that.

🔨 How to fix this: Require the recruiter to use your job ad or to send it to you for review before posting. Require the recruiter to send you a link to any posted job ads for your review.

A job ad may be the first impression a candidate has with you and your company, own it.

Just a List of Tech Skills

Here is a posting I'm looking at today:

Screenshot of a job description that is a laundry list of skills

This is the entire job ad.

There are a number of problems, but the biggest is that it doesn't say anything at all about what the role will entail or the company. This is bad for two reasons:

  1. Filtering on the type of role and responsibilities will have to happen at the screening level
  2. A percentage of very experienced people that would be attracted to this role won't bother submitting, because they don't take the risk on blind submissions to N companies to find the type of role they're great at

Note: It does mention the title, "Solution Architect" once more, so this is at least a level above some of the others that look like this on LinkedIn, but there's still a broad range of expectations for Solution Architect roles and additionally a large audience of people that will misinterpret those two words.

Surprise Tech Stack: Flavor #1 - Open to similar technologies

We are seeing a lot more job ads that want to encourage people with like skills to apply. This is great.


- Developing in at least one major programming language, Java, C#, Go, Node.js, or Python
- Specialization in at least one cloud provider stack - AWS, Azure, or GCP

But then they never state what their stack is. Personally, I don't want to work with Java again, so even if the rest of the ad sounds great, I will skip it because I can spend that same energy better on the next one.

🔨 How to fix this: This is a great intent; the fix is to make it more explicit. Knack's posting above created a whole separate section, but it could also be as easy as changing you bullet points around:

  • Developing in at least one major programming language, Java, C#, Go, Node.js, or Python (Go and Python are our standards)
  • Specialization in at least one cloud provider stack - AWS, Azure, or GCP

Or better yet, be really explicit:

- Our technology stack is Python and Go, running in microservices w/ Kubernetes on AWS
- (If your background is in different but similar technologies and you want to learn this set, we would love to hear from you!)

Surprise Tech Stack: Flavor #2 - Senior Technical Leaders

Ads with no technology stack at all.

For technical leadership roles.

I'm not really sure what this is. I've been tempted to submit to a few of these just so I can ask, so we'll see how bored I am later this week.

I suspect this is similar to above, where the assumption is if you are in a senior enough role the specific technology stack is not required, but they haven't considered the opposite where the candidate may have preferences and not want to go through submission, screening, etc. just to find out if it's worth the time to chat.

🔨 How to fix this: Be more explicit about whatever you think you're trying to do here so I can provide better advice.

5+ years of Experience

I dislike the "N+ years of experience" banner for a lot of reasons.

  • It's not actually meaningful, given how wildly different peoples progression and experience has been.
  • It's used as a blunt force filter by folks at the resume screening step to throw away some percentage of candidates that would actually be pretty great.
  • It is intellectually lazy.

🔨 How to fix this: Identify what your actual needs and expectations are for this role.

For example, if it's a Senior Developer, then what you actually mean here is that you expect them to be able to display experience independently developing features of size X, working autonomously on 4+ week tasks, mentoring peers, leading small projects, etc.

This comes with several advantages:

  1. You're forced to define your expectations for folks at this level or role, wildly useful
  2. You can customize those expectations to what you need, which could be different than everyone else "5+ years" generic expectation
  3. You can now screen and interview against expected skills, not a magic number
  4. That amazing human with 3 years of dev experience and 3 more years of project management experience will submit and make it through the resume screening process now

5 years of React Required

Serious question: what does it mean to have 5 years of experience with React?

Even ignoring the prior point, where my React focus may have been wildly different than yours, what does 5 years mean?

  • If I'm fullstack, does that mean I only count the days I was working on the front-end?
  • Do I subtract CSS days?
  • Oops, React-Router updated the API again and I just spent a week reworking my enzyme hacks to make the tests work again, was that React work?
  • Cypress UI automation tests, is this React?
  • Now I'm in some design meetings with some Balsamiq mockups for new front-end changes, does this count?
  • ...

Like the "5+ Years of Development experience", I'm more and more looking at "5+ years of (skill)" as an intellectually lazy statement. It is going to filter some people, it does feel like we have accomplished work in writing our job ad, but it isn't actually communicating what we need or filtering for what we need.

🔨 How to fix this: What do you actually need/want?

I'll admit I don't have a great across-the-board answer for this one. What we did in that last Ledgex Engineer posting was focus on what that was a proxy for:

  • Developing in more than one fullstack SPA over several years or more: taking a feature from web components and CSS and wiring it back through API endpoints, server-side business logic, and databases or non-relational stores

This is a fullstack posting, and instead of listing years with this and that we decided the important thing was what you had done with it. We still say "years", but there's no magic number and we hoped this wouldn't filter relevant people out the way "5+ years" would.


Here are some additional books and links I've found to be really valuable. Most focus more broadly than just the top of your funnel and the job write-up.

And since we're thinking in terms of advertising:

  • 📄 Copywriting Formulas, Joanna Wiebe/Copyhackers: a huge guide to time-proven formulas for landing pages, advertisements, etc. This is worth looking through as you consider the overall flow and structure of your job ad (again, most job ads suck so a little bit of effort can net you a huge gain).

I also have more specific resources for some roles, like hiring a Head of Product or Engineering leader, and some other examples I've socked away. Let me know if there's something specific you're looking for and I'll dig back into my list.

Related Posts