Prácticamente todas las páginas de empleo modernas integran datos estructurados legibles por máquina que describen el puesto. Entender este formato le ofrece una vía limpia para supervisar ofertas sin analizar HTML en bruto, y explica por qué Google Jobs es más rápido que LinkedIn.
Prácticamente todas las ofertas de empleo que ha visto alguna vez tenían una versión oculta de sí mismas junto al HTML visible: una descripción limpia y legible por máquina del puesto, con campos estructurados para título, ubicación, fecha de publicación, rango salarial y empleador. Se llama JSON-LD JobPosting, está integrada como una etiqueta script en la página, y es la razón por la que Google Jobs le muestra una tarjeta con una banda salarial y un «hace 5 horas» mientras LinkedIn todavía le dice que el puesto se publicó «hace 2 días».
Entender este formato le aporta dos cosas útiles. Le dice por qué algunos canales son estructuralmente más rápidos que otros (Google Jobs usa JSON-LD directamente; LinkedIn no). Y le da una vía limpia para supervisar páginas de empleo de empresas sin intentar analizar HTML que no fue diseñado para ser analizado.
JSON-LD («JSON for Linked Data») es una forma de integrar datos legibles por máquina dentro de una página web. El esquema JobPosting, definido en schema.org/JobPosting, es uno de los muchos tipos que Google usa para ingerir información estructurada de la web.
Por qué todas las empresas lo emiten: Google lo exige. Si un puesto no tiene un bloque JSON-LD JobPosting válido, no aparece en Google Jobs, y Google Jobs es cada vez más el punto de partida de los candidatos en su búsqueda. Por eso todos los ATS modernos (Workday, Greenhouse, Lever, Ashby, Phenom, iCIMS) emiten estos datos estructurados en sus páginas públicas de ofertas, lo pida o no el empleador.
Si ve el código fuente de una oferta de empleo típica alojada en Greenhouse y busca application/ld+json, verá algo parecido a esto:
{
"@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"
}
}
}
Los campos son en gran parte autoexplicativos. Los dos que más le interesarán como buscador de empleo son datePosted (la marca de tiempo canónica de «cuándo se publicó este puesto») y baseSalary (cuando está presente; las ofertas de empleo en el Reino Unido bajo las recientes iniciativas de transparencia y las leyes de transparencia salarial de California cada vez más requieren incluirlo).
Tres razones prácticas.
El campo datePosted es la marca de tiempo de referencia. Cuando un agregador dice que un puesto se publicó «hace 3 días», está mostrando la fecha en que lo ingirió por primera vez, no la fecha en que la empresa lo publicó realmente. El JSON-LD en la propia página de la empresa le da el número real. Nuestra medición del retraso entre ATS y LinkedIn se construye sobre esta comparación.
Google Jobs ingiere directamente mediante JSON-LD. En cuanto Googlebot rastrea una página de empleo (lo que ocurre en cuestión de horas para la mayoría de los sitios corporativos), el puesto aparece en los resultados de búsqueda de Google Jobs. LinkedIn e Indeed tienen que hacer su propio rastreo, análisis, deduplicación y clasificación, que es de donde proviene su retraso de 1 a 5 días. El análisis de coste del retraso de los agregadores lo detalla.
Si está construyendo cualquier tipo de supervisión, JSON-LD es enormemente mejor que analizar HTML en bruto. Los datos ya están estructurados. No necesita selectores CSS que se rompen cuando la empresa rediseña su página de empleo. Solo tiene que buscar bloques <script type="application/ld+json"> y analizarlos como JSON.
En cualquier navegador:
application/ld+json."@type": "JobPosting" es el dato del puesto.Puede validarlo con la herramienta Rich Results Test de Google, que confirma que el JSON-LD está bien formado y le dice si Google Jobs lo indexaría.
Nuestra referencia completa sobre ATS explica cómo identificar qué sistema usa una empresa.
Para lectores técnicos, aquí está la estructura aproximada de un script en Python que supervisa una única página de empleo en busca de nuevas entradas 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
# Ejecutar con un calendario; comparar con la ejecución anterior; enviar por correo las nuevas entradas.
La maquinaria completa (gestionar páginas renderizadas con JavaScript, lidiar con límites de frecuencia, deduplicar entre ejecuciones, analizar el salario en un formato consultable) es directa pero más elaborada. Nuestra guía completa sobre supervisar páginas de empleo compara este enfoque con las alternativas.
Si busca principalmente en agregadores, está inherentemente por debajo de los datos estructurados que la empresa ya publicó. El mismo JSON-LD que alimentó a Google Jobs el día en que el puesto se publicó está en la página de la empresa esperando a ser leído, y la copia redactada, clasificada y con un día de retraso del agregador es lo que usted está mirando en su lugar.
La implicación práctica: Google Jobs es estructuralmente más rápido que LinkedIn o Indeed por cómo funciona el pipeline. Para puestos donde postular el mismo día importa, prefiera Google Jobs sobre la búsqueda de LinkedIn si no usa supervisión directa del ATS. Nuestra comparación de los tres enfoques detalla la compensación práctica.
JSON-LD JobPosting es la primitiva silenciosa que sustenta la mayor parte de la infraestructura moderna de búsqueda de empleo. Los mismos datos que alimentaron a Google Jobs en el momento en que un puesto se publicó están en la página de la empresa esperando a ser leídos. Los agregadores añaden sus propias capas de ingestión, análisis, deduplicación y clasificación encima, razón por la cual van un día o dos por detrás de la fuente canónica.
Para la mayoría de los candidatos, la implicación práctica es más sencilla que la historia técnica: si está eligiendo entre canales de búsqueda de empleo, Google Jobs es estructuralmente más fresco que LinkedIn porque lee JSON-LD directamente. Si está construyendo cualquier tipo de supervisión usted mismo, JSON-LD es lo que debe leer, no el HTML renderizado, y desde luego no la copia indexada de los agregadores.