Recruiting Strategy Updated Feb 2026 10 min read

Writing Job Descriptions That Actually Work

The average job posting gets 250 applications but only a handful of qualified candidates. The problem is not the talent pool. It is the job description itself.

Most job descriptions are written for the company, not for the candidate. They read like internal requirement documents, packed with jargon, unrealistic expectations, and missing the information that qualified people actually need to decide whether to apply.

The result is predictable. You get hundreds of applications from people who do not fit and silence from the people who do. This guide covers why that happens, how to fix it, and what a well-structured JD looks like for different roles. Whether you are writing your first job posting or your five hundredth, the principles are the same.

1

Why Most Job Descriptions Fail

Most job descriptions fail because they list too many requirements, use vague language, and omit salary ranges, resulting in a sub-3% qualified applicant rate.

The average job posting receives roughly 250 applications. Of those, only 4 to 6 candidates are genuinely qualified. That is a conversion rate below 3%, and the problem starts with how the JD is written.

The usual suspects

Most failing job descriptions share the same patterns. They are copy-pasted from other companies with minimal editing. They list 20 or more requirements when only 5 to 7 are actual must-haves. They include vague phrases like "strong communication skills" without any context for what that means in the role. They omit a salary range. They provide no information about the team, the manager, or what the day-to-day work looks like.

Each of these problems filters out candidates who would succeed in the role. The vague language attracts people who think they might fit. The excessive requirements scare off people who actually do fit.

The requirement inflation problem

According to LinkedIn's hiring data, postings with 35 or more requirements receive 30% fewer applications than those with 15 or fewer. This makes sense intuitively. A candidate reads a list of 25 requirements, counts the ones they match, and decides that 18 out of 25 is not good enough. Meanwhile, a hiring manager would have been happy with 12 of those 25.

Every unnecessary requirement in a job description is a filter working against you. It does not attract better candidates. It repels qualified ones who are honest about what they do and do not know.

Who you lose

Studies consistently show that women apply to jobs when they meet 100% of the listed requirements, while men apply when they meet about 60%. An inflated requirement list does not just reduce application volume. It systematically skews the candidate pool by discouraging candidates who self-select more conservatively.

2

The Anatomy of a Great Job Description

A great JD has five components: a searchable title, team context paragraph, 5-7 must-haves, 3-4 nice-to-haves, and a salary range with benefits.

A great job description has five components. Each one serves a specific purpose, and skipping any of them weakens the whole posting.

Title: clear and searchable

Use standard job titles that candidates actually search for. "Senior Frontend Engineer" gets 3x more clicks than "Code Ninja" or "Marketing Rockstar." Creative titles might reflect your culture, but they tank your visibility on job boards and LinkedIn search. Save the personality for the description itself.

Opening paragraph: context and purpose

Two to three sentences covering what the team does, why the role exists, and who thrives in it. This is your hook. A candidate should read the opening paragraph and immediately understand whether the role is worth their time. "Join our 12-person platform engineering team building the infrastructure that powers 40M monthly transactions" tells a candidate far more than "We are looking for a talented engineer to join our growing team."

Must-have requirements: 5 to 7 non-negotiables

These are the skills and experience a candidate truly cannot succeed without. Be specific. "3+ years building REST APIs with Python" communicates a clear expectation. "Experience with backend development" does not. For each must-have, ask the hiring manager: "Would you reject a candidate who had everything else but lacked this?" If the answer is no, it is not a must-have.

Nice-to-have requirements: 3 to 4 bonuses

Label these clearly so candidates understand they are not dealbreakers. Nice-to-haves signal what the team values without creating artificial barriers. A candidate who has 6 of 7 must-haves and 2 of 4 nice-to-haves should feel confident applying. That only works if the distinction between categories is obvious.

What you offer: compensation and growth

Include a salary range (or at minimum, a band). List meaningful benefits and growth opportunities. Describe the team culture honestly. This section is where candidates decide whether to click "Apply" or close the tab. Vague promises about "competitive salary" and "great culture" communicate nothing. Specific details like "$140K-$170K base, 20% annual bonus target, $5K annual learning budget" communicate everything.

