Paste this inside a script tag with type application/ld+json in the page head of the job listing it describes. One block per job posting.
Built by Rankite, the SEO team behind Swordfish AI's +400% revenue and Zluri's +45% organic growth. See the case studies
JobPosting schema is structured data, using the schema.org JobPosting type, that describes an open role in a format search engines can parse directly: the title, description, company, location, dates and pay. Google uses this markup to power its job search experience, where listings from across the web get pulled into a dedicated jobs interface with filtering by location, employer and salary. Without the markup, your listing is just text on a page. With it, the same listing becomes a structured record a job search feature can read and display.
Fill in the title, description and company, then choose whether the role is on-site, hybrid or fully remote. For remote roles the tool switches the location field to ask which country applicants need to be based in, since a fully remote job usually has no single office address to mark up. Set the posted date and an expiry date (validThrough), because Google drops listings from its job search results once that date passes and stops showing an expired role as if it were open. Salary is optional but worth adding: listings with pay ranges tend to get more qualified clicks, and some job platforms now require it. Copy the finished JSON-LD into the page head of the listing it describes.
Three fields cause most of the rejections when this type of markup gets checked. The first is validThrough: leave it blank or set it too far in the future and Google may keep showing a role that is no longer open, which frustrates applicants and reflects badly on the listing. The second is jobLocation versus jobLocationType: a fully remote job should use jobLocationType set to TELECOMMUTE rather than inventing an office address, and a hybrid or on-site role needs a real, complete postal address. The third is employmentType, which has to be one of the fixed values (FULL_TIME, PART_TIME, CONTRACTOR, TEMPORARY, INTERN, VOLUNTEER, PER_DIEM or OTHER) rather than free text like "flexible" or "24 hrs/week". This generator handles all three automatically based on the options you pick.
Generate valid Product JSON-LD with price, availability and rating.
Generate FAQ structured data to win rich results in search.
Build LocalBusiness JSON-LD with hours, address and contact info.
Get a free, no-obligation SEO audit and a 30-minute strategy session. We'll show you exactly where the growth is hiding.
Fill out the form and we'll get back to you within one business day. Prefer email? Write to us directly at contact@rankite.com.