dataclean.to

Convert CSV Data to JobPosting Schema Markup

✓ Tested Works with CSV, Excel, Google Sheets → JSON-LD Schema
By dataclean.to team · 2026-02-13

Job boards, staffing agencies, and HR departments maintain job listing databases that can benefit significantly from JobPosting schema markup. Google's job search experience aggregates listings with valid JobPosting structured data, giving marked-up listings prominent placement above organic results. dataclean.to converts your CSV job listing data into validated JobPosting JSON-LD, handling the salary normalization, location formatting, and date standardization that these listings require.

The Problem

Job listing data is notoriously inconsistent. Salary information appears as "$50K-$70K", "50000-70000", "$24/hr", "Competitive", "DOE", or annual and hourly rates mixed in the same column. Locations range from "Remote" to "New York" to "123 Main St, Suite 400, New York, NY 10001" to "NYC metro area." Employment types mix abbreviations and full text: "FT", "Full-time", "Full Time", "Permanent." Date posted values use inconsistent formats and some listings have no date at all. Google's JobPosting schema requires specific formats for each of these fields, and the validation is strict — listings with incorrect salary formats or missing required fields won't appear in Google's job search results. JobPosting schema type specification

How to Fix It

1
Upload your job listings CSV
Import your CSV containing job listing data. Include columns for job title, description, company name, location, salary or pay range, employment type, date posted, and application URL.
2
Detect salary and location patterns
dataclean.to identifies salary-related columns and determines the format used (annual, hourly, range, fixed amount). Location columns are analyzed for address completeness and format consistency. Date columns are flagged if they contain mixed formats.
3
Normalize salary and employment data
Standardize salary data into structured ranges with minValue, maxValue, unitText (YEAR, HOUR, MONTH), and currency. Employment type values map to schema.org's enumeration: FULL_TIME, PART_TIME, CONTRACT, TEMPORARY, INTERN, VOLUNTEER, PER_DIEM, OTHER.
4
Map columns to JobPosting properties
Map your cleaned columns to JobPosting schema: title, description, datePosted, validThrough, hiringOrganization (as Organization), jobLocation (as Place with PostalAddress), baseSalary (as MonetaryAmount), employmentType, and applicantLocationRequirements for remote positions.
5
Generate and deploy JobPosting JSON-LD
Export JSON-LD for each job listing with properly nested Organization, Place, PostalAddress, and MonetaryAmount types. Test with Google's Rich Results Test to confirm eligibility for Google's job search feature.

Frequently Asked Questions

What salary formats does Google require for JobPosting schema?
Google requires salary data structured as a MonetaryAmount with minValue and/or maxValue (numeric), currency (ISO 4217 code like USD), and unitText (YEAR, HOUR, MONTH, WEEK, DAY). dataclean.to converts formats like '$50K-$70K' or '$24/hr' into this structured format automatically.
How do I handle remote job listings in JobPosting schema?
Remote positions use the jobLocationType property set to 'TELECOMMUTE' and can include applicantLocationRequirements to specify which countries or regions the remote worker must be based in. dataclean.to maps 'Remote' location values to the correct schema properties.
Does Google require a salary range in JobPosting schema?
Salary is recommended but not strictly required by Google. However, job listings with salary information are more prominently displayed in Google's job search results and receive higher engagement. If your CSV has salary data, it's worth including even if it needs significant cleaning.

Example: Input → Output

titlecompanylocationsalarytype
Senior DeveloperAcme IncRemote$120k-$150kFull-time
senior developeracme incremote120000-150000full time

Red rows show common data quality issues. dataclean.to normalizes and generates JSON-LD automatically.

{
  "@context": "https://schema.org",
  "@type": "JobPosting",
  "title": "Senior Developer",
  "hiringOrganization": {"@type": "Organization", "name": "Acme Inc"},
  "jobLocation": {"@type": "Place", "address": "Remote"},
  "baseSalary": {"@type": "MonetaryAmount", "currency": "USD", "value": {"minValue": 120000, "maxValue": 150000}}
}
💡 How it works: JobPosting schema enables your listings to appear in Google for Jobs with salary and location details.

Ready to Clean Your Data?

Upload your CSV or spreadsheet and get clean, structured data in minutes.

Get Started Free

Related Use Cases

Schema Generation
Excel To Job Posting Schema
Schema Generation
Csv To Schema Markup
Schema Generation
Csv To Json Ld
Schema Generation
Clean Data For Schema Markup