Greenhouse jobs on WordPress: how to get found on Google

View as Markdown

Greenhouse jobs SEO on WordPress: job pages on your domain, JobPosting data for Google for Jobs, department and location pages, sitemaps, Indexing API.

People looking for work start on Google. This guide covers what it takes for your Greenhouse jobs to show up there from your own WordPress site, and what a WordPress plugin for Greenhouse has to do to help.

Where Greenhouse already puts your jobs

Greenhouse publishes each job on your hosted job board, at an address such as job-boards.greenhouse.io/yourcompany, and prepares those pages for Google. In Greenhouse’s words, “Job posts on Greenhouse Recruiting automatically include basic metadata so Google can display your job posts in search results more easily.”

The same article suggests going further with your marketing or SEO team: “Mark up your job listings with job posting structured data”, and “Include a sitemap (or an RSS/Atom feed) with a <lastmod> date for each job listing.” That is the work this guide describes, done on your own domain.

Why your own domain? A job page on Greenhouse’s board earns its visits for Greenhouse’s address. A job page on your site brings candidates to your site, next to your About page, your product and your other openings.

What Google needs from a job page

Four things, in order of importance.

1. A real page and URL per job

Google ranks pages, not lists. Each job needs its own address on your site, such as yoursite.com/jobs/senior-designer-4012345/, that returns the full job as HTML.

If you use Greenhouse’s embedded job board, each job opens on your careers page, but the job text is served from Greenhouse inside a frame. A WordPress page per job puts the text in your own page’s HTML.

2. JobPosting structured data

JobPosting is a block of schema.org data in the page’s source. It tells Google, in fixed fields, what the job is: title, description, company, location, date posted and closing date.

This markup is what makes a page eligible for Google’s job search results, the panel that appears above ordinary links for searches like “marketing jobs in Berlin”. Google’s job posting guidelines list the required fields: title, description, datePosted, hiringOrganization and jobLocation.

3. A sitemap that lists every job

The XML sitemap tells Google which pages exist and when they last changed. New jobs should appear in it as soon as they are published, and closed jobs should leave it.

4. Closed jobs that actually close

A job that stays online after you fill it frustrates applicants. Google’s guidelines ask sites to take expired jobs down, for example by removing the page. When a job closes in Greenhouse, its page on your site should come down and drop out of the sitemap.

Pages per department and location

Beyond single jobs, archive pages such as “Engineering jobs” or “Jobs in Berlin” collect every open job in one group at a stable URL. People search that way, so these pages can match searches that no single job page would.

The Google Indexing API

Google normally finds new pages on its own schedule, which can take days. For job pages, Google offers a shortcut. Its job posting guide says: “For job posting URLs, we recommend using the Indexing API instead of sitemaps because the Indexing API prompts Googlebot to crawl your page sooner.” The Indexing API lets a site tell Google the moment a job is published, changed or removed.

It needs a Google Cloud service account with owner access to your site in Search Console. It asks Google to crawl; it does not guarantee indexing or a position in results.

When your page and Greenhouse’s describe the same job

Your job page and the job’s page on your Greenhouse board can both carry job data for the same role. When the same job appears in more than one place, Google decides which listing to show. No site or plugin controls that choice.

What you control is giving Google a complete, fast page on your own domain, linked from the rest of your site. Over time, visits and links to that page build up on your domain.

How Greenhouse Jobs for WordPress covers this

Greenhouse Jobs for WordPress syncs the jobs published on your Greenhouse job board into WordPress and handles each point above:

What goes into the JobPosting data

The plugin fills the fields from what Greenhouse publishes, and leaves a field out rather than guess:

add_filter( 'ghjb_schema_applicant_countries', function ( $countries, $job ) {
	if ( empty( $countries ) && false !== stripos( $job['location'], 'Remote - Europe' ) ) {
		foreach ( array( 'Germany', 'France', 'Spain' ) as $name ) {
			$countries[] = array( '@type' => 'Country', 'name' => $name );
		}
	}
	return $countries;
}, 10, 2 );

Setup is in the installation guide, and the sitemap and schema switches are covered in settings. Comparing setups first? See three ways to add Greenhouse jobs to WordPress, the FAQs and pricing.

How to check it in Search Console

Once your job pages are live:

  1. Paste one job URL into Google’s Rich Results Test. It should find a valid Job posting.
  2. In Search Console, submit your sitemap under Indexing → Sitemaps if it is not there already.
  3. Use URL Inspection on a job page and click Request indexing for the first few.
  4. After a few days, open the Job postings report under Enhancements. It lists valid job pages and any missing fields.

Warnings for missing optional fields, such as salary, do not stop a page from being eligible. Errors do: fix those first.

Give every Greenhouse job a page on your own site.

Job pages with Google for Jobs markup, search and filters, and on-site applications. $69 a year for one site.