Todos los scrapers

Empleo

Company Career Sites Scraper

greenhouse.io, lever.co, ashbyhq.com, myworkdayjobs.com, smartrecruiters.com, workable.com, recruitee.com

100% Tasa de éxito
1.6s Respuesta media
Bot detection + rate limiting Protección
1101 llamadas Medido sobre

La mayoría de las empresas publican sus vacantes a través de un sistema de seguimiento de candidatos (ATS) alojado, y cada ATS da una forma distinta a sus datos de empleo. Un endpoint de plugin dedicado recibe la URL de la página de empleo de la empresa en Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable o Recruitee, o el ATS y el nombre del portal de la empresa, detecta el ATS y devuelve todas las vacantes abiertas con una misma estructura normalizada: id, título, el enlace a la oferta y a la solicitud, la ubicación principal y todas las ubicaciones, el país, el indicador de remoto y el tipo de lugar de trabajo (remoto, híbrido o presencial), el departamento y el equipo, el tipo de empleo, las fechas de publicación y de actualización, el id de requisición, los rangos salariales con moneda e intervalo cuando el ATS publica la remuneración, los campos propios del ATS y, con include_description=true, la descripción completa como texto y HTML. Filtra por palabras del título, ubicación, departamento o solo remoto, y limita el número con limit, hasta 2.000 empleos por llamada. Un enlace a una sola oferta devuelve solo esa oferta con su descripción. La respuesta también incluye el ATS detectado, la empresa, la URL del portal, el número de empleos del portal y cuántos coincidieron. Todo se lee de los datos públicos de empleo que el ATS sirve a sus propias páginas de empleo: sin navegador, sin inicio de sesión y sin cuenta en el ATS.

Qué puedes extraer

  • Id del empleo, título y enlaces a la oferta y al formulario de solicitud
  • Ubicación principal y todas las ubicaciones del empleo, país, indicador de remoto y tipo de lugar de trabajo (remoto, híbrido o presencial)
  • Departamento, equipo, tipo de empleo e id de requisición
  • Fechas de publicación y de actualización
  • Rangos salariales con mínimo, máximo, moneda e intervalo, cuando el ATS publica la remuneración
  • Descripción completa del empleo como texto y HTML (include_description=true)
  • Los campos propios del ATS, además del ATS detectado, la empresa, la URL del portal, los empleos del portal y los empleos coincidentes
  • Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable y Recruitee, a partir de la URL de una página de empleo o del ATS y el nombre del portal
  • Filtros por palabras del título, ubicación, departamento y remoto; hasta 2.000 empleos por llamada

Endpoints dedicados

/jobs/career-site

Empleos del sitio de empleo de una empresa

Todas las vacantes abiertas de un sitio de empleo alojado en Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable o Recruitee, a partir de la url de su página de empleo, o de provider y company (el nombre del portal tal como aparece en la URL de empleo, como stripe en Greenhouse o nvidia.wd5/NVIDIAExternalCareerSite en Workday). Cada empleo tiene id, title, company, provider, url, applyUrl, location, locations, country, remote, workplaceType, department, team, employmentType, postedAt, updatedAt, requisitionId, salary y salaryRanges (min, max, currency, interval), customFields y, con include_description=true, descriptionText y descriptionHtml; un campo que el ATS no expone es null. keyword (palabras del título), location, department y remote filtran los empleos, limit (1-2.000, por defecto 100) los limita, y proxy_country es opcional. La respuesta añade provider, company, companyName, boardUrl, totalJobs, matchedJobs, resultsCollected, pagesFetched y warnings. Un enlace a una sola oferta devuelve esa oferta con su descripción.

Cómo rastrearlo

curl -X POST \
  -H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
  "https://api.scrapeunblocker.com/jobs/career-site?url=https%3A%2F%2Fjobs.ashbyhq.com%2Framp&keyword=engineer"
import requests

resp = requests.post(
    "https://api.scrapeunblocker.com/jobs/career-site",
    headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
    params={"url": "https://jobs.ashbyhq.com/ramp", "keyword": "engineer"},
)
print(resp.text)
import { ScrapeUnblockerClient } from 'scrapeunblocker';

const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });

