Job Postings

You can improve the job seeking experience by adding job posting structured data to your job posting web pages. Adding structured data makes your job postings eligible to appear in a special user experience in Google Search results. You can also integrate with Google by using a third party job site. For employers and job content site owners, this feature brings many benefits:

  • Prominent place in Search results: Your postings are eligible to be displayed in the dedicated Job Search UI, featuring your logo, reviews, ratings, and job details.
  • More, motivated applicants: The new user experience enables job seekers to filter by various criteria like location or job title, meaning you’re more likely to attract applicants who are looking exactly for that job.
  • Increased chances of discovery and conversion: Job seekers will have a new avenue to interact with your postings and click through to your site.

Example

Here is an example of job search results for "teller jobs cambridge".

Job posting example in search results

See an example for an individual job posting using JSON-LD code in the Structured Data Testing Tool.

Create job postings

  1. Ensure that Googlebot can crawl your job posting web pages (not protected by a robots.txt file or robots meta tag).
  2. Ensure that your host load settings allow for frequent crawls.
  3. Add job listing structured data to your web page.
  4. Test and preview your structured data.
  5. Keep Google informed by submitting sitemaps. Follow the sitemap guidelines.
  6. To remove a job posting that is no longer available:
    1. Remove the job posting from your sitemap.
    2. Do one of the following:
      • Remove the JobPosting markup from the page.
      • Remove the page entirely (so that requesting it returns a 404 status code).
      • Add a noindex meta tag to the page.
  7. If you have a high change rate, which means you have more than 100,000 job postings or more than 10,000 changes per day, contact us.

Guidelines

You must follow the general structured data quality guidelines, job posting content policies, and technical guidelines for your job posting to be eligible to appear on the Google job search experience. You should also follow our indexing guidelines so that we can properly index and rank your pages. In addition, the following guidelines apply to job posting structured data:

  • Add a JobPosting element for each job posting that you want to advertise. The structured data should appear on the same page as the job description that job seekers can read in their browser.
  • Don’t add structured data to listing pages (pages that show a list of jobs).
  • Most properties should only occur once in your job posting web page, unless the description specifically indicates that it can be added more than once.

Sitemap guidelines

Your sitemap informs Google of additions, changes, or removals to your job postings. We recommend that you update your sitemap any time you make changes to your job postings. You must follow the general sitemap guidelines. In addition, the following sitemap guidelines apply to job posting structured data.

  • Update your sitemap at least daily and as often as hourly. If your sitemap is not updated at least daily, your job postings may not appear in the feature. If you need to update your sitemap more often than this, contact us.
  • Include only URLs that can be accessed by Googlebot. Be sure that the URLs you include in the sitemap are not behind a firewall or disallowed by your robots.txt file.
  • Use as accurate a time as possible for the <lastmod> (sitemap), <pubDate> (RSS), or <updated> (Atom) values to indicate when the page was added or changed. The value should be the last time that the content at the URL changed. It's important that you use accurate times; crawl bandwidth is limited and accurate times help us avoid re-crawling pages that haven't changed. In addition, the more Google has to crawl your pages, the more load will be placed on your servers.
  • Inform Google every time you update your sitemap by sending a GET request to the following URL:
    http://www.google.com/ping?sitemap=location_of_sitemap

    For example:

    http://www.google.com/ping?sitemap=http://www.example.com/sitemap.xml

    We will ingest the entire sitemap and recrawl the pages with lastmod times that are more recent than the last time those pages were crawled.

  • Do not include search results pages, list pages, or other dynamic pages in the sitemap.
  • The URLs in the sitemap should include the canonical page for each job posting.

Google uses the same logo for your job postings as the image shown in your company’s Knowledge Graph card. You can suggest a change if you prefer a different logo, or else indicate your preferred logo (for both your company’s Knowledge Graph card and its job postings) using markup.

Site name guidelines

To change how your site name appears on your job postings, add your preferred site name using markup.

Review snippet guidelines

If you collect reviews about employers, you can add review snippets structured data. Here is an example of a job posting with review snippets.

Job posting with review snippets in search results

The following guidelines apply to review snippets for employers:

Structured data type definitions

The full definition of JobPosting is available on schema.org/JobPosting.

You must include the required properties for your structured data to display in search results. Any job posting that is missing the required fields will not be considered for enhanced Search results. You can also include the recommended properties to add more information to your markup, which could provide a better user experience.

You can use Google’s Structured Data Testing Tool to validate and preview your markup.

Properties
@context

Required

Set the @context to "http://schema.org/".

@type

Required

Set the @type to "JobPosting". For example:

"@type": "JobPosting"
baseSalary

MonetaryAmount, Recommended

The base salary for the job.

For the unitText of QuantitativeValue, use one of the following case-sensitive values:

  • "HOUR"
  • "WEEK"
  • "MONTH"
  • "YEAR"

For example:

"baseSalary" : {
  "@type": "MonetaryAmount",
  "currency": "USD",
  "value": {
    "@type": "QuantitativeValue",
    "value": 40.00,
    "unitText": "HOUR"
  }
}

To specify a salary range, define a minValue and a maxValue, rather than a single value. For example:

"baseSalary" : {
  "@type": "MonetaryAmount",
  "currency": "USD",
  "value": {
    "@type": "QuantitativeValue",
    "minValue": 40.00,
    "maxValue": 50.00,
    "unitText": "HOUR"
  }
}
datePosted

Date, Required

The original date that employer posted the job in ISO 8601 format. For example, "2017-01-24" or "2017-01-24T19:33:17+00:00".

"datePosted": "2016-02-18"
description

Text, Required

The full description of the job in HTML format.

