✓ TestedWorks 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
title
company
location
salary
type
Senior Developer
Acme Inc
Remote
$120k-$150k
Full-time
senior developer
acme inc
remote
120000-150000
full time
Red rows show common data quality issues. dataclean.to normalizes and generates JSON-LD automatically.