The key principle across all five components: every line should help the right candidate say "that is me" and the wrong candidate say "not this time." Both outcomes are good. Attracting the right people and helping the wrong people self-select out saves everyone time.

3

Writing for Humans and AI

Use specific skill names, separate must-haves from nice-to-haves, and include numbered experience levels so both humans and AI tools parse your JD accurately.

Modern job descriptions serve two audiences. Human applicants read them to decide whether to apply. AI tools evaluate candidates against them to generate match scores, rank applicants, and surface relevant profiles. Writing well for one audience tends to help the other, but there are specific considerations for each.

Writing for humans

Use clear, direct language. Avoid walls of jargon and acronyms that only insiders understand. Break up long paragraphs. Be specific about what the job actually involves on a daily basis. A candidate who knows they will spend 60% of their time writing Python services and 40% in cross-functional planning meetings can self-assess far better than a candidate reading "contribute to engineering initiatives."

Tone matters, too. A JD written in the second person ("You will build...") feels more personal and engaging than one written in the third person ("The candidate will..."). Small changes in language can meaningfully affect application rates.

Writing for AI matching tools

AI-powered screening tools parse your JD to understand what skills, experience, and qualifications matter. The clearer your JD, the more accurate the matching. A few practices that improve AI parsing:

  • Use specific skill names. "React 18" is more precise than "frontend framework." "PostgreSQL" is better than "database experience." Specific names help AI tools match candidates who list the same technologies.
  • Separate must-haves from nice-to-haves. AI tools that distinguish between required and preferred qualifications produce more useful rankings when the JD makes that distinction clear.
  • Include experience levels as numbers. "4+ years of backend development" gives an AI model a concrete data point. "Significant backend experience" does not.
  • Mention technology versions where relevant. If the role requires modern React (hooks, server components), say so. This helps matching tools differentiate between candidates with current and outdated experience.

A well-structured JD improves both human comprehension and AI matching accuracy. Tools like Recruiter Copilot use your JD text to generate skill-by-skill match scores, so clarity in the job description directly improves the quality of AI-assisted screening.

4

JD Templates by Role

Effective JD templates for engineering, sales, and marketing roles share one pattern: a searchable title, concrete team context, and 5-7 specific requirements.

The principles above apply to every role, but the specifics vary. Here are three abbreviated template outlines showing how to structure a JD for different functions.

Software Engineer

Title: Senior Backend Engineer (Python)

Team context: "You will join a 6-person backend team building the APIs and data pipelines that power our core product. We process 15M events daily and are scaling to 50M by year-end."

  • Must-haves: Python 3+, REST API design, PostgreSQL, CI/CD pipelines, 4+ years backend experience
  • Nice-to-haves: Kubernetes, GraphQL, team lead experience
  • Compensation: $150K-$180K base + equity

This works because the title is searchable, the team context is concrete, and the requirements are specific enough for a candidate to self-assess in 30 seconds. The must-have list has five items, not fifteen.

Sales Representative

Title: Enterprise Account Executive (SaaS)

Team context: "Our enterprise sales team closes deals between $100K and $500K ACV. You will own 3-5 active opportunities at any given time, working closely with sales engineering and customer success."

  • Must-haves: 3+ years B2B SaaS sales, $500K+ annual quota attainment, CRM proficiency (Salesforce preferred), full-cycle deal management from prospecting to close
  • Nice-to-haves: Vertical experience in healthcare or fintech, sales engineering background
  • Compensation: $90K base + $90K OTE (uncapped commission)

Sales JDs often fail by being vague about quota expectations and deal size. This template gives candidates the numbers they need to evaluate fit. A rep closing $50K deals will know this is a step up. A rep closing $1M deals will know this is a different motion.

Marketing Manager

Title: Growth Marketing Manager