The description should be a complete representation of the job, including job responsibilities, qualifications, skills, working hours, education requirements, and experience requirements. The description can't be the same as the title.

Additional guidelines:

  • You must format the description in HTML.
  • At minimum, add paragraph breaks using <br>, <p>, or \n.
  • Valid tags include <p>, <ul>, <li>, and headings <h1> through <h5>.
  • You can also use character-level formatting tags such as <strong> and <em>.
employmentType

Text, Recommended

Type of employment. For example:

"employmentType" : "CONTRACTOR"

Choose one or more of the following case-sensitive values:

  • "FULL_TIME"
  • "PART_TIME"
  • "CONTRACTOR"
  • "TEMPORARY"
  • "INTERN"
  • "VOLUNTEER"
  • "PER_DIEM"
  • "OTHER"

You can include more than one employmentType property. For example:

"employmentType" : ["FULL_TIME", "CONTRACTOR"]
hiringOrganization

Organization, Required

The organization offering the job position. This should be the name of the company (for example, “Starbucks, Inc”), and not the specific location that is hiring (for example, “Starbucks on Main Street”). For example:

"hiringOrganization" : {
    "@type" : "Organization",
    "name" : "MagsRUs Wheel Company",
    "sameAs" : "http://www.magsruswheelcompany.com"
  }
identifier

PropertyValue, Recommended

The hiring organization's unique identifier for the job.

For example:

"identifier": {
    "@type": "PropertyValue",
    "name": "MagsRUs Wheel Company",
    "value": "1234567"
}
jobLocation

Place, Required

The geographic location(s) where the employee will primarily work, not the location where the job was posted. Use street-level addresses for this field. For example:

"jobLocation" : {
  "@type": "Place",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "555 Clancy St",
    "addressLocality": "Detroit",
    "addressRegion": "MI",
    "postalCode": "48201",
    "addressCountry": "US"
  }
}

If the job has multiple locations, add multiple jobLocation properties in an array. Google will choose the best location to display based on the job seeker's query.

For jobs in which the employee works remotely (and can be located anywhere), specify only the country in which the job is available. For example:

"jobLocation" : {
  "@type": "Place",
  "address": {
    "@type": "PostalAddress",
    "addressCountry": "US"
  }
}
title

Text, Required

The title of the job (not the title of the posting). For example, "Software Engineer" or "Barista". For example:

"title" : "Software Engineer"

Best practices:

  • This field should be the title of the job only.
  • Don't include job codes, addresses, dates, salaries, or company names in the title field.

    Not recommended: Apply now for IT job -FRENCH speaker in Bucharest

    Recommended: Market Specialist, French speaker

  • Provide concise, readable titles.
  • Don't overuse special characters such as "!" and "*". Abusing special characters might cause your markup to be considered as Spammy Structured Markup. Numbers and characters such as "/" and "-" are acceptable.

    Not recommended: *** WAREHOUSE HIRING NOW!! ON A BUS ROUTE!! ***

    Recommended: Shipping and Receiving Warehouse Associate

  • If you are third party job site, don't attempt to modify the job title to follow the guidelines above, as it can make the title unreadable. Instead, provide the title as you received it from the employer.
validThrough

DateTime, Required

The date when the job posting will expire in ISO 8601 format. For example, "2017-02-24" or "2017-02-24T19:33:17+00:00". For example:

"validThrough" : "2017-03-18T00:00"

If a job posting never expires, or you do not know when the job will expire, do not include this property. If the job is filled before the expiration date occurs, remove the job posting.

Content policies

You must follow the general structured data quality guidelines. In addition, the following editorial and content policies apply to job posting structured data.

A valid job posting allows a job seeker to apply for an available role at a company or agency directly online.

Valid job posting examples:

  • Floor manager at a particular department store. Company is valid, and it's a named role.
  • Checkout associate for a particular grocery chain. Company is valid, and it’s a general role.
  • Clerical job for a placement agency. Although the final company is unspecified, the agency is the hiring party and is described.
  • Recruiter ad with an apply flow where the company is unspecified. This is acceptable because the role is well-defined and the company does exist, even if it is not revealed. In this case, the hiringOrganization markup must be blank (see Misrepresentation of self, product, service, job or company).
  • A restaurant hiring kitchen staff in a single posting. Though the job titles may include positions such as line cooks, dish washers, waiters, the overall role is the same and they’re subject to the same hiring process.
  • A barista posting that is always hiring. Blanket postings for “always hiring” jobs are acceptable.

Invalid job posting examples:

  • Career fair invitations.
  • Recruiter advertisements without a way to apply.
  • Resume drops that collect candidate data, but aren’t currently hiring.
  • Advertisements for your business disguised as job listings, such as broad career pages or other offers for services.
  • Postings that require payment to interact with them because job seekers can’t apply directly online.
  • Postings where the structured data is inconsistent with the visible content of the page.
  • Adding job posting structured data to pages that aren't job postings.
  • Providing false structured data around the company or location that make the job appear close to job seekers.
  • Providing false links that ask job seekers to apply that are substantially different from what job seekers would see browsing your website.

If Google receives a complaint that content in a job listing may violate the law (for example, if a trademark or copyright owner reports a job listing that is using their content without permission), we will handle it according to our removal policies.

Misrepresentation of self, product, service, job, or company

Job postings must fairly represent the hiring organization and job to be performed by the applicant.

Here are some examples of misrepresentation:

  • Jobs or content that represent the company in a way that is not accurate, realistic, or truthful.
  • Jobs listings for fake or non-existent jobs. This includes jobs misrepresenting themselves for the purposes of defrauding applicants.
  • The title of a job listing and the description of a listing must be related, and should not attempt to trick applicants into viewing or applying for a job.

Send feedback about...