Posting jobs without JobPosting Schema = invisible on Google Jobs. Schema = your job appears in Google's job search with logo + salary.
In this tutorial, you'll add JobPosting Schema to Blogger hiring pages. Follow along and you'll get listed in Google Jobs tab with rich results in 2025.
Step 1: Why JobPosting Schema Gets 4x More Applicants 2025
Google Jobs pulls 70% of clicks from Schema-enabled listings.
- Google Jobs tab: Schema required to appear in google.com/jobs search
- Rich cards: Shows company logo, salary range, location, job type in results
- Mobile alerts: Job seekers get push notifications for new Schema jobs
- Trust badge: Google shows "Apply on company site" with your logo
Image: Google Jobs showing job card with logo, $50k-$70k salary, Remote
Step 2: Create Job Page in Blogger First
Schema must match visible job post. Create page before adding code.
- Blogger → Pages → New Page → Title: "We're Hiring: Content Writer"
- URL:
/p/content-writer-job.html - Add visible content: Job title, company, location, salary, description, apply button
- Important: Include
datePostedandvalidThroughon page
Step 3: Add JobPosting Schema to Blogger Job Page
Switch job page to "HTML" view → Paste at BOTTOM:
<script type="application/ld+json">
{
"@context": "https://schema.org/",
"@type": "JobPosting",
"title": "Content Writer - SEO Blog",
"description": "<p>We are hiring a Content Writer to create 3 SEO blog posts per week.</p><p>Responsibilities:</p><ul><li>Research keywords using Ahrefs</li><li>Write 1500+ word tutorials</li><li>Add Schema markup to posts</li><li>Optimize for AdSense</li></ul><p>Requirements: 2+ years SEO writing, Blogger experience preferred.</p>",
"identifier": {
"@type": "PropertyValue",
"name": "Your Company Name",
"value": "CW-2025-09"
},
"datePosted": "2025-10-02",
"validThrough": "2025-11-02T23:59",
"employmentType": "CONTRACTOR",
"hiringOrganization": {
"@type": "Organization",
"name": "Your Blog Name",
"sameAs": "https://yourblog.blogspot.com",
"logo": "https://yourblog.blogspot.com/logo-200x200.png"
},
"jobLocation": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Allen Avenue",
"addressLocality": "Lagos",
"addressRegion": "Lagos State",
"postalCode": "100001",
"addressCountry": "NG"
}
},
"jobLocationType": "TELECOMMUTE",
"applicantLocationRequirements": {
"@type": "Country",
"name": "Nigeria"
},
"baseSalary": {
"@type": "MonetaryAmount",
"currency": "NGN",
"value": {
"@type": "QuantitativeValue",
"minValue": 150000,
"maxValue": 250000,
"unitText": "MONTH"
}
},
"directApply": true
}
</script>
Step 4: JobPosting Schema Required Fields 2025
| Field | Required? | Rules |
| title | Yes | Job title only. No "Apply now!" |
| description | Yes | HTML allowed. Include duties + requirements |
| datePosted | Yes | ISO 8601: YYYY-MM-DD |
| validThrough | Yes | Expiry date. Max 30 days from datePosted |
| hiringOrganization | Yes | Company name + logo URL |
| jobLocation | Yes | Full address. Use jobLocationType for remote |
| employmentType | Yes | FULL_TIME, PART_TIME, CONTRACTOR, INTERN |
| baseSalary | Recommended | Use minValue + maxValue. Increases applies 40% |
Step 5: Remote Job Schema Example
For remote jobs, use jobLocationType + applicantLocationRequirements:
"jobLocation": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"addressCountry": "NG"
}
},
"jobLocationType": "TELECOMMUTE",
"applicantLocationRequirements": {
"@type": "Country",
"name": "Nigeria"
}
Step 6: Add Visible Apply Button to Match Schema
Google requires visible apply method. Add this to job page:
<div style="background:#e8f0fe;border:2px solid #1a73e8;padding:20px;border-radius:8px;margin:20px 0;"> <h2>Content Writer - SEO Blog</h2> <p><strong>Company:</strong> Your Blog Name</p> <p><strong>Location:</strong> Remote, Nigeria | <strong>Type:</strong> Contract</p> <p><strong>Salary:</strong> ₦150,000 - ₦250,000 / month</p> <p><strong>Posted:</strong> October 2, 2025 | <strong>Expires:</strong> November 2, 2025</p> <p><strong>Description:</strong> Write 3 SEO blog posts per week. 2+ years experience required.</p> <a href="mailto:careers@yourblog.com?subject=Content Writer Application" style="background:#34a853;color:#fff;padding:12px 24px;text-decoration:none;border-radius:4px;display:inline-block;margin-top:10px;">Apply via Email</a> </div>
Step 7: Test JobPosting Schema + Get on Google Jobs
- Rich Results Test: search.google.com/test/rich-results → Enter URL → Must show "Job Posting" valid
- Job Posting Test: search.google.com/test/job-posting → Checks Google Jobs eligibility
- Search Console: Enhancements → Job postings → Monitor impressions
- Fix: "Missing field jobLocation" = Add full address OR jobLocationType: TELECOMMUTE
- Fix: "Expired job" = validThrough must be future date. Update every 30 days
- Fix: Job not in Google Jobs = Add
directApply: true+ visible apply button
Bad practice to avoid: Posting fake jobs or expired jobs with future validThrough date. Google bans sites for job spam. Only post real openings.
Important: JobPosting Schema expires after 30 days max. Repost with new datePosted if still hiring. Don't use on blog posts - only dedicated job pages. Salary is optional but boosts applies 40%. For international remote, use "applicantLocationRequirements": {"@type": "Country", "name": "Worldwide"}. Remove Schema after position filled or get manual action.
0 Comments