Most careers pages fail for the same three reasons: they say nothing specific, they bury the open roles, and they hand the applicant a ten-minute form. Good careers page design is not about winning a design award. It is about turning a curious visitor into a qualified applicant in under two minutes, and making sure your roles show up where candidates actually search.
This guide breaks down the sections a careers page needs, the copy that goes inside each one, the layout that works on mobile, and the structured data that lets your jobs appear in Google’s job search results. It is written for small business and agency sites, so nothing here needs a six-figure recruitment marketing budget.
What a careers page is actually for
Before layout, get clear on the job the page has to do. A careers page has four visitors, and each one needs something different:
- The active applicant who already wants a job with you and just needs the list and the form.
- The passive candidate who found you through a job listing and is checking whether you are a real, decent company.
- The referral sent by a friend who works there, looking for the role their friend mentioned.
- The search engine, which needs machine-readable job data to index and surface your roles.
A page that only serves the first visitor becomes a bare list of links. A page that only serves the second becomes a brand film with no jobs on it. You need both, in the right order.

The anatomy of a high-converting careers page
| Section | What it does | Recommended length |
|---|---|---|
| 1. Hero | States who you are and links straight to open roles | Headline + 1 sentence + 1 button |
| 2. Culture blurb | Gives candidates a reason to self-select in or out | 80 to 150 words |
| 3. Benefits grid | Answers “what do I get” at a glance | 6 to 9 tiles |
| 4. Open roles list | The conversion engine of the page | One row per role, no pagination under 25 roles |
| 5. Hiring process | Removes anxiety, reduces drop-off before applying | 3 to 5 steps with timing |
| 6. Proof | Team quotes, photos, review scores | 2 to 3 short quotes |
| 7. Application form | Captures the applicant with minimum friction | 5 to 7 fields |
| 8. Talent pool fallback | Catches interest when nothing is open | Email + role interest, 2 fields |
Section 1: The hero
The hero is where most careers pages waste their best real estate on a stock photo of people high-fiving. Keep it functional. The point is broken down further in this analysis.
Layout
- Left-aligned text block, image or short muted video on the right (or a full-width photo of your actual team behind a dark overlay).
- One primary button: View open roles, anchored to the jobs list further down the page.
- A small counter is useful and honest: “7 open roles across 3 teams”.
- On mobile, stack text above the image and keep the button above the fold.
Copy
Write the headline as a statement about the work, not about the company’s ambition. Compare:
- Weak: “Join our journey to change the world.”
- Better: “Build software for 400 independent pharmacies, in a team of nine.”
Specific numbers do two things: they filter out mismatched applicants and they signal that a real human wrote the page.
Section 2: The culture blurb
This is the section that separates a careers page from a job board listing. It should be short, concrete, and slightly uncomfortable to write, because it should say something a competitor cannot copy and paste.
What to include
- How you work: meeting load, remote or hybrid policy with actual days, async or synchronous, tooling.
- How decisions get made: who signs off on what, how much autonomy a new hire really gets.
- Who thrives here: one sentence describing the person who does well, and one describing who does not.
That last point is the highest-value sentence on the whole page. “If you want a structured onboarding programme and a defined career ladder, we are probably too small for you right now” will lose you applicants you did not want and win you trust with the ones you did. Career page design: How to do it right covers this in more depth.
Layout tip
Break the blurb into two or three short paragraphs of 40 words or fewer, or use a two-column layout with a heading on the left and text on the right. Walls of text in this section get skipped on mobile.

Section 3: The benefits grid
Candidates scan this. Design for scanning.
Layout rules
- Three columns on desktop, two on tablet, one on mobile. Equal-height cards.
- Icon or small illustration, a 3 to 5 word label in bold, then one line of detail underneath.
- Six to nine tiles. Fewer looks thin, more looks like padding.
- Never use an icon font that fails to load. Inline SVG is safer and faster.
Copy rules
Quantify everything you can. “Generous holiday” means nothing. “28 days plus public holidays, plus the week between Christmas and New Year” means something. Same for learning budgets, equipment allowances, pension contributions and parental leave.
| Vague | Specific |
|---|---|
| Flexible working | Core hours 10:00 to 15:00, the rest is yours |
| Great equipment | Laptop of your choice plus a 400 EUR home desk budget |
| Room to grow | 1,500 EUR per year for courses and conferences, no approval needed under 300 EUR |
| Competitive salary | Published band on every job listing |
Section 4: The open roles list
This is where the page earns its keep. Treat it as a product listing, not a footer link dump.
Structure
- Group by department if you have more than six roles. Otherwise a single flat list is faster to scan.
- Each row shows: job title, department, location, employment type, and salary band if you publish one.
- The whole row is clickable, not just the title. Minimum touch target of 44 pixels in height.
- Filters only if you have 15+ roles. Below that, filters add friction rather than remove it.
- Every role gets its own indexable URL, for example
/careers/senior-frontend-developer. Do not open roles in a modal that has no URL, and do not render the list only with client-side JavaScript that search engines and screen readers struggle with. Render the list server side.
Do not use PDFs
PDF job descriptions cannot be indexed properly for job search, are painful on mobile, and cannot be applied to directly. Put the full description on the page in HTML.
The empty state matters
If you have no vacancies, do not delete the page or show a blank list. Show a short message plus a two-field talent pool form: email address and area of interest. Those addresses are the cheapest pipeline you will ever build.
Section 5: The job detail page
Each role page should follow the same repeatable template so candidates learn the pattern:
- Title, location, contract type, salary band, and an Apply button pinned at the top.
- Two-sentence summary of the role.
- What you will do: 5 to 7 bullets, each starting with a verb.
- What we are looking for: split into “essential” and “nice to have”. Keep essentials to five items maximum. Long requirement lists disproportionately discourage strong candidates from underrepresented groups.
- Salary and benefits summary.
- Hiring process with timings.
- Apply button repeated at the bottom, plus a sticky mobile apply bar.