Team context: "You will own demand generation across paid, organic, and partner channels, reporting to the VP of Marketing. The team includes a content marketer, a designer, and a marketing ops specialist."

  • Must-haves: Demand generation experience, marketing automation proficiency (HubSpot or Marketo), data analysis and reporting, content strategy, 4+ years B2B marketing
  • Nice-to-haves: Product marketing exposure, ABM (account-based marketing) experience
  • Compensation: $120K-$145K base + 15% bonus target

Marketing roles span a wide range of specialties. This template narrows the focus to demand generation specifically, which helps candidates with the right background find the listing. A brand marketer reading this will quickly realize it is not the right fit, saving both parties time.

5

Common Mistakes and How to Fix Them

The five most common JD mistakes are inflated experience requirements, excessive tool lists, unnecessary degrees, missing salary info, and internal jargon.

Mistake 1: Impossible experience requirements

"5+ years of experience with Kubernetes" in a 2019 job posting. If the technology is 3 years old, asking for 5 years of experience signals that you do not understand the role you are hiring for. Candidates notice, and the best ones move on. Always check when a technology was released before setting experience thresholds. Better yet, describe the level of depth you need: "production Kubernetes experience managing clusters with 50+ services" says more than a year count ever could.

Mistake 2: Listing every tool in the stack

No candidate needs to know all 30 tools in your stack on day one. A backend engineer will learn your monitoring setup. A marketer will figure out your analytics platform. Focus your requirements on the 5 to 7 technologies that truly matter for the role. The rest can be listed in a "tools we use" section for context, not as requirements.

Mistake 3: Unnecessary degree requirements

70% of tech workers say skills matter more than degrees. Including "BS in Computer Science required" eliminates self-taught developers, bootcamp graduates, and career changers who may be excellent fits. Unless the role legally requires a specific degree (certain engineering certifications, medical roles, legal positions), consider making it a nice-to-have or removing it entirely. Evaluate what the degree actually signals, and look for that signal directly instead.

Mistake 4: No salary information

States and cities are increasingly mandating pay transparency. Colorado, California, New York City, and Washington already require salary ranges in job postings. Beyond compliance, postings with salary ranges get roughly 30% more applications. Candidates who apply knowing the compensation range are also more likely to accept offers, reducing late-stage dropoff. If your company is reluctant to publish exact numbers, even a broad range ($120K-$160K) is better than nothing.

Mistake 5: Internal jargon

"Own the BLITZ pipeline for Q3 OKRs" means nothing to external candidates. Every company has internal shorthand that feels natural to employees but reads as gibberish to outsiders. Write for someone who has never worked at your company. Replace project codenames with descriptions. Spell out acronyms on first use. If a requirement only makes sense with internal context, either add that context or remove the requirement.

Key Takeaways

  • Most job descriptions fail because they list too many requirements and lack specificity. Focus on 5-7 true must-haves.
  • Structure matters: clear title, team context, separated must-haves and nice-to-haves, and a salary range.
  • Write for two audiences. Humans need clear language and context. AI tools need specific skill names and structured requirements.
  • Every unnecessary requirement filters out candidates who would succeed. When in doubt, move it to nice-to-haves.

Frequently Asked Questions

How long should a job description be?

Aim for 300-700 words. According to LinkedIn's 2024 Talent Blog, postings between 300-660 words get the highest application rates. Anything longer and qualified candidates stop reading. Anything shorter and you lack the detail for candidates to self-select.

Should I include salary in the job description?

Yes. Beyond legal requirements in many states, salary transparency increases application volume by roughly 30%. If you cannot list an exact number, provide a range. Candidates who apply knowing the range are more likely to accept offers.

How many requirements should I list?

Stick to 5-7 must-have requirements and 3-4 nice-to-haves. Research consistently shows that postings with fewer, more specific requirements attract more qualified applicants than those with long requirement lists.

How do I write a JD for a role I do not fully understand?

Start with the hiring manager. Ask five questions: What does this person do in their first 90 days? What are the 3 skills they absolutely must have? What would make someone fail in this role? What does success look like at 6 months? What is the team structure? These answers give you the foundation for a focused, accurate JD.

Upload your JD and see AI matching in action

Install Copilot free, paste your job description, and see instant skill-by-skill match scores on every LinkedIn profile.