← Back to blog
Recruiting7 min read·16 April 2025

How to Write a Job Description That Attracts Top Candidates

Most job descriptions are doing active damage to your candidate pipeline. Here's how to write one that actually attracts the right people.

Most job descriptions are doing active damage to your hiring pipeline. They're too long, too generic, full of corporate language that repels great candidates, and structured in ways that attract the wrong people. The result: a flood of unqualified applications and a drought of the talent you actually want.

Here's how to write a job description that works — and why the words you choose matter more than you think.

Why Most Job Descriptions Fail

The typical job description fails for three reasons:

1. It's written for HR approval, not for candidates. Most JDs are written to satisfy internal legal and compliance review, not to communicate clearly with the person you're trying to recruit. The result is a document full of requirements that no one person would realistically have — which deters qualified candidates who assume they're underqualified.

2. It describes a process, not an outcome. "Responsible for managing X, Y, Z" tells candidates what you'll make them do. It doesn't tell them what success looks like, what impact they'll have, or why the role matters. The best candidates are choosing between multiple opportunities — they need to know why this one is worth their time.

3. It's full of exclusionary language — often unintentionally. Research consistently shows that long requirements lists deter qualified candidates (especially women and underrepresented groups) even when they meet most of the criteria. Aggressive language ("rockstar," "ninja," "crushing it") signals a culture that many experienced candidates actively avoid.

The Structure of a High-Performing Job Description

1. Opening Hook (2–3 sentences)

Don't start with "About Us." Start with the candidate. Lead with what makes this role interesting: the problem they'll solve, the opportunity they'll own, or the impact they'll drive.

Weak: "Company X is a fast-growing SaaS platform serving 500+ enterprise customers. We are looking for a Head of Product to join our team."

Strong: "We're rebuilding how enterprise teams plan and ship product — and we need someone to own the product strategy from day one. You'll have direct access to the CEO, budget authority, and a team that ships. If you've scaled a product from 100 to 1,000 enterprise accounts, this is built for you."

2. The Role in 3 Lines

After the hook, briefly state: the function, who they report to, and the primary focus area. Keep it to three sentences. This helps candidates immediately understand where the role sits and whether it matches their level.

3. What You'll Do (Outcomes, Not Tasks)

Frame responsibilities as outcomes: what does "done well" look like? A task list ("manage social media channels") is less compelling than an outcome statement ("own our organic social strategy and grow our engaged following to 50,000 in 12 months").

Keep this to 5–7 bullet points. If you have more, consolidate — too many bullet points is a signal of a poorly scoped role, and candidates notice.

4. What You'll Bring (Requirements — Split Carefully)

Separate your requirements into two clear lists:

  • Must-haves — the genuine minimum qualification to do the job. Keep this short (3–5 items). If someone doesn't have these, they can't do the job.
  • Nice-to-haves — skills or experience that would help, but that you're willing to develop in the right person. Be honest about what's in this category.

Research from LinkedIn shows that women apply to jobs when they meet ~100% of listed requirements; men apply when they meet ~60%. By separating must-haves from nice-to-haves, you immediately expand your qualified candidate pool.

5. Why Work Here (Be Specific)

Every company says it has "a collaborative culture," "smart colleagues," and "the chance to make an impact." These phrases have become invisible. Be specific:

  • What's your approach to remote work and flexibility?
  • What does growth look like in this role in 12–24 months?
  • What's the compensation range? (Yes, include it — it's now expected and often legally required.)
  • What's the team's working style?

6. Salary Range and Benefits (Non-Negotiable in 2025)

Candidates filter on salary. If you don't include a range, strong candidates assume the worst — or they assume the lack of transparency signals something else. Including a salary range reduces time-to-hire, increases applicant quality, and signals a respectful, transparent culture.

Language Audit: Words to Remove and Replace

RemoveReplace with
"Rockstar," "ninja," "guru"The specific seniority level: "Senior," "Lead," "Principal"
"Fast-paced environment"Describe your actual pace: "We typically ship weekly; priorities can shift month to month"
"Must be passionate about..."What specific interest or knowledge is actually needed?
"10+ years experience required"What do those 10 years actually get you? State the capability, not the time.
"Excellent communication skills""Comfortable presenting to C-suite stakeholders" or "Strong written communication for async-first team"
"Other duties as assigned"Delete it, or describe the flexibility honestly

How Semantic Search Changes What Keywords You Need

There's an often-ignored consequence of keyword-based ATS: the words you use in your JD directly determine who gets found. If you write "project management," you'll miss candidates who wrote "programme delivery" or "cross-functional execution." If you write "P&L responsibility," you'll miss candidates who described the same thing as "budget ownership" or "revenue accountability."

Traditional ATS forces you to guess the exact keywords candidates used. CVzen's semantic matching eliminates that problem. Post a job on CVzen with your natural language JD — and the platform finds candidates by what they mean, not just what they typed.

That means your JD can focus on being honest and compelling, rather than being a keyword-optimisation exercise.

The Quick Test: Read Your JD Out Loud

Before you post, read your JD out loud. If you stumble over a phrase, candidates will too — and they'll close the tab. If it sounds robotic or corporate, rewrite the opening until you'd actually want to read it.

The best JDs sound like they were written by someone who understands the role and is genuinely excited to hire for it. That specificity and enthusiasm is what separates a JD that gets 10 strong applications from one that gets 200 weak ones.

Post your next role on CVzen →

CVzen's semantic matching means your JD finds the right candidates — not just the ones who happened to use the same words. Post free. Match by meaning.

Post a job on CVzen
Z

CVzen Team

Building the world's first paperless hiring platform

Put it into practice

Build your free ATS-optimised CV on CVzen. Get your ATS score, fix what's failing, and share a Digital CV link that works with every recruiter.

Build Free CV →