Section 6: The application form, and how to cut the friction
Every extra field costs you applicants. The goal is to collect just enough to make a first-round decision, then gather the rest later from the people you actually want to talk to.
Keep, cut or defer
| Field | Verdict | Why |
|---|---|---|
| Name, email | Keep | Non-negotiable |
| CV or resume upload | Keep | Accept PDF, DOCX and files from cloud drives |
| Portfolio or profile URL | Keep, optional | Often more useful than the CV |
| One open question | Keep | Replaces the cover letter and filters out mass applications |
| Account creation | Cut | The single biggest cause of abandonment |
| Re-typing your whole CV | Cut | You already have the file |
| Address, date of birth | Defer | Collect at offer stage, and only what you need |
| Diversity questions | Optional, separated | Anonymous, clearly optional, explained |
Form design details that move the numbers
- One column only. Multi-column forms increase errors and completion time.
- Labels above fields, never placeholder-only labels that disappear when typing.
- Correct input types and autocomplete attributes so mobile keyboards and browser autofill work.
- Inline validation on blur, with error text next to the field, not a red banner at the top.
- Never clear the form on error. If the upload fails, keep every other answer intact.
- Show file constraints before upload: accepted formats and maximum size.
- State the time cost: “Takes about 3 minutes” above the first field.
- Use a progress indicator if the form is split across steps, and never use more than two steps.
- Confirmation page with real information: what happens next, who reads it, when they will hear back. Then send the same thing by email.
Getting your roles into Google’s job search results
This is the part inspiration galleries never cover, and it is where a well-built careers page beats a prettier one. Google can display job postings directly in search results, but only if it can read structured data on your job pages.
What you need
- A separate, crawlable URL for every job, returning a normal 200 status and rendered server side.
- JobPosting structured data in JSON-LD on each job page.
- The job description text visible on the page must match the description in your structured data.
- A sitemap that includes job URLs, submitted in Google Search Console.
- Remove or expire postings when the role closes. Use
validThrough, and return a 404 or 410, or mark the role as closed on the page. Stale listings are the most common reason a site loses eligibility.
Minimum JSON-LD example
Place this inside a script tag with the type set to application/ld+json in the head of each job page:
{
"@context": "https://schema.org/",
"@type": "JobPosting",
"title": "Senior Frontend Developer",
"description": "<p>Full HTML job description here.</p>",
"identifier": {
"@type": "PropertyValue",
"name": "Your Company",
"value": "FE-114"
},
"datePosted": "2026-09-01",
"validThrough": "2026-11-01T23:59",
"employmentType": "FULL_TIME",
"hiringOrganization": {
"@type": "Organization",
"name": "Your Company",
"sameAs": "https://www.yourcompany.com",
"logo": "https://www.yourcompany.com/logo.png"
},
"jobLocation": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"streetAddress": "12 Rue Example",
"addressLocality": "Paris",
"postalCode": "75002",
"addressCountry": "FR"
}
},
"baseSalary": {
"@type": "MonetaryAmount",
"currency": "EUR",
"value": {
"@type": "QuantitativeValue",
"minValue": 55000,
"maxValue": 70000,
"unitText": "YEAR"
}
},
"directApply": true
}
Notes on the fields
- title should be the job title only. No department, no location, no “urgent hiring” text.
- description should be the complete description in HTML, including responsibilities and requirements.
- For fully remote roles, use
jobLocationTypeset to TELECOMMUTE and addapplicantLocationRequirementswith the countries you can hire in. - baseSalary is optional for Google but increasingly expected by candidates, and mandatory under pay transparency rules in a growing number of jurisdictions. Check your local rules before publishing.
- Validate every job page with Google’s Rich Results Test before launch, then monitor the job posting report in Search Console.
If your site runs on Node and Express, generate the JSON-LD from the same data object that renders the visible page. One source of truth means the structured data can never drift out of sync with the copy, which is the failure mode that gets pages disqualified.
Mobile, speed and accessibility
A large share of first visits to careers pages happen on a phone, often during a commute or a lunch break. If your apply flow only works on desktop, you lose those people permanently. This reference is the one worth keeping handy.
- Test the full apply flow on a real phone, including the file picker and any cloud drive integrations.
- Keep the job page under 1 MB. Compress team photos and lazy-load anything below the fold.
- Ensure every form field has a programmatically associated label and a visible focus state.
- Check colour contrast on your benefits tiles, which are usually the worst offender.
- Make the whole flow keyboard-operable, from job list to submitted form.
- Add an alternative contact route: an email address for candidates who cannot use the form for any reason.

