← All guides

For employers9 min read

How to write a job description

It has to convince a person to apply and carry the fields that make the role eligible for Google's job results. Most advice covers the first and ignores the second.

WP Career Board
Senior Product DesignerAcme Inc · Remote · $120k-$150k
Apply
Frontend EngineerPayFlow · Remote · $130k-$160k
Apply
Content MarketerNorthwind · Remote · $70k-$90k
Apply

A job description has two audiences and most advice only addresses one. A person decides from it whether to apply. A search engine decides from it whether your role is eligible to appear in job results at all. Write for both in the same pass and you get more applications from better-matched people; write for only the first and your role may never be seen outside the people already on your site.

If you would rather start from something and edit it, we keep job description templates by role, each with the structured fields noted.

Start with what the person actually does

Open with the work, not the company history. The first two sentences should let somebody decide whether this is their job. Everything about your founding year, your values and your growth can come later, after they care.

A useful test: if you deleted your company name from the advert, would a candidate still be able to tell what the role is? If not, the description is about you rather than about the job.

The structure that works

  • Title. The name the role is searched by, not the internal grade. “Customer Support Specialist” and not “Client Delight Associate II”.
  • One paragraph of context. Who this person works with and what the team is trying to do.
  • What they will do. Five to eight duties, written as actions, in the order they would actually occupy the week.
  • Must-haves. Short. Genuinely required. Every item is a filter and some filters cut unevenly.
  • Nice-to-haves. Clearly separated, so people know they can apply without them.
  • Pay and location. A range, and whether it is remote, hybrid or on site.
  • How to apply and by when. Including how long you will take to reply.

Write the advert, not the internal document

Most organisations already have a job description in the HR sense: duties, reporting line, grading. It exists for internal reasons and it reads like it.

Publishing that document as the advert is the most common mistake in hiring, and it costs applications from exactly the people who had other options. Write the advert from the internal description, keeping the substance and losing the register.

The part nobody tells you: the description is also data

Google’s job results are built from structured data on the page. Fill in the fields and the role becomes eligible; leave them out and it does not, regardless of how well the advert reads.

The fields that matter are ordinary ones you already know:

FieldWhy it matters
TitleWhat the role is searched by
DescriptionThe advert itself
Hiring organisationWho is hiring
Location, or remoteFiltering is mostly geographic
Date postedFreshness
Valid throughAn expiry, so filled roles stop appearing
Employment typeFull time, part time, contract
Salary rangeIncreasingly required by law, and a strong filter

On a plain WordPress page none of this exists unless somebody writes the JSON-LD by hand for every role. A job board plugin generates it from the fields you filled in, which is most of the argument for using one.

Say what it pays

Pay transparency rules now cover a growing list of US states and the EU is moving the same way, so a range is becoming the default rather than a choice.

It is also the most effective single line in the advert. A range removes the applications that were never going to accept your offer, and it is one of the few things a candidate can use to decide quickly. Publishing it costs you a conversation you would have had anyway, three weeks later.

Before you publish

  • Read the must-have list and cut it until only the genuine ones remain.
  • Check the first two sentences describe the work.
  • Confirm a range is present, and an expiry date.
  • Confirm the structured fields are filled, not just the prose.
  • Send it to somebody who does that job and ask whether they would apply.

Doing it on your own site

If your careers page runs on WordPress, WP Career Board turns the fields you fill in into the JobPosting markup Google reads, in the free version, and defers to Yoast or RankMath when either is active so you do not end up with two sets fighting. Applications land in a dashboard on your own site rather than an inbox.

When the replies start arriving faster than you can read them, AI screening ranks them so you read the right ones first.

Pay transparency and structured data requirements both change. Written September 2026.

Common questions

How long should a job description be?

Long enough to answer what the person does all day, who they work with, what it pays and where it is. That is usually 300 to 700 words. Under 200 and candidates cannot tell whether to apply, so you get volume instead of fit. Over about 900 and the requirements list has started doing the work of a filter, badly.

Should I include the salary?

Yes, and increasingly you have no choice. Several US states and EU rules now require pay ranges in adverts, and a range is also the single most effective thing you can add: it stops the applications that were never going to accept the offer. It is a structured field in Google's job results too, so a role with a range can show one.

What is the difference between a job description and a job advert?

The description is the internal document: duties, reporting line, requirements, often kept for grading and reviews. The advert is what a candidate reads. Most teams publish the internal document by accident, which is why so many adverts read like a form. Write the advert from the description, not instead of it.

What fields does Google need to show my job?

Google's structured data guidance asks for a title, a description, the hiring organisation, the location, and the date posted, with a valid-through date, employment type and salary strongly recommended. A plain page has none of that unless somebody hand-writes the JSON-LD. A job board plugin generates it from the fields you filled in.

Should I list requirements as must-have or nice-to-have?

Split them, and keep the must-have list genuinely short. Long requirement lists filter out people who could do the job, and they do it before you ever see the application. Plenty of capable candidates read fifteen must-haves, count two they lack, and close the tab. A five-item list gets you a wider pool, and you can still prefer the extras when you are choosing.

Can AI write it for me?

It can write a competent first draft from the role, the level and a few specifics, and that is a genuine saving on the blank page. What it cannot do is know what your team is actually like or why the last person left. Use it for the structure and the boilerplate, then put the honest parts in yourself, because those are the parts that make somebody apply.

Build it on your own WordPress.

WP Career Board is free to start and self-hosted. Run the 5-minute wizard and put this guide into practice.