Skip to content

Google for Jobs

Get your Recruitly jobs into the Google for Jobs widget — the boxed jobs experience at the top of Google results, with rich cards showing salary, location and employer. Google lists a job only when the page hosting it carries valid schema.org/JobPosting structured data (JSON-LD) on a public URL Google can crawl.

Job page → JobPosting JSON-LD → Google crawls → Google for Jobs widget

No structured data = no listing. A visually rendered jobs list is not enough — Google reads the machine-readable <script type="application/ld+json"> block, not your HTML layout. The data must also be present in the initial server-rendered HTML: markup injected client-side after page load (for example by a JavaScript jobs widget) is unreliable for crawling.

Three routes, pick by where your job pages live

Where the job page livesWhat you do
Recruitly-hosted job pages (the pages your adverts link to)Nothing — JobPosting JSON-LD is emitted automatically. See below.
WordPress with the Recruitly pluginAdd one snippet to functions.php. → WordPress guide
Any other website / custom stackRender the JSON-LD server-side from the Public Jobs API. → Custom website guide

Whichever route you take, finish with Testing & Search Console.

Recruitly-hosted job pages: built in

Every public job page Recruitly hosts for you already emits a JobPosting block automatically — nothing to install. What each page includes:

JSON-LD fieldSource in Recruitly
titleJob title
descriptionThe full advert description (HTML is allowed by Google)
datePostedJob created date
validThroughJob closing date, when set
identifierYour job reference (PropertyValue, name = your agency)
hiringOrganizationYour agency name, plus website as sameAs
jobLocationPlacePostalAddress: city, region, postcode, 2-letter country code
employmentTypePermanent → FULL_TIME · Contract → CONTRACTOR · Temporary → TEMPORARY
jobLocationTypeTELECOMMUTE when the job is marked remote working
baseSalaryMonetaryAmount: currency + min/max with unitText HOUR/DAY/WEEK/MONTH/YEAR from the pay tenure
directApplyfalse (candidates apply on the page)

A job needs at least a title and description for the block to be emitted, and a real location plus a salary to rank well. When a job is closed or unpublished the page stops being served, so expired listings clean themselves up.

Eligibility rules that trip people up

  • One job = one public, crawlable URL. No login walls, not blocked by robots.txt, included in your sitemap.
  • description must be the full description, not a teaser.
  • Every job needs at least a country in its location; city + region + postcode geo-match far better.
  • Remove or expire pages when jobs close — Google penalises sites that keep dead listings.
  • Google requires a hiringOrganization. For confidential clients use your agency name or "Confidential Employer".

References

Recruitly — Recruitment CRM for Agencies