Back to Guides
HR

Writing Job Descriptions With ChatGPT That Attract the Right Candidates


A job posting that lists "5+ years experience," "strong communication skills," and "self-starter mentality" reads exactly like every other posting for the same role at every other company. It doesn't repel bad-fit applicants and it doesn't excite good-fit ones, because it doesn't actually describe the job. Ask ChatGPT to "write a job description for a marketing coordinator" and that's roughly what you'll get by default, because a bare request has nothing to work with except the most generic version of the role title. If you're new to using ChatGPT for HR writing generally, the Complete Beginner's Guide to ChatGPT covers the fundamentals this article builds on.

The core mistake: requirements instead of the actual day-to-day

Most job description prompts, and most job descriptions period, are built around a requirements list: degree, years of experience, tools you should already know. That list filters candidates on credentials, not on whether they'd actually be good at or interested in the job. The fix is describing what the person will actually spend their week doing, in specific enough terms that a candidate can picture themselves doing it and self-select in or out honestly.

Before and after: a marketing coordinator role at a 15-person company

Weak prompt: "Write a job description for a marketing coordinator at a small startup."

That produces a posting close to: "We are seeking a motivated Marketing Coordinator to join our growing team. Responsibilities include assisting with marketing campaigns, managing social media, and supporting the marketing team with various tasks. Requirements: Bachelor's degree in Marketing or related field, 2+ years of experience, excellent communication skills, proficiency in Microsoft Office." This could describe the same role at five hundred different companies, and it gives a candidate almost nothing to evaluate fit against.

Better prompt, with one real detail added: "Write a job posting for a Marketing Coordinator at our 15-person startup. This person will handle our social media and write our email newsletters."

That output is a step up, but only a step: "We're looking for a Marketing Coordinator to join our fast-growing team. You'll manage our social media presence and write our email newsletters. The ideal candidate is a self-starter with strong writing skills and 2+ years of marketing experience. Bachelor's degree preferred." It now says what the role actually touches (social, newsletters), which is real progress over the weak version. But it's still built around a credentials list at the end, still uses filler ("fast-growing team," "self-starter") that carries no real information, and it doesn't yet tell a candidate what a week actually looks like, what the role explicitly isn't, or what a good fit versus a poor one looks like.

Excellent prompt, with the real day-to-day and constraints included:

Prompt

Write a job posting for a Marketing Coordinator at our 15-person company. Be specific and skip generic filler like "fast-paced environment" or "wear many hats."

Actual day-to-day: this person will run our email newsletter end to end (writing, scheduling, tracking open rates), manage our Instagram and LinkedIn posting calendar, coordinate with our part-time designer to get assets made, and pull together a monthly one-page report on what's working. They will NOT be doing paid ad management, that's handled by an agency we work with. They'll report to me (Head of Marketing, one other person on the team) and will have real ownership over the newsletter specifically within their first month.

Good fit: someone who's run a newsletter or social calendar before, even informally (a side project, a club, a previous small-team role), comfortable writing in a specific brand voice rather than needing heavy direction on every post, and okay with a role that's still being defined as we grow (no established playbook yet for a lot of this).

Not a good fit: someone who wants a large team to manage, or who needs detailed processes already in place before they can do good work.

Include a realistic salary range: $52,000-$62,000, plus our benefits (health insurance, unlimited PTO policy, fully remote). End with what to actually send us (a portfolio or 2-3 writing samples, not just a resume).

The resulting posting reads as a description of one real job at one real company, not a template. Here's a representative excerpt of what it actually produces:

ChatGPT

An excerpt of the resulting posting, illustrated

Marketing Coordinator, 15-person team

You'll own our newsletter from first draft to send, and you'll be the one deciding what our Instagram and LinkedIn calendar looks like month to month. On a typical week, that means writing and scheduling newsletter sends, coordinating with our part-time designer on assets, and pulling together a one-page report on what's actually working.

This role does not include paid ad management. That's handled by an outside agency, so if running ad campaigns is what you want to be doing, this isn't that role.

You'll report directly to our Head of Marketing (a two-person team for now), with real ownership over the newsletter within your first month.

Good fit: you've run a newsletter or social calendar before, even informally, and you're comfortable writing in a specific brand voice without heavy direction on every post. Not a good fit: you want a large team to manage, or you need an established playbook before you can do good work, since a lot of ours is still being written as we grow.

Salary: $52,000 to $62,000. Benefits: health insurance, unlimited PTO, fully remote. To apply, send 2 to 3 writing samples or a portfolio, not just a resume.

Compare that opening line to the weak version's "assisting with marketing campaigns." One is a category, the other is a sentence a real candidate can picture themselves doing tomorrow. The posting also states plainly what the role doesn't include (paid ads), which does real work: it prevents an applicant who specifically wants to run ad campaigns from applying and getting disappointed two interviews in. And the "not a good fit" framing does something a plain requirements list can't: it tells a candidate who needs a lot of structure that this isn't that role, honestly, before they've invested time applying.

Why specificity outperforms a longer requirements list

A requirements list filters on credentials: degree, years, named tools. None of that actually predicts whether someone will be good at or happy in the role, it only predicts whether they can spell it on a resume. Describing the actual week does something different: it lets a candidate self-select based on whether the day-to-day sounds like work they'd want, which is a far stronger fit signal than a credentials match. The "not a good fit" section pushes that further by filtering out people before the application even happens, instead of during three rounds of interviews once the mismatch is already expensive to unwind for both sides.

Tip

The "not a good fit" section is doing more filtering work than any requirement in the posting. Being honest that the role is still loosely defined, or genuinely light on process, repels people who'd be unhappy in that environment far more effectively than any years-of-experience cutoff.

What to always feed ChatGPT for this to work

  • The actual weekly tasks, described specifically enough that a candidate can picture doing them, not category labels like "manage social media"

  • What the role explicitly does NOT include, especially if the title sounds broader than the actual scope

  • Who they report to and how big the team actually is, stated plainly rather than implied by a vague "growing team" line

  • A real salary range if you're willing to share one, and what a genuinely good-fit candidate looks like versus a poor one

Common mistakes with AI-drafted postings

Common mistake

Asking for a list of requirements and treating that as the whole posting. A requirements list filters resumes on paper credentials. It says nothing about what the person will actually do, which is what most candidates genuinely want to know before they apply.

Letting ChatGPT's default enthusiastic tone stand unedited: phrases like "exciting opportunity," "dynamic team," and "wear many hats" show up constantly in unprompted drafts because they're common in the training data of job postings generally. Explicitly telling it to skip that kind of filler, the way the excellent prompt above does, produces something that reads like a person wrote it.

Reusing one posting's tone and structure for a completely different role without adjusting it. A senior engineering posting and an entry-level customer support posting shouldn't sound like they were generated from the same template with only the title swapped, even if the underlying prompt structure (day-to-day, explicit non-scope, good fit versus poor fit) is the same for both.

A quick pass before it goes live

Once you have a draft, read it as if you were the exact person you described as a good fit. Would you understand what the job actually is? Would you know within thirty seconds whether it's for you? If the answer to either is no, the fix usually isn't rewriting the prose, it's going back and adding one more specific, real detail about what the week actually looks like.

Related Guides