Guides
A step-by-step guide to setting up your careers page and job postings so Google finds them, shows them in the jobs box, and sends qualified applicants straight to you - without job-board fees.

Key takeaways
Create a careers page running on your own domain (e.g. careers.yourcompany.com or yourcompany.com/careers). Your own domain builds ranking over time that you own - unlike a role on a job board.
Make sure every published role ships JSON-LD of type JobPosting with all required fields: title, description, date, location, organisation, employment type. Without this markup the role won't appear in Google for Jobs.
Give each role its own URL with a readable slug from the role title. Keep the URL stable and redirect it cleanly when closing instead of leaving a 404.
Name the role the way applicants would type it into Google - real job title plus location, no marketing slogans. Put tasks and location in the first two sentences of the description.
Register the careers page in Google Search Console, use the Rich Results Test to confirm the JobPosting is recognised, and watch impressions and clicks over four to eight weeks.
Job boards cost money per role and per duration, and they deliver applicants scrolling between twenty other ads. Your own careers page costs nothing per role, ranks over time for your company name plus role title, and brings applicants who searched for you actively - already a bit more qualified. (The linked article explains how to honestly measure the source ROI of your channels.)
The key is Google for Jobs: the jobs box Google shows directly in search results above the organic hits. It pulls its content from the JobPosting markup on your page, not from job boards. If your roles are correctly tagged, you appear there for free - alongside or ahead of the big portals.
Google for Jobs only understands a role if it's marked up as structured data in JSON-LD of type JobPosting. That's not a marketing gimmick but a technical must: no markup, no jobs box. Required fields include the title, description, posting date, job location and hiring organisation.
Good news for KI BMS users: every publicly posted role gets correct JobPosting markup shipped automatically. You neither hand-write it nor maintain a plugin - the markup is generated server-side from the role fields, including date, location, employment type and validity. If you run a self-built careers page, you have to keep that markup clean yourself.
Markup without manual work
KI BMS ships correct JobPosting JSON-LD automatically for every publicly posted role, with date, location, employment type and validity. You focus on a good title and a clear description - the page handles the technical part.
The required fields are what gets a role into the jobs box at all. The recommended fields then decide whether it's actually clicked - and whether it stays visible at all. This is where self-built careers pages lose the most ground - and exactly the fields a good applicant tracking system ships automatically.
A filled role lingering in the jobs box annoys applicants and can trigger a manual action from Google. There are exactly three permitted ways to remove a role: set validThrough to a past date, return the URL with HTTP 404 or 410, or take the JobPosting markup off the page. Cleanly redirecting a friendly URL on close still helps normal SEO - but for Google for Jobs what counts is that the role is recognisable as ended.
For speed there's a lever many miss: for jobs, Google recommends the Indexing API over a sitemap alone. It reports new and removed roles directly and leads to much faster crawling - often within hours instead of days. The XML sitemap with a correct lastmod date stays useful as broad coverage. In KI BMS the markup, expiry date and clean removal are part of the role lifecycle, so you never have to think about the mechanics.
A role needs its own permanently reachable URL with a readable slug - e.g. /careers/senior-backend-engineer rather than /jobs?id=8472. Friendly URLs rank better, are shareable, and communicate the topic in the link itself. Important: the URL must stay stable. When you close a role, redirect the old URL cleanly instead of leaving a 404 - otherwise you lose the ranking you built. How to write a job ad that attracts qualified applications from the start is a separate step before this.
People search for job titles, not marketing slogans. 'Senior Backend Engineer (f/m/d)' ranks for the real query; 'Join our code-ninja team' ranks for nothing. Write the title the way an applicant would type the job into Google, and add the location if it's relevant.
The description should use the first two sentences to clearly state tasks and location - that's the snippet Google shows in the jobs box. Then follow with requirements, benefits and the application call-to-action. Avoid images or PDFs for the role content: Google reads text, not graphics.
SEO isn't a switch but a trajectory. Register your careers page in Google Search Console and watch over four to eight weeks which queries earn your roles impressions and clicks. If applications via the 'organic search' channel rise, the markup is working. If it stays zero, use the Rich Results Test to check whether Google recognises the JobPosting at all.
FAQ
Free plan, no credit card. We host in Germany. You can export and delete everything self-serve.

Written by
Co-Founder + CEO
Julia is one of the Co-Founders. She handles design, development, product direction, and most of the support replies that arrive in the morning.
Read next
Writing a job ad that brings applications - in 30 minutes
Six building blocks + AGG wording defaults + the 'salary in or out' question.
Read
Publishing your first job with KI BMS - online in 8 minutes
Step-by-step from empty account to public role with application form and KI pre-sorting. No magic, no setup day.
Read
Improving candidate experience: why every rejection shapes your employer brand
Response time, transparency, fair rejections and the small moments that decide an accept or decline.
Read