Posting jobs without Job Posting Schema = invisible on Google Jobs. With Schema = your job shows with logo + salary + Apply button.

In this tutorial, you'll add JobPosting Schema to Blogger Pages. Follow along and you'll get listed in Google for Jobs tab in 2025.

Step 1: Why JobPosting Schema Gets 3x More Applicants 2025

Google Jobs only pulls jobs that have valid Schema.

  1. Google Jobs tab: Schema required to appear when people search "writer jobs near me"
  2. Rich job cards: Shows logo, salary, location, job type, posted date
  3. Apply button: Google adds "Apply on your site" with direct link
  4. Higher trust: Jobs with salary range get 45% more clicks

Image: Google Jobs search showing Remote Content Writer job with logo + ₦200k salary

Step 2: Create Job Page in Blogger First

JobPosting Schema only works on dedicated Pages, not blog posts.

  1. Blogger → Pages → New Page → Title: We Are Hiring: Remote Content Writer
  2. Add visible job details: Title, Company, Location, Salary, Description, Responsibilities, Apply email
  3. Keep URL clean: /p/remote-content-writer-job.html
  4. Do NOT use Labels for job pages

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": "Remote Content Writer - SEO Blog",
  "description": "<p>We are hiring a Remote Content Writer to write 3 SEO blog posts per week on Blogger and AdSense.</p><p><strong>Responsibilities:</strong></p><ul><li>Research keywords with Ahrefs</li><li>Write 1500+ word tutorials</li><li>Add FAQ and HowTo Schema</li><li>Optimize images for SEO</li></ul><p><strong>Requirements:</strong> 2+ years SEO writing, knows Blogger, good English.</p>",
  "identifier": {
    "@type": "PropertyValue",
    "name": "Your Blog Name",
    "value": "WRITER-2025-08"
  },
  "datePosted": "2025-10-08",
  "validThrough": "2025-11-08T23:59:59+01:00",
  "employmentType": ["CONTRACTOR"],
  "hiringOrganization": {
    "@type": "Organization",
    "name": "Your Blog Academy",
    "sameAs": "https://yourblog.blogspot.com",
    "logo": "https://yourblog.blogspot.com/logo-200x200.png"
  },
  "jobLocation": {
    "@type": "Place",
    "address": {
      "@type": "PostalAddress",
      "addressLocality": "Lagos",
      "addressRegion": "Lagos State",
      "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: Required Fields Explained for Google Jobs 2025

Field What to Write Common Error
title Job title only Don't add "Urgent Hiring!"
description Full HTML job description Must include duties + requirements
datePosted Today's date YYYY-MM-DD Must be real posting date
validThrough Expiry date, max 30 days Past date = job removed
hiringOrganization.logo Logo 200x200px PNG/JPG Logo required for rich card
jobLocationType TELECOMMUTE for remote Missing = not shown for remote searches
baseSalary minValue + maxValue Salary increases apply rate 40%

Step 5: Remote vs Office Job - Which Code to Use

A) For Remote Jobs (Most Blogger Jobs):

"jobLocationType": "TELECOMMUTE",
"applicantLocationRequirements": {
  "@type": "Country",
  "name": "Nigeria"
}

B) For Office Job in Lagos:

"jobLocation": {
  "@type": "Place",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Allen Avenue",
    "addressLocality": "Ikeja",
    "addressRegion": "Lagos",
    "postalCode": "100001",
    "addressCountry": "NG"
  }
}

Step 6: Add Visible Apply Box That Matches Schema

Google rejects jobs without visible apply method. Add this in Compose view:

<div style="background:#e8f0fe;border:2px solid #1a73e8;padding:20px;border-radius:8px;margin:20px 0;">
<h2>Remote Content Writer - SEO Blog</h2>
<p><strong>Company:</strong> Your Blog Academy</p>
<p><strong>Location:</strong> Remote (Nigeria Only)</p>
<p><strong>Job Type:</strong> Contractor - Part Time</p>
<p><strong>Salary:</strong> ₦150,000 - ₦250,000 per month</p>
<p><strong>Posted:</strong> October 8, 2025 | <strong>Expires:</strong> November 8, 2025</p>
<p><strong>Responsibilities:</strong> Write 3 SEO posts/week, keyword research, add Schema</p>
<a href="mailto:jobs@yourblog.com?subject=Application - Remote Content Writer" 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

  1. Google Rich Results Test: search.google.com/test/rich-results → Paste Page URL → Must show "Job Posting" valid
  2. Google Jobs Validator: search.google.com/test/job-posting → Must pass all checks
  3. Search Console: Enhancements → Job Postings → Will show after 2-3 days
  4. Google Search: Search site:yourblog.blogspot.com Remote Content Writer → Job card appears
  5. Fix: Logo error: Logo must be 200x200px, square, public URL, JPG or PNG
  6. Fix: validThrough expired: Job must be reposted every 30 days. Don't set 1-year expiry - Google flags spam

Bad practice to avoid: Adding JobPosting Schema to blog posts about jobs. Only use on Pages with real hiring. Fake jobs = site banned from Google Jobs permanently.

Important: Delete Page or set validThrough to past date after hiring is done. If you keep old jobs live, Google gives manual action. For freelance gigs, use employmentType CONTRACTOR. For internship, use INTERN. You can list multiple locations by making jobLocation an array. Add directApply true only if user can apply directly on your Blogger page via email/form.