On this page
- What is an ATS, in plain words?
- What are the three ways to connect a careers page to an ATS?
- 1. Embed the ATS's widget or iframe
- 2. Sync jobs through a feed or API onto your own pages
- 3. Link out to the ATS's hosted job board
- Embed, API sync or link out: how do they compare?
- Why should every job live as a real page on your own website?
- What does Google need to show your jobs in job search?
- How short should the mobile apply be?
- Which option should a small business pick?
- Step 1: count your jobs
- Step 2: check what your ATS plan allows
- Step 3: decide where applications go
- Questions people ask
- Can Google index jobs in an iframe embed?
- Does my ATS already post to Google for Jobs?
- Do I need a developer to connect my careers page to an ATS?
- How much does a recruitment website with ATS integration cost?
You pay for an applicant tracking system, your recruiters live in it, and your website still has a careers page that says "Send your CV to jobs@". Or it has a box from the ATS dropped in the middle, in a different font, that Google can't really see.
The short answer: there are three ways to get a careers page connected to an ATS. You can embed the ATS's widget, pull your jobs through its feed or API onto real pages on your own website, or simply link out to the job board the ATS hosts for you. For most small businesses and agencies that want applications from Google, the second option is the one worth paying for, as long as your ATS plan allows it.
I build recruitment websites, so I spend a lot of time inside ATS documentation checking what each platform actually lets you do. Below is what I've found, with links to the vendors' and Google's own docs so you can check me.
In short
- An ATS is where your jobs and applicants live. Your website is where candidates find them. The question is how the two talk.
- Linking out is fastest, an embed is quick but limited, and an API sync gives you real job pages on your own domain.
- Google's job search reads JobPosting structured data, one job per page, on the same page as the description people read.
- Most people apply on a phone, so the apply step should be short and need no account.
What is an ATS, in plain words?
An applicant tracking system (ATS) is the software where you write job ads, receive applications, read CVs and move candidates through stages like "screening", "interview" and "offer". Think of it as a shared inbox and spreadsheet built for hiring.
Well-known examples include Greenhouse, Lever and Workable for in-house hiring teams, and Bullhorn, JobAdder or Vincere for recruitment agencies. In Japan, HRMOS採用 from BizReach is a common one.
The ATS is good at managing applicants. It is usually not good at being your website, which is why the connection between the two matters.
What are the three ways to connect a careers page to an ATS?
1. Embed the ATS's widget or iframe
Most ATS platforms give you a few lines of code to paste into your careers page, and your open jobs appear inside it. Workable's help centre describes its widget as "a few lines of code you copy and paste onto your website", and notes that the search and filter bar from its hosted careers page isn't included, so you'd have to build that yourself.
Greenhouse offers a similar embed that shows its job board and application form inside an iframe on your page. Its own guide rates this "easy", taking 1 hour to 1 day.
2. Sync jobs through a feed or API onto your own pages
Here your website reads the jobs from the ATS and builds a proper page for each one, in your design, on your domain. Applications are then sent back into the ATS.
Lever, for example, has a postings API where published jobs are publicly readable, while submitting an application needs an API key. Greenhouse's guide lists several API-driven setups, from "moderate" (2 to 4 days) up to a fully API-driven board rated "most difficult" at 5 to 8 days. Access to these APIs can depend on your plan, so check before you commit.
3. Link out to the ATS's hosted job board
Nearly every ATS hosts a careers page for you on its own domain, like Greenhouse's boards.greenhouse.io. You put a "See open jobs" button on your website and send people there. Greenhouse calls this the "easiest" option, at less than an hour.
Embed, API sync or link out: how do they compare?
Here's how I'd score them for a small business that wants candidates to find jobs through search, not only through job boards.
| Embed widget or iframe | Feed or API sync to your pages | Link out to the ATS board | |
|---|---|---|---|
| SEO | Weak. Jobs sit inside the ATS's code, often in an iframe, not as pages on your URL | Strong. Each job is its own page on your domain with JobPosting markup | Goes to the ATS's domain, not yours |
| Look and feel | Partly yours. Basic styling, often a different feel from the rest of the site | Fully yours, including search and filters | The ATS's template with your logo |
| Effort | Hours to a day | Days to build, plus upkeep when the API changes | Minutes |
| Cost | Little beyond the ATS | Developer time; API access may depend on your plan | Little beyond the ATS |
| Source tracking | Whatever the ATS offers | You decide, e.g. tag every application with where it came from | Whatever the ATS offers |
Effort ranges are based on Greenhouse's own estimates for its integration options. Other platforms differ.
None of these is wrong. If you hire twice a year, linking out is fine. If jobs are your business, as they are for a recruitment agency, the gap in the first row is the one that costs you.
Why should every job live as a real page on your own website?
Google shows jobs in a dedicated panel in search results, often called Google for Jobs. To appear there, a job page needs JobPosting structured data: a small block of code that tells Google the title, employer, location and so on.
Google's documentation is specific about where that code goes. The markup "must only be used on pages that contain a single job posting", it must "appear on the same page as the job description that job seekers can read in their browser", and it shouldn't be added to pages that list many jobs.
That rules out a single careers page with a widget on it. With an embed, the job details and the apply form usually live on the ATS's page, loaded inside yours, so your URL isn't the one with the clean, single-job page Google is looking for. With an API sync, every job gets its own page on your domain, and that page is the one that ranks.
A page per job also helps outside Google. You can share one link on LinkedIn or in a message, and AI assistants have something concrete to read and quote. I wrote more about that in how to get your business cited by ChatGPT and AI Overviews.
What does Google need to show your jobs in job search?
Here's a checklist based on Google's current JobPosting documentation.
- Required fields: title, description, datePosted, hiringOrganization and jobLocation. For a remote job, Google accepts applicantLocationRequirements instead of a location.
- Recommended fields: baseSalary, employmentType, validThrough, directApply, identifier, jobLocationType and applicantLocationRequirements. Salary and job type are the ones candidates notice.
- One job per page, with the markup matching what the visitor sees.
- Take closed jobs down. Google lists three ways: set validThrough to a date in the past, remove the page so it returns a 404 or 410, or remove the JobPosting markup.
- Tell Google about changes. For job URLs, Google recommends its Indexing API over sitemaps, both for new jobs and for removals.
The "take closed jobs down" step is where a sync earns its keep. When a recruiter closes a role in the ATS, the page should come down too, without anyone remembering to do it.
How short should the mobile apply be?
Most people now apply from a phone. Appcast's 2022 benchmark report found that about 67% of job applications in 2021 were completed on mobile devices.
On a phone, every extra field and every "create an account" screen loses people. A good mobile apply asks for name, email or phone, and a CV upload, then gets out of the way. The rest can wait for the first call.
Check yours: open one of your own job ads on your phone and time how long it takes to apply. If you have to create a password or retype your CV into boxes, that's the first thing to fix.
Which option should a small business pick?
Step 1: count your jobs
A few roles a year? Link out, or embed if you want it to feel more like your site. Dozens of open roles, or recruiting is what you sell? Aim for an API sync.
Step 2: check what your ATS plan allows
Look in your ATS's help centre for "API", "job board API" or "careers page integration". Some platforms limit API access by plan, so confirm it before anyone starts building.
Step 3: decide where applications go
Applications should land in the ATS with the CV attached and a note of where the candidate came from, such as LinkedIn or Google. Otherwise you can't tell which channels are worth paying for.
This is the setup I build on my recruitment website design service: live jobs pulled from your ATS (such as Bullhorn, JobAdder or Vincere, depending on your plan's API access, which I check before quoting), a 60-second apply on any phone with no account, and a page per job with JobPosting markup for Google. If there's no API access, jobs can be posted from the website's admin area and applications arrive by email.
Questions people ask
Can Google index jobs in an iframe embed?
Google's rules ask for the JobPosting markup on the same page as the job description, one job per page. An iframe widget on your careers page doesn't give you that on your own URL, so if Google search matters to you, give each job its own page.
Does my ATS already post to Google for Jobs?
Maybe. Google says you can also appear through a third-party job site, but then the listing points to their page, not yours. Ask your ATS whether its hosted board adds JobPosting markup, or test a live job with Google's Rich Results Test.
Do I need a developer to connect my careers page to an ATS?
Not for linking out or pasting an embed code. For an API sync, yes, and someone has to look after it when the ATS changes its API.
How much does a recruitment website with ATS integration cost?
It depends on the features and on your ATS's API. My website cost estimator gives a rough range, and every project gets a fixed quote in writing before work starts.
If you'd like jobs that come straight from your ATS and show up on Google, here's how I build recruitment websites.