En una due diligence, el portal de empleo actual es la vista menos útil de la contratación de un objetivo. Muestra lo que está abierto hoy. Las preguntas que importan tratan del cambio: ¿se frenó la contratación comercial dos meses antes de que empezara el proceso?, ¿qué puestos se han vuelto a publicar tres veces?, ¿la nueva región del deck llegó a tener una sola requisición?
Una API de ofertas de empleo para due diligence tiene que responder a esas preguntas, y tienes semanas, no un año de instantáneas. Cómo leer el portal actual de un objetivo en JSON lo explica el post de ofertas de empleo para consultores. Este post cubre lo que aquel dice que no puede hacer: el historial anterior a tu primera instantánea.
¿Dónde está el historial de contratación de un objetivo?
A menudo en la Wayback Machine, que con frecuencia lleva años capturando el portal. Su índice CDX lista cada captura de una URL, y collapse=timestamp:6 deja una por mes:
curl -X POST https://crawlforge.dev/api/v1/tools/fetch_url \
-H "X-API-Key: cf_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"url": "https://web.archive.org/cdx/search/cdx?url=job-boards.greenhouse.io/target-co&output=json&fl=timestamp,statuscode&filter=statuscode:200&collapse=timestamp:6&from=2025"
}'Esa llamada cuesta 1 credit y devuelve filas como ["20250320221034","200"], una por mes. En un portal de Greenhouse que revisamos, la página HTML tenía una captura en cada uno de los últimos 20 meses, mientras que su endpoint JSON tenía tres capturas válidas en todo el año. La cobertura del archivo varía según la URL, así que consulta el índice para cada dirección que haya tenido el portal y quédate con la más densa.
¿Cómo se lee un portal archivado?
Añade id_ después del timestamp. Así el archivo devuelve el cuerpo original, sin su barra de reproducción:
{
"url": "https://web.archive.org/web/20250320221034id_/https://job-boards.greenhouse.io/target-co",
"max_inline_chars": 1000000
}Cada captura cuesta 1 credit con fetch_url. Una captura archivada de la API es el JSON del portal tal como se servía ese día. Una página HTML de Greenhouse archivada también incrusta sus puestos como datos, cada uno con published_at, updated_at y requisition_id. Sube max_inline_chars, porque la captura HTML que revisamos pesaba unos 550 KB, muy por encima del valor por defecto de 40.000 caracteres.
¿Qué debería mostrarte la comparación?
Agrupa cada captura por requisition_id en lugar del id de oferta, cuando la empresa lo rellena. Una misma requisición suele publicarse en varias ciudades, cada una con su propio id de oferta, así que contar ofertas exagera la contratación. Después alinea los meses:
| Patrón entre capturas | Pregunta para la dirección |
|---|---|
| Las requisiciones de ventas o ingeniería desaparecen en los meses previos al proceso | ¿Hubo una congelación de contrataciones, y por qué? |
| La misma requisición se vuelve a publicar con nuevos ids de oferta | ¿Ha costado cubrir el puesto, o se ha cubierto más de una vez? |
| Un puesto abierto desde la primera captura | ¿Sigue teniendo presupuesto, o es una oferta que nunca se cierra? |
| La región de expansión del deck no tiene requisiciones | ¿Cuándo recibe plantilla la expansión? |
| Un puesto directivo aparece, desaparece y vuelve a aparecer | ¿Quién se fue y quién está cubriendo el puesto? |
Comparar el número actual de puestos comerciales con el deck es otra comprobación, cubierta en el post de due diligence comercial.
¿Cuánto cuesta?
Una llamada CDX, doce capturas mensuales y el portal actual suman 14 credits por objetivo. Con cinco empresas comparables son 84 credits, unos 25 céntimos a 3 $ el millar. La asignación única de una cuenta nueva da para unos 70 objetivos.
¿Dónde se queda corta una API de ofertas de empleo para due diligence?
- Los huecos son del archivo, y no puedes rellenarlos. Un portal que nadie capturó no tiene historial, y un mes sin captura es un vacío, no un cero.
- Las ofertas no son plantilla. Una requisición indica que un puesto tenía presupuesto, no que se contratara a alguien ni que el puesto fuera real.
- El HTML puede contener una sola página. La captura que revisamos incrustaba 50 puestos; un portal más grande puede necesitar su captura de la API.
- Solo capturas públicas. Nada de esto llega al CIM ni a las cuentas de gestión. Se respeta el
robots.txtdel propio archivo como el de cualquier sitio, y una petición rechazada no se cobra.
Crea una cuenta gratuita y descarga el último año del portal de tu objetivo actual antes de la reunión con la dirección. Todos los parámetros están en la referencia de fetch_