Job description writer
The largest community-driven library of Agent Skills (SKILL.md + scripts/references/examples) for Claude, Codex, Gemini CLI, Cursor and friends.
npx -y skills add JayRHa/AgentSkills --skill job-description-writerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Writes inclusive, accurate, and compelling job descriptions with a clear role summary, outcome-oriented responsibilities, must-have vs. nice-to-have requirements, impact framing, and compensation/logistics. Use this skill when the user asks to "write a job description", "create a job posting", "draft a JD", "post a role", "rewrite this job ad to be more inclusive", "turn this requirements list into a posting", or needs help defining responsibilities, qualifications, leveling, or salary ranges for a hire.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
7.0 KB, as published. Nobody here has run it
Job Description Writer
Overview
Keywords: job description, JD, job posting, job ad, role, hiring, recruiting, responsibilities, requirements, qualifications, inclusive hiring, salary range, level, seniority, EEO, talent acquisition.
This skill produces job descriptions that attract qualified, diverse candidates and accurately represent the role. A strong JD does three jobs at once: it markets the role and company, it filters for fit (without over-filtering), and it sets expectations for the first year. The most common failure modes are inflated requirement lists that deter qualified candidates (especially underrepresented groups), vague responsibilities that describe activity instead of outcomes, and biased or coded language.
Always optimize for: clarity, inclusivity, accuracy, and measurable impact.
Workflow
-
Gather inputs. Collect the essentials before writing. If the user hasn't provided them, ask concise clarifying questions (batch them). Minimum needed: job title, level/seniority, team & reporting line, top 3-5 outcomes the hire owns, location/remote policy, employment type, and any compensation data. See
references/intake-questions.mdfor the full checklist. -
Define outcomes first, then responsibilities. Before listing duties, write what success looks like at 30/90/365 days. Convert each outcome into 5-8 responsibility bullets phrased as ownership ("Own X", "Drive Y", "Ship Z") rather than activity ("Responsible for attending meetings").
-
Split requirements into Must-have vs. Nice-to-have. Keep must-haves to 4-7 genuinely non-negotiable items. Everything aspirational goes under nice-to-have. Strip proxy requirements (degree, exact years) unless legally or functionally essential. See
references/inclusive-language.mdfor substitutions. -
Add impact + level context. State why the role exists, who it affects, and how performance is measured. Calibrate scope language to the level (see the leveling table below).
-
Scrub for bias and accessibility. Run
scripts/jd_lint.pyto flag biased/coded terms, gendered language, jargon, requirement inflation, and missing sections. Apply fixes. -
Add logistics, comp, and EEO statement. Include salary range (transparency is legally required in many jurisdictions and improves applies), benefits highlights, application process, and an equal-opportunity statement.
-
Assemble using the template. Fill
templates/job-description-template.md. Keep total length to roughly 400-700 words for the body; longer postings reduce completion rates.
Structure of a Great JD
| Section | Purpose | Keep it |
|---|---|---|
| Title | Searchable, standard, level-clear | "Senior Backend Engineer" not "Backend Ninja" |
| Hook (2-3 sentences) | Why the role + company matter | Specific, no buzzword soup |
| About the team | Context and mission | 2-4 sentences |
| What you'll do | Outcome-based responsibilities | 5-8 bullets, verb-led |
| What you'll bring | Must-have requirements | 4-7 bullets, no inflation |
| Nice to have | Aspirational extras | Optional, clearly labeled |
| Impact / success | How impact is measured | 30/90/365 or KPIs |
| Compensation & benefits | Range + highlights | Be transparent |
| Logistics | Location, type, process | Clear next steps |
| EEO statement | Inclusion commitment | Required |
Leveling / Scope Calibration
Match the language to the level so candidates self-select accurately.
| Level | Scope verb | Typical responsibility framing | Typical experience signal |
|---|---|---|---|
| Junior / IC1 | Contributes to | "Complete well-scoped tasks with guidance" | 0-2 yrs equivalent |
| Mid / IC2-3 | Owns | "Own features end-to-end; unblock yourself" | 2-5 yrs equivalent |
| Senior / IC4 | Drives | "Drive projects across the team; mentor others" | 5+ yrs equivalent |
| Staff / IC5+ | Leads / influences | "Set technical direction; influence org strategy" | Deep domain mastery |
| Manager | Builds & develops | "Hire, grow, and lead a team; own delivery & growth" | Prior leadership |
Avoid the trap of "years of experience" as the primary gate. Prefer demonstrated capability statements.
Worked Example
See examples/jd-example.md for a raw input (messy requirements dump) transformed into a finished, inclusive job description, including before/after of biased lines.
Best Practices
- Outcomes over activities. "Reduce checkout latency by owning the payments service" beats "Work on backend systems."
- Cap the must-have list. Research shows candidates (women especially) often don't apply unless they meet ~100% of listed requirements. Shorter lists widen the pool.
- Use "you" and active voice. It reads as an invitation, not a spec sheet.
- Show the salary range. Transparency increases qualified applies and is legally mandated in many places.
- Name concrete tech/tools but mark transferable skills as acceptable ("or similar").
- Lead with mission and team so candidates understand the "why."
- One title, standard naming so the role is searchable on job boards.
- Run the linter (
scripts/jd_lint.py) before finalizing; treat it as a checklist, not gospel.
Common Pitfalls
- Requirement inflation: listing "nice-to-haves" as "must-haves" (e.g., 5 frameworks, a degree, and 10 years for a mid role). Move them or cut them.
- Coded/gendered language: "rockstar," "ninja," "aggressive," "dominant," "he/his," "young and energetic." Replace per
references/inclusive-language.md. - Wall-of-text responsibilities describing process instead of impact.
- Missing comp or EEO sections — both hurt apply rates and can create legal exposure.
- Generic hooks ("We are a fast-paced, dynamic team...") that say nothing. Be specific about the product, the team, and the problem.
- Mismatched level signals: senior pay with junior scope, or vice versa, causes drop-off and bad hires.
- Accessibility-blocking phrasing: "must be able to lift 50 lbs" or "valid driver's license" when not essential to the job can exclude qualified candidates and raise ADA concerns — only include genuine bona fide requirements.
Files
references/intake-questions.md— questions to ask before writing.references/inclusive-language.md— biased→inclusive substitution tables and rules.scripts/jd_lint.py— stdlib-only linter that flags issues in a draft JD.templates/job-description-template.md— fill-in template.examples/jd-example.md— full before/after worked example.