How to write a job description with AI that attracts the right candidates

A practical guide to writing job descriptions with AI. The five-section structure that works, the prompts to start with, and what never to delegate.

CollinCollinFounder, RecruitIn7 min read
Abstract job description document with AI sparkle elements highlighting sections for role requirements and benefits

The steps

About 30 min
  1. Outline the five sections in bullets

    Before opening any AI tool, write 3 to 5 bullets per section: about the role, 30/60/90 plan, must-have requirements, nice-to-haves, what you offer, and how you hire. Fifteen minutes of bullet outlining beats two hours of prose editing later.

  2. Paste a writing sample into the AI as the tone reference

    Find a piece of internal writing that captures your team's voice — a recent blog post, an internal Notion page, a previous JD that worked. Paste it into the AI prompt as the tone reference. Without a sample, the AI defaults to corporate JD voice.

  3. Have the AI expand each section's bullets into prose

    Section by section, prompt the AI: 'Expand these bullets into a paragraph that matches the tone of the writing sample above.' Do not ask it to write the JD from scratch — only to expand from your bullets. The substance stays yours; the AI handles the typing.

  4. Manually rewrite the requirements section

    This is the section AI gets wrong most consistently. It tends to over-list, mirror prior job postings, and pattern-match on resume keywords rather than on actual capability. Write this one by hand, with the rubric in mind.

  5. Run the JD through the strong-candidate test

    Read the finished JD as if you were the ideal candidate. Can you tell within 60 seconds whether this role is right for you? If not, the JD is still too vague — usually because the 30/60/90 plan is not specific enough or the requirements section is over-listed.

  6. Publish and save as a reusable template

    Once the JD is live, save it back as a reusable template in your ATS. The next similar role takes five minutes to post instead of thirty. The first JD is an investment; every subsequent JD in that role family is a copy-edit.

Job descriptions written by AI without structure read like job descriptions written by AI without structure. The fix is not a better prompt; it is a better workflow. This post is the workflow: a five-section scaffold, a bullet-first outline, the AI as an editor rather than a generator, and one test at the end. Thirty minutes per role.

Why does AI write bad job descriptions by default?

The default failure mode is generic prose. A one-line prompt — "write a job description for a senior backend engineer at a Series A startup" — produces a JD that could be your competitor's JD. The model has read tens of thousands of job descriptions and statistically averages them. The output is grammatically clean, structurally complete, and entirely interchangeable. According to research published by the LinkedIn Economic Graph team on job-posting performance, JDs with role-specific language and concrete outcomes outperform generic JDs on both apply rate and quality of applicant — by margins large enough to dominate any tone difference.

The structural fix is to invert the workflow. AI as a generator produces generic content; AI as an editor on bullets you wrote produces content in your team's voice. The bullets carry the substance — the 90-day plan, the actual must-haves, the real comp range. The AI carries only the typing. Two hours becomes 15 minutes; the JD still sounds like your team.

TIP — The one-line prompt trap If your prompt fits in one line, your JD will too. The AI cannot infer specificity it has not been given. Every minute you spend outlining bullets before the AI sees the prompt saves five minutes of editing after.

What does the five-section JD scaffold look like?

The structure that earns the click and the application:

  1. About the role (~75 words). One paragraph. Why does this role exist now? What is the team this person joins, and what is the team trying to do? Avoid culture decks; describe the work.
  2. 30/60/90-day plan (~100 words). What ships in the first 30 days, the first 60, the first 90? This is the hardest section to write and the most predictive of a good hire. Vague plans attract vague candidates.
  3. Requirements (~125 words). Two lists — "must have" and "nice to have." Keep must-haves under 6 items; over-listing is the single biggest source of qualified candidates self-selecting out. Nice-to-haves can be longer.
  4. What we offer (~125 words). Comp range, equity, benefits, location/remote policy, and any specific perks that matter (learning budget, equipment, parental leave). The honest section. Hedging this section signals you have something to hedge.
  5. How we hire (~75 words). Number of rounds, who the candidate will meet, expected total time, decision timeline. Candidates respect a known process more than a fast one.

Total: around 500 words. Sections under 75 words feel insubstantial; sections over 200 lose attention.

JD sectionWho should write itCan AI help?
About the roleFounder or hiring managerYes — bullets to prose
30/60/90 planHiring manager onlyLightly — phrasing only
RequirementsHiring manager + rubricNo — write by hand
What we offerFounder or HR-of-oneYes — bullets to prose
How we hireHiring ownerYes — bullets to prose

The pattern: AI helps most where the section is descriptive prose, and least where the section is a decision. Treat that as a rule.

How should the AI prompt actually look?

A working prompt has three parts:

  1. The tone reference. Paste an internal writing sample. A blog post, a Notion doc, a previous JD that worked. 100 to 300 words is enough. Without this, the AI defaults to corporate JD voice.
  2. The bullets. The bullets for the specific section you want expanded. Do not ask for the whole JD in one prompt.
  3. The instruction. "Expand these bullets into a paragraph that matches the tone of the writing sample above. Do not add information that is not in the bullets. Keep the section under 100 words."

