Presque toutes les pages Carrieres modernes integrent des donnees structurees lisibles par les machines decrivant le poste. Comprendre ce format vous offre un moyen fiable de surveiller les offres d'emploi sans analyser du HTML brut, et explique pourquoi Google Jobs est plus rapide que LinkedIn.
Presque chaque offre d'emploi que vous avez consultee contenait une version cachee d'elle-meme a cote du HTML visible - une description claire et lisible par les machines du poste avec des champs structures pour le titre, la localisation, la date de publication, la fourchette salariale et l'employeur. Cela s'appelle JSON-LD JobPosting, c'est integre sous forme de balise script dans la page, et c'est la raison pour laquelle Google Jobs vous affiche une fiche avec une fourchette salariale et un horodatage « il y a 5 heures » tandis que LinkedIn vous dit encore que le poste a ete publie « il y a 2 jours ».
Comprendre ce format vous apporte deux choses utiles. Cela vous explique pourquoi certains canaux sont structurellement plus rapides que d'autres (Google Jobs utilise directement JSON-LD ; LinkedIn non). Et cela vous offre un moyen propre de surveiller les pages Carrieres des entreprises sans essayer d'analyser du HTML qui n'a pas ete concu pour etre analyse.
JSON-LD (« JSON for Linked Data ») est un moyen d'integrer des donnees lisibles par les machines dans une page web. Le schema JobPosting, defini sur schema.org/JobPosting, est l'un des dizaines de types que Google utilise pour ingerer des informations structurees du web.
Pourquoi chaque entreprise l'emet : Google l'exige. Si un poste ne dispose pas d'un bloc JSON-LD JobPosting valide, il n'apparait pas dans Google Jobs - et Google Jobs est de plus en plus le point de depart des candidats. Ainsi, chaque ATS moderne (Workday, Greenhouse, Lever, Ashby, Phenom, iCIMS) emet ces donnees structurees sur ses pages de publication, que l'employeur le demande ou non.
Si vous affichez le code source d'une offre d'emploi typique hebergee sur Greenhouse et recherchez application/ld+json, vous verrez quelque chose de similaire a ceci :
{
"@context": "https://schema.org",
"@type": "JobPosting",
"title": "Senior Backend Engineer",
"description": "We're looking for...",
"datePosted": "2026-05-12",
"validThrough": "2026-08-12",
"employmentType": "FULL_TIME",
"hiringOrganization": {
"@type": "Organization",
"name": "Acme",
"sameAs": "https://acme.example"
},
"jobLocation": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"addressLocality": "London",
"addressCountry": "GB"
}
},
"baseSalary": {
"@type": "MonetaryAmount",
"currency": "GBP",
"value": {
"@type": "QuantitativeValue",
"minValue": 90000,
"maxValue": 130000,
"unitText": "YEAR"
}
}
}
Les champs sont largement explicites. Les deux qui vous interesseront le plus en tant que chercheur d'emploi sont datePosted (l'horodatage canonique « quand ce poste a-t-il ete publie ») et baseSalary (lorsqu'il est present ; les offres d'emploi au Royaume-Uni, avec les recentes mesures de transparence, et les lois californiennes sur la transparence des salaires exigent de plus en plus son inclusion).
Trois raisons pratiques.
Le champ datePosted est l'horodatage de reference. Lorsqu'un agregateur indique qu'un poste a ete « publie il y a 3 jours », il affiche la date a laquelle il l'a ingere pour la premiere fois, pas la date a laquelle l'entreprise l'a effectivement publie. Le JSON-LD sur la propre page de l'entreprise vous donne le vrai chiffre. Notre mesure du delai ATS-LinkedIn repose sur cette comparaison.
Google Jobs ingere directement via JSON-LD. Des que Googlebot explore une page Carrieres (ce qui se produit en quelques heures pour la plupart des sites d'entreprises), le poste apparait dans les resultats de recherche Google Jobs. LinkedIn et Indeed doivent effectuer leur propre exploration, analyse, deduplication et classification, ce qui explique leur retard de 1 a 5 jours. L'analyse du cout du retard des agregateurs detaille ce point.
Si vous mettez en place une surveillance quelconque, JSON-LD est nettement preferable a l'analyse de HTML brut. Les donnees sont deja structurees. Vous n'avez pas besoin de selecteurs CSS qui cassent quand l'entreprise redesigne sa page Carrieres. Il suffit de chercher les blocs <script type="application/ld+json"> et de les analyser comme du JSON.
Dans n'importe quel navigateur :
application/ld+json."@type": "JobPosting" correspond aux donnees du poste.Vous pouvez le valider avec l'outil Rich Results Test de Google, qui confirme a la fois que le JSON-LD est bien forme et vous indique si Google Jobs l'indexerait.
Notre reference complete des ATS couvre comment identifier quel systeme une entreprise utilise.
Pour les lecteurs techniques, voici la structure generale d'un script Python qui surveille une seule page Carrieres pour detecter de nouvelles entrees JSON-LD JobPosting :
import json, re, requests, hashlib
from bs4 import BeautifulSoup
def fetch_postings(url):
html = requests.get(url, headers={"User-Agent": "Mozilla/5.0"}).text
soup = BeautifulSoup(html, "html.parser")
out = []
for tag in soup.find_all("script", type="application/ld+json"):
try:
data = json.loads(tag.string)
except (json.JSONDecodeError, TypeError):
continue
items = data if isinstance(data, list) else [data]
for item in items:
if item.get("@type") == "JobPosting":
out.append(item)
return out
# A executer selon un calendrier ; comparer avec l'execution precedente ; envoyer les nouvelles entrees par e-mail.
La machinerie complete (gestion des pages rendues en JavaScript, respect des limites de requetes, deduplication entre les executions, analyse des salaires dans un format interrogeable) est simple mais plus elaboree. Notre guide complet sur la surveillance des pages Carrieres compare cette approche avec les alternatives.
Si vous recherchez principalement sur des agregateurs, vous etes inherentement en aval des donnees structurees que l'entreprise a deja publiees. Le meme JSON-LD qui a alimente Google Jobs le jour ou le poste a ete mis en ligne se trouve sur la page de l'entreprise en attente d'etre lu, et c'est la copie reduite, classifiee et en retard d'un jour de l'agregateur que vous consultez a la place.
L'implication pratique : Google Jobs est structurellement plus rapide que LinkedIn ou Indeed en raison du fonctionnement du pipeline. Pour les postes ou la candidature le jour meme compte, preferez Google Jobs a la recherche LinkedIn si vous n'utilisez pas la surveillance directe de l'ATS. Notre comparaison des trois approches detaille les compromis pratiques.
JSON-LD JobPosting est la brique silencieuse qui se trouve sous la majeure partie de l'infrastructure moderne de recherche d'emploi. Les memes donnees qui ont alimente Google Jobs a l'instant ou un poste a ete mis en ligne se trouvent sur la page de l'entreprise en attente d'etre lues. Les agregateurs ajoutent leurs propres couches d'ingestion, d'analyse, de deduplication et de classification par-dessus - c'est pourquoi ils ont un ou deux jours de retard sur la source canonique.
Pour la plupart des candidats, l'implication pratique est plus simple que l'histoire technique : si vous choisissez entre differents canaux de recherche d'emploi, Google Jobs est structurellement plus frais que LinkedIn parce qu'il lit directement le JSON-LD. Si vous mettez en place votre propre surveillance, JSON-LD est ce qu'il faut lire - pas le HTML rendu, et certainement pas la copie indexee des agregateurs.