Los consultores leen las ofertas de empleo por lo que dicen de una empresa, no por los puestos en sí. Un objetivo que afirma estar subiendo de segmento debería estar contratando ejecutivos de cuentas enterprise. Que los tres rivales más cercanos de un cliente abran puestos de ingeniería de datos en el mismo trimestre ya es una diapositiva. Un encargo de diseño organizativo empieza por ver cómo nombran y dónde ubican la misma función las empresas comparables.
Los proveedores que posicionan para datos de empleo venden feeds que agregan las ofertas de miles de empleadores, algo que encaja con un estudio del mercado laboral. Una API de ofertas de empleo para consultores suele tener una tarea más acotada: estas doce empresas concretas, qué están contratando, dónde y desde cuándo. Para esa pregunta los datos ya existen, publicados por cada empresa, en JSON.
¿Dónde están las ofertas de empleo de una empresa, como datos?
En su sistema de seguimiento de candidatos (ATS). Muchísimas páginas de empleo, sobre todo en empresas respaldadas por capital riesgo, son la fachada de Greenhouse, Lever o Ashby, y los tres ofrecen una API pública de ofertas, sin autenticación:
| ATS | Endpoint | Qué lleva cada puesto |
|---|---|---|
| Greenhouse | boards-api.greenhouse.io/v1/boards/{token}/departments | título, ubicación, first_published, updated_at, agrupados por departamento |
| Lever | api.lever.co/v0/postings/{company}?mode=json | text (el título), equipo, ubicación, tipo de jornada, createdAt |
| Ashby | api.ashbyhq.com/posting-api/job-board/{name} | título, departamento, ubicación, publishedAt |
El {token} está en los enlaces de la página de empleo. Un scrape con el formato links cuesta 2 credits; busca job-boards.greenhouse.io/, jobs.lever.co/ o jobs.ashbyhq.com/ seguido de un nombre. Ese nombre es el token. Una empresa con Workday o con una página propia no tiene un endpoint así, y su página de empleo se lee con scrape como cualquier otra.
¿Qué devuelve una llamada?
El tablón de ofertas, sin procesar. fetch_url cuesta 1 credit y pone el cuerpo de la respuesta en content:
curl -X POST https://crawlforge.dev/api/v1/tools/fetch_url \
-H "X-API-Key: cf_live_NORTHWIND_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://boards-api.greenhouse.io/v1/boards/rival-a/departments",
"max_inline_chars": 1000000
}'Sube max_inline_chars, porque los tablones son más grandes de lo que parecen. Un tablón de Greenhouse con 665 puestos devolvió unos 480 KB a través de /departments, muy por encima del valor por defecto de 40.000 caracteres. Con el valor por defecto recibes una vista previa y un result_handle, y el resto se lee con read_result por 1 credit. Lever y Ashby incluyen la descripción completa de cada puesto, así que un tablón grande llega a varios megabytes; Lever acepta limit y skip para paginarlo.
Lo que hace esto mejor que extraer una página de empleo es la fecha. first_published te dice que un puesto comercial lleva abierto desde el pasado diciembre, y una vacante abierta desde hace diez meses dice algo muy distinto de una publicada esta semana.
¿Cómo comparas un grupo de empresas comparables a lo largo del tiempo?
Toma una instantánea con una periodicidad fija y compara por id de puesto. Los ids nuevos son vacantes nuevas; los que desaparecen se cubrieron o se retiraron. Doce empresas cuestan 12 credits por instantánea, así que una instantánea semanal durante un encargo de 13 semanas son 156 credits. Hazlo con una clave con el nombre del cliente y el gasto queda en el registro de peticiones bajo ese nombre.
Si la evidencia está en una página de empleo renderizada y no en un tablón, un monitor por cliente la vigila por ti. Cuando la pregunta sobre contratación forma parte de una due diligence (contrastar la historia de crecimiento de un objetivo con sus propias vacantes abiertas), el artículo sobre due diligence explica dónde encaja.
¿Qué no hace?
- No es un feed agregado. No busca en portales de empleo ni construye un índice entre empleadores. Los estudios de salarios o de demanda de todo el mercado necesitan un proveedor de datos.
- No hay historial anterior a tu primera instantánea. Un tablón muestra lo que está abierto ahora. El archivo son las instantáneas que guardes.
- No normaliza. Títulos, departamentos y ubicaciones llegan tal como los escribió cada empresa; mapear "AE, Mid-Market" a una taxonomía común es trabajo tuyo.
- No hay personas. Devuelve puestos, no responsables de contratación ni datos de contacto.
robots.txtse respeta por defecto. Una URL no permitida se rechaza antes de obtener nada y no cuesta nada.
Empieza gratis con 1.