The Ultimate JobPosting
Schema Generator
Get your open roles in front of the right candidates. JobPosting schema allows your listings to appear in the dedicated Google Jobs search interface.
Magic Build
Paste your URL below and our AI will automatically fill the JobPosting fields for you.
Configuration
Live GeneratorWhy use JobPosting?
Get your open roles in front of the right candidates. JobPosting schema allows your listings to appear in the dedicated Google Jobs search interface.This type is officially supported by major search engines for enhancing search listing appearance.
Output Panel
Want to automate this?
Connect your site to SchemaGen and our AI will automatically extract and deploy schemas for you. No manual coding required.
Launch AI GeneratorWhat is JobPosting Schema?
Get your open roles in front of the right candidates. JobPosting schema allows your listings to appear in the dedicated Google Jobs search interface.
Google uses JobPosting structured data to understand the content and context of your pages. When correctly implemented, this schema can unlock rich results in Google Search — enhancing your listing with additional information that dramatically improves visibility and click-through rates.
Why Add JobPosting Structured Data?
Appear in Rich Results
Structured data helps Google show enhanced results for your pages in search — including stars, prices, FAQs, and more.
Boost Click-Through Rate
Rich snippets can increase CTR by up to 30% compared to plain search results — more clicks with the same ranking.
Feed AI Search Engines
AI answer engines like Perplexity and Google SGE use structured data to verify and cite facts from your content.
How to Implement JobPosting JSON-LD
Generate
Use the form above to fill in your details and generate valid JobPosting JSON-LD markup in seconds.
Copy
Copy the generated JSON-LD output code with one click — it's already formatted and ready to deploy.
Deploy
Paste the code into your <head> tag, or use SchemaGen's SDK to deploy without touching code.
Want to skip steps 2 & 3? Connect SchemaGen's SDK to deploy directly from the dashboard.
Properties You Can Include
JobPosting schema supports the following schema.org properties. Required fields are the minimum Google needs to consider your markup valid; recommended fields unlock richer search result appearances.
| Property | Description | Expected Type | Status |
|---|---|---|---|
| additionalType | An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. Typically the value is a URI-identified RDF class, and in this case corresponds to the use of rdf:type in RDF. Text values can be used sparingly, for cases where useful information can be added without their being an appropriate schema to reference. In the case of text values, the class label should follow the schema.org style guide. | Text, URL | Optional |
| alternateName | An alias for the item. | Text | Optional |
| applicantLocationRequirements | The location(s) applicants can apply from. This is usually used for telecommuting jobs where the applicant does not need to be in a physical office. Note: This should not be used for citizenship or work visa requirements. | AdministrativeArea | Optional |
| applicationContact | Contact details for further information relevant to this job posting. | ContactPoint | Optional |
| baseSalary | The base salary of the job or of an employee in an EmployeeRole. | MonetaryAmount, Number, PriceSpecification | Optional |
| benefits | Description of benefits associated with the job. | Text | Optional |
| datePosted | Publication date of an online listing. | Date, DateTime | Optional |
| description | A description of the item. | Text, TextObject | Optional |
| directApply | Indicates whether an url that is associated with a JobPosting enables direct application for the job, via the posting website. A job posting is considered to have directApply of True if an application process for the specified job can be directly initiated via the url(s) given (noting that e.g. multiple internet domains might nevertheless be involved at an implementation level). A value of False is appropriate if there is no clear path to applying directly online for the specified job, navigating directly from the JobPosting url(s) supplied. | Boolean | Optional |
| disambiguatingDescription | A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation. | Text | Optional |
| educationRequirements | Educational background needed for the position or Occupation. | EducationalOccupationalCredential, Text | Optional |
| eligibilityToWorkRequirement | The legal requirements such as citizenship, visa and other documentation required for an applicant to this job. | Text | Optional |
| employerOverview | A description of the employer, career opportunities and work environment for this position. | Text | Optional |
| employmentType | Type of employment (e.g. full-time, part-time, contract, temporary, seasonal, internship). | Text | Optional |
| employmentUnit | Indicates the department, unit and/or facility where the employee reports and/or in which the job is to be performed. | Organization | Optional |
| estimatedSalary | An estimated salary for a job posting or occupation, based on a variety of variables including, but not limited to industry, job title, and location. Estimated salaries are often computed by outside organizations rather than the hiring organization, who may not have committed to the estimated value. | MonetaryAmount, MonetaryAmountDistribution, Number | Optional |
| experienceInPlaceOfEducation | Indicates whether a JobPosting will accept experience (as indicated by OccupationalExperienceRequirements) in place of its formal educational qualifications (as indicated by educationRequirements). If true, indicates that satisfying one of these requirements is sufficient. | Boolean | Optional |
| experienceRequirements | Description of skills and experience needed for the position or Occupation. | OccupationalExperienceRequirements, Text | Optional |
| hiringOrganization | Organization or Person offering the job position. | Organization, Person | Optional |
| identifier | The identifier property represents any kind of identifier for any kind of Thing, such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details. | PropertyValue, Text, URL | Optional |
Example JobPosting JSON-LD
Here's what valid JobPosting structured data looks like with sample values filled in. Use the generator above to replace these with your own data.
{
"@context": "https://schema.org",
"@type": "JobPosting",
"name": "Example JobPosting",
"image": "https://example.com/images/example.jpg",
"url": "https://example.com/page",
"additionalType": "Example additionalType",
"alternateName": "Example alternateName",
"applicantLocationRequirements": {
"@type": "AdministrativeArea",
"name": "Example AdministrativeArea",
"image": "https://example.com/images/example.jpg",
"url": "https://example.com/page"
},
"applicationContact": {
"@type": "ContactPoint",
"name": "Example ContactPoint",
"image": "https://example.com/images/example.jpg",
"url": "https://example.com/page"
},
"hiringOrganization": {
"@type": "Organization"
}
}Validate Your JobPosting Schema
Once deployed, validate your schema is working correctly with our free audit tool. Paste your URL and we'll check for errors, missing properties, and Google Rich Result eligibility.
Check your JobPosting schema for errors and Rich Result eligibility