How to Write a Job Description That Attracts the Right People
How to write a job description that filters rather than repels: the structure that works, the requirements to cut, why salary ranges change your applicant pool, and what AI can and cannot draft.
Most job descriptions are written to protect the company rather than to attract a person. They list fifteen requirements, describe a culture in adjectives, and say nothing concrete about what the job involves on a Tuesday. Then everyone wonders why the applicant pool is thin and badly matched.
A job description has one job: help the right person recognise themselves, and help the wrong person self-select out. Everything below serves that, and most of it means writing less, not more.
The structure that works
Five sections, in this order. The order matters because candidates read the top and skim the rest.
| Section | Purpose | Length |
|---|---|---|
| What the job is | The concrete work, in plain language | 3 to 5 sentences |
| What you will do | Actual tasks, not competencies | 4 to 6 bullets |
| What we need | True requirements only | 3 to 5 bullets |
| Nice to have | Genuinely optional | 2 to 3 bullets |
| Pay, location, process | Range, arrangement, what happens next | Short and specific |
The single most common structural error is opening with three paragraphs about the company. Candidates comparing six roles are scanning for the work and the money. Put the company later, and make it a fact rather than an adjective.
Cut the requirements list in half
Ask of every requirement: would we genuinely reject an otherwise excellent candidate for missing this? If not, it is not a requirement, it moves to nice to have or it goes.
This is not a formatting preference. Long requirement lists change who applies, and not in the direction you want. Candidates who are confident apply anyway. Candidates who are careful, who read the list and count themselves out at twelve of fifteen, do not. The list filters for self-assessment rather than ability.
Three specific things to cut:
Degree requirements that nobody actually checks. If you have hired people without one into this role, it is not a requirement.
Years of experience used as a proxy for skill. "Five years of Python" and "can ship a reviewed service in this stack" are different claims, and only one of them is what you want.
Tool lists. Any competent person learns your ticketing system in a week. Requiring it excludes people who used a different one.
Publish the salary range
Whatever your policy, understand the tradeoff you are making. A posting without a range gets applications from people who will discover the number at offer stage, which wastes their time and yours, and it disproportionately loses candidates who cannot afford to gamble on a process.
An honest range also does something useful internally: it forces the conversation about what the role is worth before you interview, rather than after you have fallen for someone.
In a growing number of jurisdictions this is a legal requirement rather than a choice, so check yours before deciding it is optional.
Write the day, not the competencies
The section candidates actually use to decide is the one describing the work. Competency language ("stakeholder management", "drives results") is invisible, because every posting has it.
Replace it with what happens. "You will own the weekly release, which means deciding what ships on Thursday and telling the team what did not make it." That sentence tells a candidate more than a page of adjectives, and it lets the wrong person opt out, which is the point.
| Instead of | Write |
|---|---|
| Excellent communication skills | You will present the roadmap to the exec team monthly |
| Fast-paced environment | We ship weekly, and priorities change mid-quarter |
| Team player | You will pair with two engineers and review their code |
| Self-starter | Nobody will assign you tickets, you pick from the backlog |
"Fast-paced environment" is worth singling out. Candidates read it as a warning about workload, so if you mean it literally, say what you mean.
Where AI helps, and where it does not
AI is genuinely useful for the mechanical parts: tightening a draft, cutting jargon, flagging gendered or exclusionary phrasing, and generating a first pass from bullet points you supply.
It is not useful for deciding what the job is. Ask a model to write a job description from a title and you get the industry average, which is exactly the generic posting you are trying to avoid. The specifics that make a description work, what happens on a Tuesday, why the last person left, what the team is actually short of, are things only you know.
Practical division: you write the bullets, the model tightens the prose, you check it did not reintroduce the clichés.
Tools
Most of this lives in your applicant tracking system, which is where the posting, the pipeline and the compliance record sit together. Our comparisons cover the best applicant tracking systems, AI recruiting tools and HR software for the wider stack.
Pitfalls
Reusing the description from the last time you hired. The role has changed. So has the market.
Listing everything the team does rather than what this person will do. It reads as a warning that the job is undefined.
Burying the location and arrangement. Remote, hybrid and on-site are the first filter for most candidates. Put it near the top and be exact, including expected days in office.
No indication of the process. Telling candidates there are three stages over two weeks measurably reduces drop-off, because the alternative is silence they interpret as rejection.
What these tools actually cost
We price every tool we review, so this is measured rather than estimated. Across 429 tools, 293 publish a price and 33% offer a free tier. Among hr tools, the median entry plan is $39 a month, which runs above the $24 median across every category we price.
The spread matters more than the median. Half of the hr tools sit between $4 and $157, and the range runs from $1 to $699. A quoted "starting at" price near the bottom of that range usually means per-seat add-ons land on top of it.
| Price point | HR tools | All tools |
|---|---|---|
| Cheapest paid plan | $1 | $1 |
| Lower quartile | $4 | $10 |
| Median | $39 | $24 |
| Upper quartile | $157 | $49 |
| Most expensive | $699 | $990 |
| Tools measured | 19 | 293 |
FAQ
How long should a job description be?
Between roughly 300 and 700 words for most roles. Long enough to describe the actual work and be honest about requirements, short enough that someone comparing several postings reads it. If yours is over a thousand words, the cut almost always comes from the requirements list and the company boilerplate.
Should I include a salary range?
Yes, in most cases, and in a growing number of places you must. Beyond compliance, a range filters out mismatches before anyone invests interview time and widens your pool among candidates who will not enter a process blind. The internal benefit is real too: it forces you to agree what the role is worth before you meet someone you like.
What is the difference between a job description and a job posting?
The job description is the internal document defining the role, its scope and responsibilities, and it is used for levelling, pay and performance. The posting is the external, persuasive version aimed at candidates. Many companies publish the internal document unchanged, which is why so many postings read like a filing rather than an invitation.
Can I use AI to write job descriptions?
For drafting and tightening, yes. For deciding what the job is, no. A model asked to write from a job title returns the industry average, which is precisely the generic posting that fails. Supply the specifics yourself, let the model tighten the prose, then check it has not quietly put the clichés back in.
HRpresso: the free daily HR brief
Free daily newsletter, read in 5 minutes.
Subscribe free