const board = await su.careerSiteJobs('https://jobs.ashbyhq.com/ramp', {
  keyword: 'engineer',
  includeDescription: true,
});
console.log(board);

Las peticiones son POST y sus parámetros van en la query string. El renderizado en navegador siempre ocurre: no hay ningún flag que activar.

Ejemplo de respuesta

{
  "provider": "ashby",
  "company": "ramp",
  "companyName": null,
  "boardUrl": "https://jobs.ashbyhq.com/ramp",
  "totalJobs": 165,
  "matchedJobs": 39,
  "resultsCollected": 39,
  "jobs": [
    {
      "id": "34413f8d-26bf-4bbc-8ade-eb309a0e2245",
      "title": "Security Engineer, Cloud",
      "company": "ramp",
      "provider": "ashby",
      "url": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245",
      "applyUrl": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245/application",
      "location": "New York, NY (HQ)",
      "locations": [ "New York, NY (HQ)", "Remote (Canada)", "Remote (US)" ],
      "country": null,
      "remote": true,
      "workplaceType": "hybrid",
      "department": "Engineering",
      "team": "Backend",
      "employmentType": "Full-time",
      "postedAt": "2026-04-07T17:12:35.753+00:00",
      "updatedAt": null,
      "requisitionId": null,
      "salary": {
        "min": 211400.0,
        "max": 290600.0,
        "currency": "USD",
        "interval": "year",
        "text": "$211.4K - $290.6K"
      },
      "salaryRanges": [
        {
          "min": 211400.0,
          "max": 290600.0,
          "currency": "USD",
          "interval": "year",
          "text": "$211.4K - $290.6K"
        }
      ],
      "customFields": null,
      "descriptionText": null,
      "descriptionHtml": null
    },
    {
      "id": "f564dcf9-9390-4a3f-896f-8047a5086040",
      "title": "Mobile Engineer, Android",
      "company": "ramp",
      "provider": "ashby",
      "url": "https://jobs.ashbyhq.com/ramp/f564dcf9-9390-4a3f-896f-8047a5086040",
      "applyUrl": "https://jobs.ashbyhq.com/ramp/f564dcf9-9390-4a3f-896f-8047a5086040/application",
      "location": "New York, NY (HQ)",
      "locations": [ "New York, NY (HQ)", "Remote (Canada)", "San Francisco, CA" ],
      "country": null,
      "remote": true,
      "workplaceType": "hybrid",
      "department": "Engineering",
      "team": "Mobile",
      "employmentType": "Full-time",
      "postedAt": "2025-07-31T21:58:34.674+00:00",
      "updatedAt": null,
      "requisitionId": null,
      "salary": { "min": 189000.0, "max": 330000.0, "currency": "USD", "interval": "year", "text": "$189K - $330K" },
      "salaryRanges": [
        { "min": 189000.0, "max": 330000.0, "currency": "USD", "interval": "year", "text": "$189K - $330K" }
      ],
      "customFields": null,
      "descriptionText": null,
      "descriptionHtml": null
    }
  ],
  "query": {
    "keyword": "engineer",
    "location": null,
    "department": null,
    "remote": false,
    "limit": 100,
    "includeDescription": false,
    "job": null
  },
  "pagesFetched": 1,
  "warnings": []
}

Leer la documentación

Preguntas frecuentes

¿Es legal hacer scraping de sitios de empleo de empresas?

Recopilar ofertas de empleo publicadas en los sitios de empleo de las empresas es lícito en muchas jurisdicciones, pero las normas dependen de tu país, de los datos que recopiles y de cómo los uses. A veces una descripción de empleo nombra a un reclutador o a un responsable de contratación, lo que puede ser un dato personal, así que cumple las normas de privacidad que se te apliquen. ScrapeUnblocker devuelve las ofertas públicas; qué recopilas y cómo lo usas es responsabilidad tuya.

¿Cómo hago scraping de empleos de Greenhouse, Lever o Workday sin que me bloqueen?

