Hiring · July 19, 2026 · 9 min read
How to Write a Job Description That Attracts Talent
How to write a job description that attracts the right people: split must-haves from nice-to-haves, describe outcomes, write fairly, set up the assessment.
← Part of The five pillars of hiring: what assessments measure
On this page
- Start with the job, not the template
- Separate must-haves from nice-to-haves
- Describe outcomes, not a person
- Anatomy of a strong description
- Write the responsibilities as verbs
- Be honest about the context
- Publish the salary range where you can
- Write it to be fair
- Let the JD set up the assessment
- Common mistakes to avoid
- A short checklist before you post
The job description is the first filter in hiring, and most of them filter for the wrong thing. This guide is for hiring managers and recruiters who want a JD that pulls in capable people instead of scaring them off — because the stakes are higher than they look. A bloated wish-list rewards candidates who are good at matching keywords, deters exactly the people you most want, and sets up an evaluation that measures the wrong things. Learning how to write a job description that is clear and honest does the opposite: it attracts people who can do the work and sets up a fair way to check that they can. Everything downstream — your applicant quality, your interview loop, your final decision — inherits the clarity or the mess of this one document.
Start with the job, not the template
Most weak JDs are copies of the last one, edited just enough to swap the title. That is how a role accumulates requirements no one can defend — a language here, a certification there, a degree that was relevant three reorganisations ago. Before you write a word, answer one question: what does success in this role look like twelve months in? If you cannot describe it in three or four concrete outcomes, the problem is not the wording — it is that the role is not yet clear enough to hire for. Get that clarity first and the rest of the document almost writes itself.
Separate must-haves from nice-to-haves
The single biggest fix is also the simplest: split the requirements. Most JDs list ten 'requirements' when three are actually essential. Every extra must-have narrows your funnel — and it narrows it unevenly, because research on job-ad language finds under-represented candidates are more likely to opt out when they don't meet 100% of a long list. Confident candidates apply anyway; the careful ones you often most want to hire read the wall of requirements and quietly close the tab. Keep must-haves to what the person genuinely cannot start without, and move everything else to 'nice to have', where it belongs.
The requirement test: if you would still interview a strong candidate who lacked a given line, it is not a requirement. Move it down to nice-to-have and watch your qualified applicant pool widen without any drop in quality.
This matters beyond fairness. A tight must-have list also sharpens what comes next. When you know the three or four capabilities the role truly needs, you know exactly what your pre-employment assessment should measure — instead of testing a vague blur of everything the JD happened to mention. The discipline of cutting the list is the same discipline that produces a focused, predictive evaluation later.
Describe outcomes, not a person
List what the role will actually do in its first six to twelve months, not a personality portrait. 'Ship and own the billing service' tells a candidate far more than 'rockstar self-starter', and it tells the right candidate that they can picture themselves doing the job. Personality adjectives — driven, passionate, dynamic — feel like signal but say nothing a hundred other ads don't say, and they quietly encourage bias by inviting readers to imagine a familiar face rather than a set of skills. Outcomes also make the next step obvious: they tell you what to assess. A responsibility you can describe in a sentence is a skill you can evaluate on a work-relevant task.

