If you already run a WordPress site, you don’t need a separate careers platform to post a single job opening. WordPress can publish it in a few minutes, no new account and no new login for you or your applicants. The real question isn’t whether WordPress can do it. It’s whether a plain post is enough, or whether you’re past the point where you need something built for job listings specifically.
Both answers are legitimate, and which one is right depends almost entirely on how often you hire, not on how polished you want the page to look.
Route one: post it as a regular page or post
The fastest path is the one you already know. Open the editor, write the role, publish. There’s nothing wrong with this for a single opening or an occasional hire.
A workable job post covers a short list of things: what the role actually is day to day, who it reports to, what’s required versus nice-to-have, the general compensation range or a note that it’s negotiable, and clear instructions for how to apply along with a deadline. Put the how-to-apply and deadline near the top, not buried at the bottom after three paragraphs of company history.
This approach breaks down in a few predictable ways once you’re hiring more than one role at a time:
- No structured fields. Everything lives in free-text paragraphs, so there’s no consistent way to filter by location or employment type, and no way for a visitor to browse “open roles” as a list instead of hunting through your blog archive.
- No applications inbox. Applicants email you a resume, or fill out a generic contact form that dumps into the same inbox as spam and support requests. Nothing tracks who applied or what stage they’re at.
- No automatic expiry. The post stays live until someone remembers to unpublish it. A stale “hiring now” page for a role you filled two months ago costs you credibility with candidates and looks sloppy to anyone checking whether you’re still actively growing.
- No JobPosting structured data. Google’s job search results run on schema markup, not on how well-written your post is. A plain WordPress post won’t show up there unless someone hand-codes JSON-LD into it, which almost nobody does for a single listing.
None of that matters much for one role filled once. It matters a lot at four or five open roles running at once, or if you hire on any kind of regular cadence.
What a job post actually needs versus what’s just filler
Job posts get bloated fast, usually with the same boilerplate paragraphs about “our mission” and “our values” repeated across every listing. Here’s a rough guide to what earns its place.
| Belongs in the post | Usually wastes space |
|---|---|
| Role title and department | Company history paragraph |
| Location and remote/hybrid/onsite | Stock “why work here” copy repeated on every listing |
| Core responsibilities (5-8 bullets, not 20) | A generic list of “perks” with no specifics |
| Must-have requirements, kept short | Requirements copied wholesale from a template job description |
| Compensation range or a clear note it’s negotiable | Vague phrases like “competitive salary” with no number or range |
| How to apply and the deadline | Multiple conflicting contact methods |
| Application deadline or expiry | An open-ended “ongoing” posting with no end date |
The pattern is simple. Anything specific to this role and this hire earns its place. Anything that’s the same on every listing belongs on your careers or about page instead, linked once rather than pasted into every post.
Route two: use a job board plugin
A job board plugin turns “publish a page” into “publish a listing with fields the rest of the system can use.” Practically, that means:
- Structured fields for location, employment type, salary, and remote status, instead of free text, so listings can be filtered and sorted.
- An applications system built into the site, so candidates apply on-page and you review them from a dashboard rather than an inbox.
- Expiry dates, so a role stops appearing, or gets flagged as closed, automatically instead of sitting there forever.
- JobPosting structured data generated for you, so each listing is eligible for Google’s job search results without you writing schema by hand.
- Categories and search, once you have enough open roles that a single flat list stops being usable.
This is the point where mentioning a specific tool is useful rather than promotional: WP Career Board handles all of the above directly on your existing WordPress install, generating the JobPosting schema automatically and giving applicants a real dashboard instead of an email thread. It’s one option among several, and the mechanics described here (structured fields, applications, schema, expiry) apply whichever plugin you end up choosing.
Why JobPosting structured data actually matters
This is worth being precise about, because it’s easy to either dismiss it or oversell it.
Google Jobs, the job-specific results that show up for searches like “marketing jobs near me,” is built entirely on schema, not on page content quality. A beautifully written listing with no JobPosting markup is invisible to it. A plain, boring listing with correct markup is eligible to appear. The markup needs a handful of required fields done correctly, including a valid validThrough expiry date, or Google can reject the listing or eventually stop trusting your feed altogether.
What it won’t do is guarantee ranking, guarantee clicks, or make a bad job description convert better. It’s a distribution mechanism, not a persuasion one. If you’re posting one role a year, don’t lose sleep over it. If job listings are a repeated part of how you hire, or a repeated part of how your site earns traffic, it’s a real reason to move off a plain post, separate from the applications-tracking argument.
One detail people miss: an expired listing with stale schema is worse than no schema at all. If the markup still says a role is open weeks after you filled it, that’s the kind of mismatch search engines penalize rather than ignore. Whatever route you take, closing a listing on time matters as much as opening it correctly.
What happens after someone applies
This is where the two routes diverge most in practice. With a plain post, an application usually means an email lands in your inbox, mixed in with everything else, with no record of who else applied or where things stand. You’re tracking candidates in your head or a spreadsheet you update inconsistently.
A plugin with an applications system keeps that on the site. Each applicant shows up against the specific listing, and you can move them through stages instead of losing track of who you’ve already reviewed. For a single hire that’s overkill. For a handful of open roles running at once, it’s the difference between knowing where things stand and guessing.
The actual steps, whichever route you pick
Strip away the tooling and posting a job on WordPress comes down to the same handful of moves:
- Write the role first, outside the editor. A plain document is easier to edit than fighting the block editor while you’re still figuring out what the job actually is.
- Fill in the fields your route supports. For a plain post, that’s the body copy. For a plugin, that’s location, employment type, salary, and any category fields it offers.
- Set the deadline or expiry before you publish, not after. It’s the step people forget, and it’s the one that causes stale listings.
- Preview the listing as a visitor would see it, not just in the editor. Structured fields sometimes render oddly until you check the live page.
- Publish, then confirm applications actually reach you. Send a test application if your route supports one. Finding out the apply button was broken a week later is a bad way to lose a candidate.
- Take it down or let it expire on schedule. This is the step both routes skip if you don’t build a reminder into your process.
Which route to take
If you’re filling one role and don’t expect to hire again soon, write a good post following the table above. Set a reminder to take it down once the role is filled, and move on. It’s the right amount of effort for the job.
If you’re already juggling more than a couple of open roles, fielding applications by email, or forgetting to unpublish filled positions, that’s the actual signal to move to a plugin, not a fixed number of jobs. The full setup walkthrough, from installing a plugin to publishing your first structured listing, is covered in how to create a job board on WordPress. If you’re not sure which side of that line you’re on, signs your job board has outgrown its plugin covers the same trade-off from the other direction. And if you want the shortest path to a working setup, WP Career Board is free to install, with pricing covering what the paid tier adds once you’re monetizing listings.