JobPosting Schema – Complete Guide for Job Listings & Rich Results
JobPosting schema markup is essential for career pages and job boards. It enables rich job listings in Google Search results, improves visibility in job search engines, and provides structured data for automated job application systems.
What is JobPosting Schema?
JobPosting schema describes employment opportunities, job requirements, compensation, and application details. It tells search engines that your content is a job posting, enabling enhanced display features and integration with job search platforms.
Why JobPosting Schema Matters
JobPosting schema is crucial for recruiters and employers because it unlocks Google's job search features, enables rich job result displays, and improves visibility across job search platforms and automated application systems.
The key insight: JobPosting schema transforms job listings from generic web pages into structured, searchable employment opportunities that job seekers can easily discover and apply to.
What JobPosting Schema Includes
SEO Benefits You Get
JobPosting Schema Implementation
Complete JobPosting Schema Example
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "JobPosting",
"@id": "https://example.com/jobs/senior-software-engineer/#jobposting",
"title": "Senior Software Engineer",
"description": "We are looking for an experienced Senior Software Engineer to join our dynamic team.",
"datePosted": "2024-01-15T09:00:00Z",
"validThrough": "2024-02-15T23:59:59Z",
"employmentType": "FULL_TIME",
"hiringOrganization": {
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "TechCorp Inc.",
"logo": "https://example.com/logo.svg"
},
"jobLocation": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Innovation Drive",
"addressLocality": "San Francisco",
"addressRegion": "CA",
"postalCode": "94105",
"addressCountry": "US"
}
},
"baseSalary": {
"@type": "MonetaryAmount",
"currency": "USD",
"value": {
"@type": "QuantitativeValue",
"minValue": 120000,
"maxValue": 160000,
"unitText": "YEAR"
}
},
"responsibilities": [
"Design and develop scalable software solutions",
"Collaborate with cross-functional teams",
"Mentor junior developers"
],
"qualifications": [
"5+ years of software development experience",
"Proficiency in React, Node.js, and cloud technologies",
"Bachelor's degree in Computer Science"
],
"skills": ["JavaScript", "React", "Node.js", "AWS"],
"jobBenefits": [
"Comprehensive health insurance",
"401(k) with company match",
"Flexible work arrangements"
],
"directApply": true
}
</script>Remote Job Example
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "JobPosting",
"title": "Remote Marketing Manager",
"description": "Join our remote-first marketing team to drive digital marketing strategies.",
"datePosted": "2024-01-10T10:00:00Z",
"employmentType": "FULL_TIME",
"jobLocationType": "TELECOMMUTE",
"hiringOrganization": {
"@type": "Organization",
"name": "Global Marketing Solutions"
},
"baseSalary": {
"@type": "MonetaryAmount",
"currency": "USD",
"value": {
"@type": "QuantitativeValue",
"value": 75000,
"unitText": "YEAR"
}
},
"qualifications": [
"3+ years digital marketing experience",
"Proficiency in Google Analytics"
]
}
</script>Required vs Recommended Properties
Required Properties
- •
title- Job title - •
description- Job description - •
datePosted- Posting date - •
hiringOrganization- Company name
Recommended Properties
- •
jobLocation- Work location - •
baseSalary- Compensation details - •
employmentType- Full-time, part-time, etc. - •
qualifications- Required skills/experience
JobPosting Schema Best Practices
Content & Accuracy
Advanced Features
Common JobPosting Schema Mistakes
❌ Missing Application Deadlines
Mistake: Not including validThrough dates, leaving jobs open indefinitely in search results.
Fix: Always include validThrough dates and update them when positions are filled or extended.
❌ Incomplete Company Information
Mistake: Using placeholder company names or incomplete organization details.
Fix: Include complete hiring organization information with proper branding and contact details.
❌ Vague Job Descriptions
Mistake: Using generic descriptions that don't clearly explain job responsibilities.
Fix: Write detailed, specific job descriptions that help candidates understand the role and assess their fit.
❌ Incorrect Salary Formats
Mistake: Using inconsistent salary formats or mixing currencies inappropriately.
Fix: Use proper MonetaryAmount structure with consistent currency codes and clear value ranges.
Validate Your JobPosting Schema
Testing Tools & Resources
Official Google Tools
Job-Specific Testing
- • Test job appears in Google Jobs
- • Verify salary information displays
- • Check company logo shows correctly
- • Confirm application links work
Related Schema Types
Frequently Asked Questions
What is JobPosting schema used for?
JobPosting schema describes job openings and employment opportunities. It helps search engines display rich job listings with salary, location, and application information directly in search results.
How do I add JobPosting schema to my job listings?
Add JSON-LD structured data to individual job pages with required properties like title, description, hiringOrganization, and jobLocation. Include optional properties like salary, employmentType, and application process.
What are the required properties for JobPosting schema?
Required properties include title, description, datePosted, hiringOrganization, and jobLocation. For rich results eligibility, validThrough (application deadline) is also highly recommended.
How do I format salary information in JobPosting schema?
Use baseSalary with QuantitativeValue including value, currency, and unitText ("HOUR", "DAY", "MONTH", "YEAR"). Specify value as a number or range with minValue/maxValue for salary ranges.
Can JobPosting schema include remote work options?
Yes, use jobLocationType: "TELECOMMUTE" for remote positions. For hybrid roles, you can specify both physical location and remote options. This helps with remote job searches.
How do I add job requirements and qualifications?
Use experienceRequirements for required experience, educationRequirements for educational qualifications, and skills for specific skills needed. Be specific and accurate to attract qualified candidates.
Does JobPosting schema help with job search visibility?
Yes! JobPosting schema enables rich job listings in Google Search and Google Jobs. Jobs with proper markup are more likely to appear in job search results and may be eligible for Google's job posting rich results.
Can I include benefits and perks in JobPosting schema?
Yes, use jobBenefits array to list perks like "Health Insurance", "401k", "Flexible Hours", etc. Use incentiveCompensation for bonuses and commissions. This makes job listings more attractive.
How do I handle multiple job locations?
Use jobLocation as an array for multiple locations. If the job allows location choice, list all available locations. For remote jobs, consider omitting physical location or using "Remote" as location.
What's the difference between JobPosting and Occupation schemas?
JobPosting describes specific job openings, while Occupation describes general career information. Use JobPosting for individual job listings and Occupation for career guidance content.
How do I add application deadlines and contact information?
Use validThrough for application deadlines and applicationContact for hiring contact information. Include email, phone, or application URLs for easy candidate contact.
Can JobPosting schema work for freelance or contract positions?
Yes! Use employmentType: "CONTRACTOR" or "TEMPORARY" for contract work. Specify project duration and compensation structure. This helps freelancers find opportunities.
How often should I update JobPosting schema?
Update immediately when positions are filled or requirements change. Remove expired postings promptly. Keep application deadlines and contact information current to maintain trust.
What's the impact of JobPosting schema on recruitment?
JobPosting schema significantly improves job visibility in search results and Google Jobs. Rich job listings with salary and location information attract more qualified candidates and improve application rates.
Additional JSON-LD Examples
Technology Job Posting
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "JobPosting",
"@id": "https://example.com/jobs/senior-software-engineer/#jobposting",
"title": "Senior Software Engineer",
"description": "We are seeking an experienced Senior Software Engineer to join our growing development team. You will design, develop, and maintain scalable web applications using modern technologies. This role involves full-stack development with a focus on React, Node.js, and cloud technologies.",
"datePosted": "2024-01-15T00:00:00Z",
"validThrough": "2024-02-15T23:59:59Z",
"employmentType": "FULL_TIME",
"hiringOrganization": {
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "TechCorp Solutions",
"logo": "https://example.com/logo.svg",
"sameAs": [
"https://www.linkedin.com/company/techcorp-solutions",
"https://twitter.com/techcorp"
]
},
"jobLocation": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Tech Boulevard",
"addressLocality": "San Francisco",
"addressRegion": "CA",
"postalCode": "94105",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": "37.7749",
"longitude": "-122.4194"
}
},
"jobLocationType": "ON_SITE",
"applicantLocationRequirements": {
"@type": "Country",
"name": "United States"
},
"baseSalary": {
"@type": "MonetaryAmount",
"currency": "USD",
"value": {
"@type": "QuantitativeValue",
"minValue": 120000,
"maxValue": 160000,
"unitText": "YEAR"
}
},
"experienceRequirements": {
"@type": "OccupationalExperienceRequirements",
"monthsOfExperience": 60,
"description": "5+ years of software development experience required"
},
"educationRequirements": {
"@type": "EducationalOccupationalCredential",
"credentialCategory": "bachelor degree",
"name": "Bachelor's Degree in Computer Science or related field"
},
"skills": [
"JavaScript",
"React",
"Node.js",
"Python",
"AWS",
"Docker",
"Kubernetes",
"Agile Development"
],
"responsibilities": [
"Design and develop scalable web applications",
"Collaborate with cross-functional teams",
"Write clean, maintainable code",
"Participate in code reviews and mentoring",
"Contribute to architecture decisions"
],
"qualifications": [
"Strong experience with modern JavaScript frameworks",
"Knowledge of cloud platforms (AWS/Azure/GCP)",
"Experience with containerization and orchestration",
"Excellent problem-solving and communication skills"
],
"jobBenefits": [
"Health Insurance",
"Dental Insurance",
"401k with company match",
"Flexible PTO",
"Remote work options",
"Professional development budget",
"Stock options"
],
"incentiveCompensation": "Performance bonuses and equity participation",
"workHours": "40 hours per week, flexible schedule",
"applicationContact": {
"@type": "ContactPoint",
"email": "[email protected]",
"telephone": "+1-555-0123",
"contactType": "Hiring Manager"
},
"directApply": false,
"applicationInstructions": "Please apply through our careers page with your resume and cover letter. Include links to your GitHub profile and portfolio.",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://example.com/jobs/senior-software-engineer"
}
}
</script>Remote Marketing Position
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "JobPosting",
"@id": "https://example.com/jobs/digital-marketing-specialist/#jobposting",
"title": "Digital Marketing Specialist (Remote)",
"description": "Join our remote marketing team to drive digital campaigns and content strategies. This fully remote position offers flexibility and the opportunity to work with a global team of marketing professionals.",
"datePosted": "2024-01-10T00:00:00Z",
"validThrough": "2024-02-10T23:59:59Z",
"employmentType": "FULL_TIME",
"hiringOrganization": {
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "Global Marketing Agency",
"logo": "https://example.com/logo.svg"
},
"jobLocationType": "TELECOMMUTE",
"applicantLocationRequirements": [
{
"@type": "Country",
"name": "United States"
},
{
"@type": "Country",
"name": "Canada"
},
{
"@type": "Country",
"name": "United Kingdom"
}
],
"baseSalary": {
"@type": "MonetaryAmount",
"currency": "USD",
"value": {
"@type": "QuantitativeValue",
"value": 65000,
"unitText": "YEAR"
}
},
"experienceRequirements": {
"@type": "OccupationalExperienceRequirements",
"monthsOfExperience": 24,
"description": "2+ years of digital marketing experience required"
},
"skills": [
"Google Analytics",
"SEO/SEM",
"Social Media Marketing",
"Content Marketing",
"Email Marketing",
"A/B Testing",
"Marketing Automation"
],
"responsibilities": [
"Develop and execute digital marketing campaigns",
"Manage social media accounts and content",
"Analyze campaign performance and optimize strategies",
"Create marketing reports and presentations",
"Collaborate with design and content teams"
],
"jobBenefits": [
"100% Remote Work",
"Flexible Hours",
"Health Insurance",
"Professional Development Stipend",
"Home Office Allowance",
"Unlimited PTO",
"Company Laptop"
],
"workHours": "Flexible schedule within US business hours",
"applicationDeadline": "2024-02-10T23:59:59Z",
"directApply": true,
"applicationInstructions": "Apply directly through our careers portal. Include your resume, cover letter, and examples of your marketing work.",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://example.com/jobs/digital-marketing-specialist"
},
"sameAs": "https://www.linkedin.com/jobs/view/digital-marketing-specialist-at-global-marketing-agency"
}
</script>SEO & Rich Results Notes
SEO Benefits
JobPosting schema enhances job visibility and application rates:
- • Rich job listings in Google Search results
- • Integration with Google Jobs platform
- • Higher visibility in job search queries
- • Direct application links in search results
- • Improved employer branding in search
Rich Results Eligibility
JobPosting schema enables several Google job features:
- • Job rich snippets with salary and location
- • Google Jobs integration
- • Job carousel in search results
- • "Apply now" buttons in search
- • Enhanced job details display
Google Reference: JobPosting markup helps jobs appear in Google Search and Google Jobs with rich formatting.
Important Warnings
- Accurate Information: All job details must be accurate and current. Misleading salary or requirement information can result in penalties.
- Timely Updates: Remove filled positions immediately and update application deadlines. Stale job postings harm search visibility.
- Legal Compliance: Ensure job postings comply with employment laws and include required EEO statements where applicable.
- Application Process: Clearly indicate application methods and avoid requiring payment for job applications.
Official Documentation
- Schema.org: JobPosting specification
- Google Search Central: Job posting markup guide
- Google Jobs: Google Jobs platform
- Rich Results Test: Validate JobPosting markup