El plugin /jobs/career-site lee los datos públicos de empleo de cada ATS, el mismo JSON que cargan sus páginas de empleo, con un cliente HTTP desde exits ISP, así que no interviene ningún navegador ni se renderiza ninguna página. Cada worker de una llamada mantiene una conexión en un mismo exit mientras el ATS responde, lo que importa en Workday, donde un portal grande ocupa decenas de páginas de listado, y un exit que el ATS rechaza (un 403, un 429 o una respuesta que no son sus datos de empleo) se deja descansar para ese ATS y se cambia por uno nuevo. En el benchmark de ScrapeUnblocker devolvió datos en el 100 % de 1.101 llamadas, cada una al portal de empleo de una empresa distinta, unos 1,6 s por llamada.

¿Qué plataformas ATS se admiten y cómo indico un portal?

Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable y Recruitee. Pasa como url la página de empleo de la empresa en el ATS, como https://job-boards.greenhouse.io/stripe, https://jobs.lever.co/palantir, https://jobs.ashbyhq.com/ramp, https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite, https://jobs.smartrecruiters.com/Ubisoft2, https://apply.workable.com/huggingface o https://bunq.recruitee.com, y el ATS y el portal se leen de ella. O pasa provider y company: el token del portal de Greenhouse, el slug de Lever, Ashby, Workable o Recruitee, el id de empresa de SmartRecruiters, o tenant.wdN/site para Workday. Una página de empleo en el dominio propio de la empresa no se lee directamente; usa el enlace del ATS al que apuntan sus botones de empleo.

¿Cuántos empleos puedo obtener por llamada?

limit limita los empleos devueltos: 100 por defecto, hasta 2.000. Greenhouse, Ashby, Workable y Recruitee entregan todo el portal en una sola respuesta, así que los filtros se aplican en ScrapeUnblocker y vuelven todos los empleos coincidentes. Lever y SmartRecruiters se leen a 100 empleos por página y Workday a 20 por página, y solo se leen las páginas que necesita limit; la palabra clave también se envía a la búsqueda propia de Workday y de SmartRecruiters, y los filtros de ubicación, departamento y remoto de Workday se usan cuando el portal tiene uno que coincide. Workday responde como máximo hasta 2.000 empleos de profundidad en una búsqueda, así que acota un portal de Workday más grande con keyword o location. totalJobs y matchedJobs dan el tamaño del portal y de la coincidencia, y warnings indica cuándo un ATS dejó de responder a mitad de camino.

¿Obtengo salarios y descripciones completas de los empleos?

El salario vuelve cuando el ATS publica la remuneración, como los rangos salariales de Greenhouse, los rangos de Lever o la compensación de Ashby, si la empresa los rellena: salary es el rango principal y salaryRanges todos los rangos, cada uno con min, max, currency e interval; en caso contrario salary es null y salaryRanges está vacío. La descripción completa llega con include_description=true, como texto y como HTML. Greenhouse, Lever, Ashby, Workable y Recruitee la incluyen en los datos del portal; en Workday y SmartRecruiters cada descripción es una petición aparte, leída como máximo para 300 empleos por llamada.

¿Cuánto cuesta hacer scraping de sitios de empleo?

Cada petición al ATS que devuelve datos se factura como una petición, y pagesFetched muestra el número exacto: un portal completo de Greenhouse, Ashby, Workable o Recruitee es 1 petición tenga los empleos que tenga, Lever y SmartRecruiters son 1 por cada 100 empleos leídos y Workday 1 por cada 20, y en Workday y SmartRecruiters cada descripción leída con include_description=true es una más. 1 petición = 1 crédito, 1,00 EUR por cada 1.000 en Pay as you go, bajando hasta unos 0,55 EUR por cada 1.000 en el plan Ultimate. No se facturan los bloqueos ni los timeouts, y la prueba gratuita incluye 500 peticiones sin tarjeta.

Scrapers relacionados

Company Career Sites y los demás nombres y marcas de greenhouse.io, lever.co, ashbyhq.com, myworkdayjobs.com, smartrecruiters.com, workable.com, recruitee.com pertenecen a su titular y aquí se usan solo para identificar el sitio web con el que funciona esta API. ScrapeUnblocker es un servicio independiente: no está afiliado al titular de greenhouse.io, lever.co, ashbyhq.com, myworkdayjobs.com, smartrecruiters.com, workable.com, recruitee.com ni cuenta con su respaldo o patrocinio.

Empieza a rastrear este sitio hoy

Plan gratuito incluido. No necesitas tarjeta para probarlo.