What to measure
| Metric | What it tells you | If it looks bad, fix this |
|---|---|---|
| Careers page to job page click rate | Whether your roles are findable and appealing | Move the roles list higher, add salary bands |
| Job page to apply-start rate | Whether the description sells the role | Shorten requirements, add process and pay |
| Apply-start to submit rate | Form friction, the single most fixable number | Cut fields, remove account creation, fix uploads |
| Mobile vs desktop submit rate | Whether mobile is broken | Test file upload and sticky apply bar |
| Qualified applicant ratio | Whether the page filters correctly | Sharpen the culture blurb and the open question |
| Search Console job impressions | Whether structured data is working | Fix validation errors, expire old roles |
Seven mistakes that quietly kill applications
- Sending candidates off-site immediately to a generic ATS domain with a different design and no branding.
- Hiding the careers link in the footer only. Add it to the main navigation or the About menu.
- Job titles nobody searches for. “Growth Ninja” gets zero search volume. “Marketing Manager” gets thousands.
- Publishing roles with no salary while competitors publish theirs.
- Leaving closed roles live, which wastes candidate time and damages your search eligibility.
- Stock photography of teams that are obviously not yours. Three honest phone photos beat one polished lie.
- No response after submission. An automated confirmation with a realistic timeline is the minimum.
Launch checklist
- Careers link present in the main navigation.
- Hero states what you do and links to the roles list.
- Culture blurb includes at least one thing a competitor would not say.
- Benefits grid uses numbers, not adjectives.
- Every role has its own server-rendered URL.
- Every job page has valid JobPosting JSON-LD, tested in the Rich Results Test.
- Salary band published, or a documented reason why not.
- Application form has 7 fields or fewer and needs no account.
- Full flow tested on a phone, including CV upload.
- Confirmation page and confirmation email both explain what happens next.
- Empty state and talent pool form ready for when roles close.
- Analytics events set on job click, apply start and apply submit.
FAQ
How long should a careers page be?
Long enough to answer the questions a candidate would ask in a first phone call, and no longer. For a small business, that is typically one scroll of culture and benefits, then the roles list. The depth belongs on the individual job pages.
Do I need an applicant tracking system?
Not to start. A well-built form that emails a shared inbox and stores submissions works fine up to roughly 20 hires a year. What matters is that the applicant never has to create an account or leave your domain mid-flow. If you do use an ATS, embed it or style it so the transition is invisible.
How do I get my jobs to appear in Google’s job listings?
Publish each role on its own indexable page, add valid JobPosting structured data in JSON-LD, include the job URLs in your sitemap, submit the sitemap in Google Search Console, and remove postings as soon as the role closes. Then monitor the job posting report in Search Console for errors.
Should I publish salary ranges?
Yes in most cases. Listings with pay information attract more applications and reduce time wasted on mismatched expectations. Pay transparency is also legally required in a growing number of regions, so check your obligations before publishing or omitting a band.
What should the careers page do when nothing is open?
Keep the page live, keep the culture and benefits content, replace the roles list with a short honest message, and add a two-field talent pool signup. Deleting the page loses your accumulated search authority and any inbound interest.
How many clicks should it take to apply?
Two from the careers page: one to open the role, one to reach the form. Anything more and you will see measurable drop-off at each additional step.
Careers page or third-party job board?
Both, but the careers page is the asset you own. Job boards bring volume, your careers page converts that volume and gives candidates the context that makes them choose you over a competitor offering the same salary.
Start with the form, then the copy
If you only have one afternoon to improve your careers page design, spend it on two things: cut the application form down to the essentials and add real numbers to your culture and benefits copy. Those two changes usually move applicant volume and applicant quality more than a complete visual redesign. Then add the structured data, and let Google bring you the candidates who were never going to find your site on their own.