Anatomy of a strong description
A JD that works tends to follow the same short shape. Open with a searchable job title and one honest sentence on why the role exists. Follow with four to six responsibilities written as outcomes. Then a genuinely short must-have list, a clearly separate nice-to-have list, and the logistics — level, location, work model, and a salary range wherever you can publish one. Close with a plain line on how you'll decide, including that there is a work-relevant assessment. That final line does real work: it signals that the process is structured and skills-based, which is exactly the reassurance a strong, careful candidate is looking for.
Write the responsibilities as verbs
Lead each core responsibility with an action and an object: build, own, reduce, launch, support. Four to six of these, each tied to a real outcome, does more work than a paragraph of adjectives. 'Reduce onboarding time for new merchants' is a sentence a candidate can weigh themselves against; 'excellent communication skills' is not. It gives the candidate a concrete sense of the day-to-day, it lets them self-select honestly, and it hands you a shortlist of exactly the competencies to check before an offer.
Be honest about the context
A description that hides the hard parts wins you applications you will lose in month two. If the role involves on-call rotations, a heavy legacy codebase, or a team that is still forming, say so plainly. Candidates who would resent those things drop out early, which is exactly what you want; candidates who are energised by them lean in. Honesty in the JD is the cheapest retention tool you have, because it filters for fit before anyone has spent a single interview hour.
Publish the salary range where you can
A withheld salary range is a filter working against you. Strong candidates with options rarely spend an evening on an application to discover the pay is wrong for them at the offer stage; they simply skip the ad. Publishing a range — even a broad, banded one — signals confidence and respect for the reader's time, and in a growing number of jurisdictions it is becoming a legal expectation rather than a courtesy. Where policy genuinely prevents a figure, say what you can about band or level so the reader can calibrate. Silence reads as a red flag, not as discretion.
Write it to be fair
Neutral, specific language widens the pool. Drop degree requirements where a skill would do; a résumé credential predicts performance far more weakly than a work sample, and a blanket degree filter screens out capable people for reasons unrelated to the job. Watch for superlatives and coded wording that skew the applicant mix, and keep the tone plain rather than performative. Replace 'aggressive growth targets' with the actual target; replace 'work hard, play hard' with what the schedule really is. But wording is only half the job.
Inclusive language alone does not make hiring fair. The JD feeds your evaluation, so the process it leads into must be standardised and monitored — the four-fifths rule is the established check. Neutral copy over an inconsistent, gut-feel interview still produces skewed outcomes.
Because the JD is the front door to your evaluation, fairness has to carry all the way through it. Pair inclusive wording with a consistent, job-relevant assessment and watch the results for adverse impact. A clean JD attached to a biased interview loop simply moves the problem one step later. For the wider set of practices that keep the whole funnel fair — from wording to structured scoring to outcome monitoring — see the guide to reducing bias in hiring.
Let the JD set up the assessment
A clear JD is also the input to a good assessment. Once you know the role's real skills and level, you can test them directly — weighting domain skill, situational judgement and the other pillars of a hire to match the job — instead of running everyone through the same generic quiz. This is where a well-written description pays off twice: once in who applies, and again in how confidently you can evaluate them. The must-haves you were disciplined enough to name become the criteria you measure, and the outcomes you described become the tasks you set.
This is what an AI-native skills assessment platform is built to do. Because H-Evaluate produces AI-generated assessments per job, the description you write shapes the evaluation directly: the role's outcomes and required skills become the criteria every candidate is measured against, consistently, rather than a generic test bolted on after the fact. You can see how the assessment adapts to the role or work through a sample assessment to feel the connection between a good JD and a fair evaluation. When the job ad and the assessment share one definition of the role, the whole process gets tighter.
It also closes a gap that trips up most hiring processes. The JD is usually written by one person, the interview questions by another, and the final rubric by a third — so the thing you advertised, the thing you asked about, and the thing you scored on can quietly diverge. Anchoring all three to one definition of the role removes that drift. The candidate reads the outcomes, is assessed on those outcomes, and is judged against them. Nothing in the loop is a surprise, and no one on your side is improvising the bar mid-interview.
A quick sequence to follow: name the outcomes, extract the true must-haves, write the JD around them, then build the assessment from the same list. When those four steps use one source of truth, your job ad and your evaluation stay in sync and every candidate is judged on what the role actually needs.
Common mistakes to avoid
A few patterns quietly wreck otherwise decent descriptions. The first is the seniority mismatch: a title that says 'senior' over a list of junior tasks, or the reverse, which draws the wrong applicants and wastes everyone's screening time. The second is the copy-paste ghost requirement — a technology or credential inherited from an old template that no one on the team actually uses any more. The third is quietly the worst: the invisible bar, where the real must-haves live in the hiring manager's head and never make it onto the page, so candidates are rejected for missing something they were never told mattered.
The cure for all three is the same discipline that runs through this guide: write the JD from the role's real outcomes and required skills, name the bar explicitly, and keep it honest. When the description reflects the actual job and the actual decision, the mismatches disappear — and so does most of the friction in the interviews that follow, because everyone in the loop is working from the same clear specification instead of their own private version of the role.
A short checklist before you post
- The title is a real, searchable job title — not an internal or whimsical one.
- There are no more than three or four genuine must-haves, with everything else under nice-to-have.
- Every responsibility starts with a verb and names an outcome, not a personality trait.
- You have stated the seniority, work model, and a salary range where you can.
- You have named what will be assessed, so the candidate knows how the decision gets made.
Do this consistently and the JD stops being boilerplate and becomes a hiring tool. It attracts the right people, respects their time, and hands you a clean specification for a fair, predictive evaluation — which is a far better use of the first filter in hiring than a keyword-matching wish list. The document you dashed off in ten minutes has quietly been deciding who ever gets the chance to prove themselves; it is worth the extra hour to write it well.
Write the job description you would want to receive: honest about the work, short on the wish list, and clear about how you'll decide.
Written by
Aayesha Patel · Co-founder, Hanzomon Inc
Co-founder of Hanzomon. Writes about skills-based hiring, fair assessment and building a better candidate experience.