The third part — "do not add information that is not in the bullets" — is the one most teams skip. AI models will helpfully invent details if you let them. The instruction is what keeps the output grounded in the bullets you actually wrote.

Inside an ATS with built-in AI rewriting, this workflow is one click per section: write bullets in the section editor, hit "Enhance with AI," accept or reject. RecruitIn's job-post editor works this way by design — section-by-section, in your voice. See the pricing page for the AI usage limits per plan.

Should the salary range go in the JD?

Yes, and the legal and market pressure to do so is increasing. The state of California's pay-transparency law, New York's, Colorado's, and Washington's all require salary ranges on job postings under specified conditions. The European Union's Pay Transparency Directive imposes similar obligations across EU member states. UK guidance is converging on the same direction.

Even where not required, publishing the range produces a measurable benefit:

  • Higher-quality applicants. Candidates self-select against ranges that do not match their target.
  • Lower drop-off between application and offer. The comp conversation happens before the application, not at offer stage.
  • Better employer-brand signal. Hedging the range reads as hedging the role.

The number you publish must be the number you would actually offer. Publishing a 30-percent-wider band than the team will actually pay is worse than publishing nothing.

What never to delegate to AI

Three sections, with one rule each.

The requirements list. AI tends to over-list and to pattern-match on prior similar roles. Both behaviours import bias from the model's training data into your hiring funnel. Write the requirements by hand, against the rubric. Six must-haves or fewer. Anything past six is signalling that you do not know what is essential.

The 30/60/90-day plan. AI cannot know what your team is trying to ship in Q3. The plan is the hiring brief; if you cannot write it, the role is not ready to post. Use AI to tighten the phrasing of a plan you have written; do not use AI to invent the plan.

The comp range and equity numbers. These are decisions, not text. Calibrate them against your equity grant table and the market before you write the JD. Asking AI to suggest a comp range produces a hallucination at worst and an average at best — neither is what you should publish.

"The job description is the contract you are offering the candidate before the contract you are offering the candidate. Both have to be honest."

— Collin, Founder, RecruitIn

How do you test the JD before publishing?

One test. Read the finished JD as if you were the ideal candidate. Can you answer three questions within 60 seconds?

  1. What will I actually be doing in the first 90 days?
  2. What does it pay?
  3. How do I get to the offer?

If you cannot answer all three, the JD is still too vague. Tighten the 30/60/90 plan, publish the comp range, name the interview process. Most JD weakness is vagueness, not bad prose — and the strong-candidate test surfaces vagueness in 60 seconds.

Closing thought

AI-written job descriptions are the kind of thing that look like a 10x productivity gain on the first try and a 0.5x productivity gain on the third. The 10x is real if the workflow is right: bullets first, AI second, manual hand-write on the sections that are decisions. The 0.5x is what happens when the team accepts the AI's first draft and spends the next two weeks discovering it does not match how anyone actually talks.

To try this workflow inside a real product, create a free RecruitIn workspace — the job-post editor has section-by-section AI rewriting built in, two enhancements per day on the free tier. To plan when to upgrade to the higher AI limit, read free ATS vs paid ATS. And if you are still picking which ATS to use, start with the buyer's guide to free and affordable ATS. Pricing details on the pricing page.

On this page

Hire smarter. Start free.

Free forever plan. No credit card. Set up your first AI-screened pipeline before this article finishes loading.

Frequently asked

What is the right structure for a modern job description?

Five sections, in this order: a one-paragraph 'about the role' summary; a 30/60/90-day plan stating what the hire ships in their first three months; a requirements list separated into 'must have' and 'nice to have'; a 'what we offer' section covering compensation range, equity, benefits, and remote/hybrid policy; and a 'how we hire' section that previews the interview process. Any section longer than 200 words is too long.

Should I publish the salary range in the job description?

Yes. The law increasingly requires it — multiple U.S. states (California, Colorado, New York, Washington, others) have pay-transparency rules, the European Union's Pay Transparency Directive is in force, and UK guidance is moving the same direction. Even where not legally required, publishing the range produces higher-quality applicants and lower drop-off between application and offer. The number you publish must be the range you would actually offer.

Can AI write the whole job description if I give it a great prompt?

The 'about the role' and 'what we offer' sections, yes. The 30/60/90-day plan, the requirements list, and the 'how we hire' section, no. Those three are decisions, not text. AI is a typing accelerator on the descriptive prose, and it should not make the underlying hiring decisions.

How long should a job description be?

400 to 700 words total. Shorter and the candidate cannot tell whether the role is right for them; longer and qualified candidates start skimming and missing important context. The sweet spot in 2026 is around 500 words, with clear section headers and short paragraphs — most job-description traffic now lands on mobile, where wall-of-text content is abandoned within seconds.

What is the biggest mistake teams make when using AI to write JDs?

Treating AI as a JD generator instead of a JD editor. Teams that paste in a one-line prompt and accept the AI's draft end up with generic, keyword-stuffed posts that read like every other JD on the same job board. Teams that outline the JD themselves, then use AI to tighten and rewrite, end up with posts in their own voice. The order matters.

Keep reading