...
The full definition of JobPosting is available at schema.org/JobPosting
Only apply structured data to the most specific page describing a single job posting with its relevant details.
Put structured data on the most detailed leaf page possible.
Don't add structured data to pages that present a list of jobs (for example, search result pages).
Don’t add JobPosting markup on any other page, including pages that do not list any job.
Add a JobPosting property for each job posting you want to advertise. The structured data must appear on the same page as the job description that job seekers can read in their browser.
Most properties must only occur once in your job posting web page, unless the description specifically indicates that it can be added more than once.
Required Properties for JobPostingJobPosting
Completeness of the job posting markup details is highly important for ranking.
...
Type | Property | Schema Type | Notes | Example | ||
Required Property | datePosted | 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". For competitive industries, it’s easy to spot a correlation between the job post publishing date and its ability to rank higher in Google for Jobs. The reason? Especially for industries with a high turnover, the ability to quickly fill vacancies is a crucial point for recruiters and job seekers. Regarding this, it’s also noticeable that most of job boards have a “validThrough” attribute set to 30 days from the publishing date, suggesting that freshness can definitely be considered as one of the Google for Jobs ranking factors. | "datePosted": "2016-02-18" | |||
Required Property | description | The full description of the job in HTML format. Copy should be easy to scan. Use concise bullet points for the detailed job description, as this makes it easier to read. The description must be a complete representation of the job and should include:
The description can't be the same as the title. Google does not allow job postings with incomplete job descriptions. Additional guidelines:
| ||||
Required Property | hiringOrganization | The organization offering the job position. This must be the name of the company (for example, "Starbucks, Inc"), and not the specific location that is hiring (for example, "Starbucks on Main Street"). Must include:
| "hiringOrganization": { | |||
If the organization is hiring anonymously (for example, a staffing agency on behalf of an anonymous employer or an employer directly on your platform), use the confidential value for the HiringOrganization field. | ||||||
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 (https://support.google.com/knowledgepanel/answer/7534842?visit_id=638092247965029131-3634806007&rd=2) if you prefer a different logo, or else indicate your preferred logo (for both your company's Google knowledge panel and its job postings) using structured data (https://developers.google.com/search/docs/appearance/structured-data/logo). Logos on third-party job sites: If you have a third-party job site, you can provide a different logo for a given organization than the image shown in the organization's Google knowledge panel. To request a different logo for a hiring organization, add the logo property to the hiringOrganization array. google will pick the best logo to display in Search results, whether it's the knowledge panel logo or the hiringOrganization logo. The logo property is only eligible to be shown on your job site, and isn't treated as the canonical logo for the organization. For more information, see hiringOrganization. For JobPosting structured data, the image width and height ratio must be between 0.75 and 2.5. Make sure that you follow the logo image guidelines and Company logo guidelines (https://developers.google.com/search/docs/appearance/structured-data/logo#logo-property) | "hiringOrganization": { | |||||
Required Property | jobLocation | The physical location(s) of the business where the employee will report to work (such as an office or worksite), not the location where the job was posted. Include as many properties as possible. The more properties you provide, the higher quality the job posting is to our users. Note that you must include the addressCountry property. Adding the exact location (down to the street and zip code) is another key factor in ranking well for GFJ. As per the local results, the closer the user's IP to the exact job post location, the better the chances to appear in Google For Jobs the vacancy has. | "jobLocation": { | |||
Multiple physical locations 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. | ||||||
Remote jobs For jobs in which the employee may or must work remotely 100% of the time, you must use jobLocationType. The jobLocation property isn't required if applicantLocationRequirements is present. For remote workers, simply add “jobLocationType”: “TELECOMMUTE” to the schema markup. jobLocationType: Use this property to specify that the job is a Work from home job. applicantLocationRequirements: Use this property to specify geographic location(s) in which employees may be located for work from home jobs. At least one country is required. jobLocation: Use this property to specify where the job can be physically performed. You don't need to use this property if there isn't a physical location where a job can be performed (for example, an office or construction site). Note that the addressCountry property must be specified if this property is used. The job can be performed at a physical work site located in Detroit, MI, or at home in the US. Use jobLocation and jobLocationType. The job can be performed at a physical location in Detroit or at home in either Michigan or Texas. Use jobLocation, jobLocationType, and applicantLocationRequirements. | ||||||
Required Property | title | The title of the job (not the title of the posting). For example, "Software Engineer" or "Barista". | "title": "Software Engineer" | |||
Job titles should be easy to understand and straight to the point Best practices:
-- Not recommended: Apply now for IT job -FRENCH speaker in Bucharest
-- Not recommended: *** WAREHOUSE HIRING NOW!! ON A BUS ROUTE!! ***
| ||||||
Recommended Property | applicantLocationRequirements | The geographic location(s) in which employees may be located for to be eligible for the Work from home job. The job description must clearly state that the applicant may be located in certain geographical location(s). This property is only recommended if applicants may be located in one or more geographic locations and the job may or must be 100% remote. The following example suggests a job that can be done remotely anywhere within the United States: | "applicantLocationRequirements": { | |||
The following example suggests a job can either be done remotely from the country of Canada or executed at a physical location in Detroit, MI: | "jobLocation": { | |||||
Recommended Property | baseSalary | The actual base salary for the job, as provided by the employer (not an estimate). Note: Only employers can provide baseSalary. If you're a third party job site, you can provide a salary estimate for an occupation type using the Occupation type. For the unitText of QuantitativeValue, use one of the following case-sensitive values: HOUR | "baseSalary": { | |||
To specify a salary range, define a minValue and a maxValue, rather than a single value. Google also recommends to always display an accurate salary bracket for full transparency | "baseSalary": { | |||||
Required Property | occupation | Estimated Salary |
Estimated salaries can appear in the job experience on Google Search and as a salary estimate rich result for a given occupation. https://developers.google.com/search/docs/appearance/structured-data/estimated-salary |
| ||
Recommended Property | directApply | Indicates whether the URL that's associated with this job posting enables direct application for the job. *Since Google is still developing how they are using this information, you may not see any appearance or effect in Google Search right away. We define a direct apply experience in terms of the actions that are required from the user to apply to the job. This means that a user is offered a short and simple application process on your page without unnecessary intermediate steps. If the user has to click apply, complete an application form, sign in or log in more than once in the application journey, it means that you aren't offering a direct apply experience. You likely offer a direct apply experience if you provide one of the following experiences:
| ||||
Recommended Property | employmentType | Text | Type of employment. Add the employment type to the JobPosting markup, as this will trigger the employment type badge. Choose one or more of the following case-sensitive values: FULL_TIME | "employmentType": "CONTRACTOR" | ||
You can include more than one employmentType property. For example: | "employmentType": ["FULL_TIME", "CONTRACTOR"] | |||||
Recommended Property | identifier | The hiring organization's unique identifier for the job. | "identifier": { | |||
Recommended Property | jobLocationType | Text | Set this property with the value TELECOMMUTE for jobs in which the employee may or must work remotely 100% of the time (from home or another location of their choosing). In addition to adding jobLocationType, the job description must clearly state that the job is 100% remote. The jobLocationType property is required if the job is 100% remote. Requirements
The following example shows that the employee can physically report to work at a job site located in Tucson, AZ OR can work remotely within the US: *Google continues to support TELECOMMUTE as an additionalProperty of jobLocation. While we don't have immediate plans to deprecate additionalProperty, we encourage the use of the new schema where possible. | "jobLocation": { | ||
Required Property | validThrough | *Note: This is required for job postings that have an expiration date. Take extra care to let Google know when a job is expiring or has expired, as Google is now threatening manual penalties about expired job postings, as explained in this note about how to remove a job posting (https://developers.google.com/search/docs/appearance/structured-data/job-posting#remove-job-postings) 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. 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" | |||
Recommended properties (beta) | educationRequirements | The educational background needed for the job posting. If there aren't any educational requirements, use the no requirements value. If you don't know the educational requirements, don't add this property. This property can be repeated in an array. | "educationRequirements": [ | |||
Recommended properties (beta) | educationRequirements.credentialCategory | The level of education that's required for the job posting. Use one of the following values: high school In addition to adding this property, continue to describe the education requirements in the description property. | ||||
Recommended properties (beta) | experienceRequirements | OccupationalExperienceRequirements or Text | The experience that's required for the job posting. If there aren't any requirements, use the no requirements value. In addition to adding this property, continue to describe the experience requirements in the description property. | |||
Recommended properties (beta) | experienceRequirements.monthsOfExperience | The minimum number of months of experience that are required for the job posting. If there are more complex experience requirements, use the experience that represents the minimum number that is required for a candidate. For example:
| ||||
Recommended properties (beta) | experienceInPlaceOfEducation | Boolean | If set to true, this property indicates whether a job posting will accept experience in place of its formal educational qualifications. If set to true, you must include both the experienceRequirements and educationRequirements properties. |
...