Hoe een Indeed XML Feed en Google voor Jobs JSON-LD Werkelijk Werken
De twee primaire verspreiding kanalen
Wanneer je functie posts op Indeed of Google voor Jobs, je hebt twee opties:
- Post rechtstreeks — log in Indeed.com, vul vorm, klik publiceer
- Syndicate via feed — voorzien je eigen job aanbod in machine-leesbaar format (XML of JSON-LD); job board trekt van je feed en indexeert het
Rechtstreeks posting is makkelijk maar beperkt. Syndicate is bit meer technisch maar geven je precieze controle: je kunt update functie status, salaris, of vereisten in je systeem, en het weerspiegeld op Indeed in uren zonder gegevens re-ingeven.
De meeste serieuze wervingsteams gebruiken feeds.
The Indeed XML format
Indeed accepteert propriëtaire XML feed. Hier's structuur:
<?xml version="1.0" encoding="UTF-8"?>
<source>
<publisher>Je Bedrijf Naam</publisher>
<publisherurl>https://jebedrijf.com</publisherurl>
<lastBuildDate>2026-05-21T10:00:00Z</lastBuildDate>
<job>
<title>Senior Backend Engineer</title>
<date>2026-05-21T08:00:00Z</date>
<repourl>https://jebedrijf.com/jobs/senior-backend-engineer</repourl>
<description><![CDATA[
<p>We are hiring a senior backend engineer...</p>
<ul>
<li>5+ years Python/Go experience</li>
</ul>
]]></description>
<salary>120000</salary>
<hiringOrganization>Je Bedrijf</hiringOrganization>
<jobLocation>
<countryName>US</countryName>
<stateName>California</stateName>
<cityName>San Francisco</cityName>
</jobLocation>
<employmentType>FULL_TIME</employmentType>
<jobCategory>ENGINEER</jobCategory>
</job>
</source>
Sleutel element's:
<title>: Functie titel (vereist)<description>: Volledige functie beschrijving. Wikkel in<![CDATA[...]]>als het HTML bevat of speciale tekenen. Plaats HTML niet in CDATA — hou het schoon tekst of voeg HTML markup toe.<salary>: Basis salaris in USD. Sommige regio's accepteer salaris bereiken's, maar Indeed primair indexeert enkele waarden.<jobLocation>: Stad, staat, land. Indien remote, ofwel weglaten ofwel zet stad naar "Remote."<date>: Wanneer functie post (ISO 8601 format). Indeed gebruik dit naar nieuwer aanbiedingen prioriteit.<repourl>: Link terug naar je careers pagina voor die specifieke functie. Wanneer iemand "Solliciteer" klikt, landen zij hier.<employmentType>: FULL_TIME, PART_TIME, CONTRACT, TEMPORARY
Google voor Jobs: JSON-LD
Google heeft verschillend format genaamd JobPosting gestructureerde gegevens in JSON-LD. Dit ingebedded in je HTML als <script type="application/ld+json"> tag.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "JobPosting",
"title": "Senior Backend Engineer",
"description": "We are hiring a senior backend engineer...",
"identifier": {
"@type": "PropertyValue",
"name": "Je Bedrijf",
"value": "job_123"
},
"datePosted": "2026-05-21",
"hiringOrganization": {
"@type": "Organization",
"name": "Je Bedrijf",
"sameAs": "https://jebedrijf.com",
"logo": "https://jebedrijf.com/logo.png"
},
"jobLocation": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "San Francisco",
"addressRegion": "CA",
"postalCode": "94105",
"addressCountry": "US"
}
},
"baseSalary": {
"@type": "PriceSpecification",
"currency": "USD",
"minValue": 120000,
"maxValue": 160000,
"unitText": "YEAR"
},
"employmentType": "FULL_TIME",
"validThrough": "2026-06-21"
}
</script>
Kritieke velden voor Google naar index:
datePosted: Moet aanwezig en recent zijn. Google de-ranks oud aanbiedingen.hiringOrganization: Bedrijf naam en (optioneel) logo. Gebruikt voor werkgever merk snippet.baseSalary: Salaris bereik (min/max). Optioneel maar verbeterd CTR.validThrough: Functie sluit datum. Google verwijdert aanbiedingen na dit datum.jobLocation: Vol postale adres of remote.
CDATA valkuilen en speciale tekenen
In XML, speciale tekenen als <, >, en & breken feed. Wikkel je beschrijving in <![CDATA[...]]>:
<description><![CDATA[
We are looking for a developer with 5+ years experience.
Experience with: Java, Spring Boot, Docker.
]]></description>
In CDATA, je kant include platte HTML:
<description><![CDATA[
<p>We are looking for a developer with 5+ years experience.</p>
<ul>
<li>Java 8+</li>
<li>Spring Boot</li>
<li>Docker</li>
</ul>
]]></description>
Zonder CDATA, <p> en <li> tags breken XML parser. Indeed's feed valideerder zal volledige feed afwijzen.
Salaris codering
Indeed XML: Enkele salaris waarde slechts. Als je bereik hebt, gebruik middelste of lage einde.
<salary>140000</salary>
Google voor Jobs: Ondersteuning bereiken's:
"baseSalary": {
"@type": "PriceSpecification",
"currency": "USD",
"minValue": 120000,
"maxValue": 160000,
"unitText": "YEAR"
}
Als je functie uurlijkse is, gebruik:
"baseSalary": {
"@type": "PriceSpecification",
"currency": "USD",
"minValue": 45,
"maxValue": 65,
"unitText": "HOUR"
}
Update frequentie en verfrist
Eenmaal je feed URL inzet, Indeed crawls het periodiek (meestal dagelijks, soms vaker als functies veranderen dikwijls). Wanneer functie sluit, verwijder van feed of zet sluit datum. Indeed zal automatisch de-index het.
Google voor Jobs crawls HTML pagina's waar je JobPosting JSON-LD inbedding. Elke keer kandidaat je job pagina bezoekt, Google's crawler indexeert. Als je JSON-LD markup verwijdert, functie verdwijnt van Google voor Jobs in dagen.
Validatie en debugging
Voor Indeed XML:
- Gebruik Indeed's Feed Validator naar test feed voordat verbinding
- Veel voorkomende fouten: misvormde CDATA, ontbrekend vereist velden, ongeldig datum format
Voor Google voor Jobs:
- Gebruik Google's Structured Data Testing Tool of nieuwer Rich Results Test
- Controleer ontbrekend datePosted, ongeldig datum formaten, of CDATA-achtig string codering problemen
Hoe ClarityHire feeds genereert
ClarityHire auto-genereert beide Indeed XML feed bij /api/jobs/feed.xml en Google voor Jobs JSON-LD sjabloon je inbedding op job pagina's bij /careers/jobs/[job-id].
Wanneer je update functie (titel, salaris, beschrijving), feeds verfrist automatisch. Sluit functies worden verwijderd van feeds in 2 uren. Het systeem respecteert je functie's visibility vlag: concept functies verschijnen niet in feeds.
TL;DR
Indeed verwacht XML met CDATA-gewikkeld beschrijvingen, salaris, en locatie. Google voor Jobs verwacht JSON-LD markup op je HTML met datePosted, validThrough, en salaris bereiken. Beide gebruiken ISO datum formaten (YYYY-MM-DD of ISO 8601 timestamps). CDATA is je vriend wanneer HTML beschrijvingen in XML wikkelt. Valideer voordat implementeer. Auto-verwijder sluit functies van feeds. Test met Google's Rich Results Test en Indeed's valideerder.
Eenmaal inzet, je functies verspreiding naar Indeed en Google zonder re-entry. De setup duurt dag; de doorlopende leverage is immens.