ATS Jobs API
Empleos abiertos en las empresas que nombres, leídos en vivo desde Greenhouse, Lever, Ashby, Workday y 18 bolsas de trabajo más. $0.01 por empresa, facturado a tu cuenta de Apify.
Servidor MCP alojado
npx add-mcp 'https://mcp.apify.com?tools=conserving_celerytop/live-career-page-jobs-api'Se instala en Claude Code, Codex, Cursor y más
Documentación
ATS & Career Page Jobs Scraper: Greenhouse, Lever +20 (conserving_celerytop/live-career-page-jobs-api) Actor
Rascador de empleos en páginas de carrera y API de empleos ATS: cada empleo abierto en las empresas que nombres, leído en vivo desde Greenhouse, Lever, Ashby, Workday y 18 bolsas de trabajo más. Paga por empresa, hasta 1,000 empleos incluidos. Alertas de nuevos empleos a Slack. Listo para MCP. Sin clave API ni inicio de sesión.
- URL: https://apify.com/conserving\_celerytop/live-career-page-jobs-api.md
- Desarrollado por: Don Mangu (comunidad)
- Estadísticas: 2 usuarios totales, 1 usuario mensual, 100.0% de ejecuciones exitosas, 0 marcadores
- Valoración de usuarios: Sin valoraciones aún
Precios
desde $36.00 / 1,000 empresas
Este Actor se paga por evento. No se te cobra por el uso de la plataforma Apify, sino solo un precio fijo por eventos específicos. Como este Actor admite descuentos de Apify Store, el precio baja cuanto mayor sea tu plan de suscripción.
Aprende más: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event
¿Qué es un Apify Actor?
Un Actor es un programa en la nube sin servidor que se ejecuta en la plataforma Apify. Tiene dos modos de ejecución. En modo Batch, un Actor acepta una entrada JSON bien definida, realiza una acción que puede tomar desde unos segundos hasta unas horas, y opcionalmente produce una salida JSON bien definida, conjuntos de datos con resultados, o archivos en el almacén de clave-valor. En modo Standby, un Actor proporciona un servidor web que puede usarse como sitio web, API o servidor MCP.
El vocabulario de Apify y el modelo de plataforma se definen una vez, en el inicio rápido del agente en https://apify.com/agents.md.
¿Cómo integrar un Actor?
Si te preguntan sobre integración, ayudas a los desarrolladores a integrar Actores en sus proyectos. Te adaptas a su stack y entregas integraciones seguras, bien documentadas y listas para producción.
No adivines una ruta de integración. Cada una de ellas está en el inicio rápido del agente en https://apify.com/agents.md: el servidor MCP de Apify, Agent Skills con el CLI de Apify, los clientes de JavaScript y Python, la API REST, y la ruta sin cuenta para un agente sin humano que inicie sesión. También incluye la regla de indicar el costo antes de la primera ejecución pagada.
Para ejemplos ya conectados al esquema de entrada de este Actor, consulta la sección API a continuación.
Cada biblioteca de cliente tiene documentación de referencia que el inicio rápido no repite: JavaScript/TypeScript (npm install apify-client) y Python (pip install apify-client).
README
ATS Jobs API es un rascador de empleos en páginas de carrera para las empresas que nombres: lee cada empleo abierto en sus páginas de carrera en vivo, desde Greenhouse, Lever, Ashby, Workday y 18 bolsas de trabajo más (ATS), incluidos empleos publicados hace meses que siguen abiertos. Pega enlaces de bolsas de trabajo, sitios web o nombres de empresas. Pagas por empresa, con hasta 1,000 de sus empleos incluidos, y no hay clave API ni inicio de sesión.
Una empresa con 100 empleos abiertos cuesta una consulta de empresa. El precio es de $0.045 por empresa, menos en planes pagados de Apify; la pestaña Precios muestra los precios actuales. Si tus empresas tienen alrededor de 100 empleos abiertos cada una, pagas alrededor de $0.45 por 1,000 empleos. En las 490 empresas de nuestras listas de IA y tecnología, con 44,578 empleos abiertos el 25 de septiembre de 2026, eso resultó en alrededor de $0.49 por 1,000 empleos. El precio "desde" de la Store es el precio del plan Business por 1,000 empresas. El plan gratuito de Apify da $5 de crédito al mes, que cubre alrededor de 110 empresas.
- Sitios de empleo y boletines extraen empleos actuales de una lista de empleadores. En un horario diario, Solo empleos nuevos devuelve solo los nuevos y los cerrados, para agregar y expirar listados.
- Reclutadores observan empresas objetivo para nuevos roles, con salarios cuando se publican.
- Equipos de ventas y RevOps rastrean señales de contratación. Una fila de resumen por empresa da empleos abiertos, empleos publicados en los últimos 7 y 30 días, y la proporción de roles de ingeniería y ventas.
- Desarrolladores y agentes de IA lo llaman a través de la API de Apify o el servidor MCP de Apify.
Lee Greenhouse, Lever, Ashby, Workable, Personio, Teamtailor, Recruitee, JOIN, Homerun, Gem, JazzHR, Paylocity, Freshteam, PageUp, Polymer, HireHive, HiringThing, Trakstar Hire, ClearCompany y GoHire, y Workday y Eightfold donde el robots.txt del empleador lo permite. Un nombre de empresa simple funciona para muchas empresas pero no para todas, y un sitio web como stripe.com funciona cuando el sitio enlaza a su bolsa de trabajo. Una empresa sin nada que devolver recibe una fila de estado que explica por qué.
No busca todas las empresas por palabra clave. Tú traes la lista, o eliges una ya hecha, y devuelve lo que sus bolsas de trabajo muestran ahora mismo. Consulta cómo esto difiere de una base de datos de búsqueda de empleo.
Pruébalo ahora. Haz clic en Probar gratis y crea una cuenta gratuita de Apify, sin necesidad de tarjeta de crédito. El formulario está completado con Stripe (Greenhouse), Palantir (Lever) y Ashby (Ashby). Haz clic en Iniciar para obtener alrededor de 1,000 empleos en unos segundos, por $0.135. Para probar más empresas después, elige una lista en Listas de empresas listas, como Empresas remotas primero (90 empresas, alrededor de $4.05).
Obtén nuevos empleos de páginas de carrera cada mañana
- Activa Solo empleos nuevos desde mi última revisión y pega un webhook entrante de Slack en URL del webhook de alerta.
- Haz clic en Iniciar una vez. Esta primera revisión devuelve cada empleo abierto, cuesta una consulta de empresa por empresa y no envía ningún mensaje.
- Haz clic en Guardar como nueva tarea, luego agrega la tarea a un horario diario en Horarios y actívala.
Después de eso, cada revisión envía un mensaje cuando hay empleos nuevos o cerrados, y nada en días tranquilos. Una revisión posterior cuesta $0.002 por cada 1,000 empleos abiertos iniciados en la bolsa de una empresa, así que 50 empresas con hasta 1,000 empleos abiertos cada una cuestan $0.10 al día, alrededor de $3 al mes. Todos los pasos, y Google Sheets o correo electrónico en su lugar.
¿Qué datos de empleo obtienes?
Estas son cuatro de las 1,080 filas que la entrada precompletada devolvió el 24 de septiembre de 2026.
| Empresa | Título | Ubicación | Lugar de trabajo | Función del empleo | Salario | Publicado |
|---|---|---|---|---|---|---|
| Stripe | Sourcer, GTM | Chicago, Atlanta, US-Remote | remoto | people_hr | 2026-09-24 | |
| Palantir | Security Systems Engineer | Seattle, WA | híbrido | it_security | 2026-09-23 | |
| Ashby | Product Manager, Onboarding and Growth | Remoto - EE. UU. | remoto | product | 180,000 a 260,000 USD al año | 2026-09-11 |
| Ashby | Product Support Engineer - EMEA | Reino Unido | remoto | customer_success | 75,000 a 104,000 GBP al año | 2026-09-14 |
Cada fila también tiene el enlace del empleo, código de país, seniority, tipo de empleo y salario anual, y para una ciudad que conocemos, sus coordenadas y zona horaria. Las celdas vacías son valores que la bolsa no proporciona. Activa Incluir descripción del empleo para agregar el texto completo, las herramientas que cada empleo nombra, y el salario, años de experiencia, educación y patrocinio de visa escritos en él. En nuestras pruebas, el 96.5% de las ubicaciones de empleo obtuvieron un país.
Cómo rascar empleos de Greenhouse, Lever, Ashby y otras páginas de carrera
- Haz clic en Probar gratis.
- En Empresas, pega enlaces de bolsas de trabajo, sitios web o nombres de empresas, uno por línea, hasta 500. Para un enlace de bolsa, abre cualquier empleo en la página de carrera de la empresa y copia su enlace.
- Configura filtros si los necesitas, como El título incluye o Ubicación.
- Haz clic en Iniciar. Abre la vista Empleos y exporta como JSON, CSV o Excel.
Para descripciones de bolsas con miles de empleos, elige 512 MB de memoria.
¿Cuánto cuesta la API de empleos ATS?
Pagas por empresa, menos en planes pagados de Apify, y eso incluye hasta 1,000 de sus empleos abiertos. La pestaña Precios en la página de la Store muestra los precios actuales.
| Evento | Precio | Qué obtienes |
|---|---|---|
Empresa (company-lookup) | $0.045 por empresa; $0.0428 en Starter, $0.0405 en Scale, $0.036 en Business | Todos los empleos abiertos de una empresa, hasta 1,000 filas, incluida la primera revisión con Solo empleos nuevos, también cuando su bolsa está vacía, no se encuentra o falla |
Bloque de empleos extra (extra-1000-jobs) | $0.01 por 1,000 empleos | Cada 1,000 filas adicionales de la misma empresa, o parte de ellas |
Revisión de monitoreo repetida (new-jobs-check) | $0.002 por revisión | Una revisión posterior con Solo empleos nuevos, por cada 1,000 empleos abiertos en la bolsa o parte de ellos, también cuando la bolsa está vacía, no se encuentra o falla |
Bloque de descripción (job-details) | $0.01 por 200 empleos | Descripciones de 200 empleos, o parte de ellos, en JazzHR, Paylocity, Freshteam, JOIN, Polymer, ClearCompany, GoHire, Workday o Eightfold, y en portales de carrera de HiringThing que listan los empleos de varias ubicaciones. Otras bolsas incluyen descripciones sin costo adicional |
Entradas inválidas, no compatibles, duplicadas y omitidas, y sitios web que no podemos abrir, son gratuitas. Estados y cargos lista cada caso.
- Una empresa con 2,624 empleos cuesta la consulta más 2 bloques extra: $0.065.
- Los filtros y Máximo de empleos por empresa bajan el precio de las filas de empleo solo por encima de 1,000 empleos, y pueden bajar el precio de descripción en cualquier tamaño. Los filtros que leen descripciones agregan el precio de descripción en las bolsas anteriores.
- Si tu límite de gasto no puede cubrir los cargos de una empresa, no entregamos ninguno de sus empleos y no cobramos nada por ella.
- En una ejecución normal, el uso de la plataforma Apify está incluido.
| Ejemplo | ATS Jobs API | Precio por empleo, $1 a $4 por 1,000 empleos |
|---|---|---|
| 1 empresa con alrededor de 690 empleos abiertos | $0.045 ($0.065 por 1,000 empleos) | $0.69 a $2.76 |
| 100 empresas con alrededor de 40 empleos cada una | $4.50 ($1.13 por 1,000 empleos) | $4 a $16 |
| 85 empresas de tamaño mixto, 7,096 empleos | $3.84 ($0.54 por 1,000 empleos) | $7.10 a $28.38 |
El precio por empleo es más barato solo para bolsas con menos de alrededor de 45 empleos, y para revisiones diarias de empresas pequeñas que rara vez publican.
¿Para qué puedes usarlo?
Señales de contratación para una lista de cuentas
Pega tus cuentas como sitios web o dominios. Configura Filas a devolver a una fila de resumen por empresa. Cada fila da roles abiertos y roles publicados en los últimos 30 días, en total y por función de empleo. Lista roles abiertos de director, VP y nivel C, y roles cuyo título los llama primera o fundadora contratación. Con Solo empleos nuevos en un horario semanal, también nombra las funciones de empleo y países donde una empresa comenzó a contratar desde tu última revisión.
Activa Incluir descripción del empleo, gratis en la mayoría de las bolsas, para agregar las herramientas que las publicaciones nombran, como Salesforce o Snowflake, y primeras contrataciones que solo el texto del empleo menciona.
Detecta posibles empleos fantasma
Un empleo que permanece publicado durante meses, o que vuelve con una nueva id, puede no ser una vacante real. Configura Publicado antes a 90 days para listar empleos publicados hace más de 90 días, o lee jobsOpenOver90Days en la fila de resumen. Con Solo empleos nuevos, los empleos nuevos con el título y ubicación de un empleo cerrado en los últimos 30 días tienen reposted configurado como true, los empleos cerrados tienen daysOpen, y la fila de resumen agrega repostedJobs y medianDaysOpen. Un empleo antiguo o republicado es una señal, no una prueba, ya que algunas empresas contratan para el mismo rol todo el año.
Monitorea publicaciones de empleo de competidores
Sigue a algunos competidores semanalmente y observa qué equipos, ubicaciones y niveles de seniority contratan.
Rangos salariales de publicaciones de empleo
Donde una empresa publica salario, obtienes mínimo, máximo, moneda y período, más una cifra anual para comparar. Configura un salario anual mínimo para mantener solo empleos en o por encima de él.
Obtén solo empleos nuevos y cerrados en un horario
- Activa Solo empleos nuevos desde mi última revisión y dale a la lista de seguimiento un Nombre de monitor.
- Haz clic en Iniciar una vez. Esta primera revisión devuelve cada empleo abierto y cuesta una consulta de empresa por empresa.
- Haz clic en Guardar como nueva tarea.
- Abre Horarios, haz clic en Crear nuevo, elige la frecuencia y tu zona horaria, agrega la tarea y haz clic en Activar. Los nuevos horarios comienzan desactivados.
Cada revisión posterior devuelve empleos nuevos que coinciden con tus filtros y empleos cerrados que recibiste, con change configurado como new o closed. Cuesta $0.002 por empresa con hasta 1,000 empleos abiertos.
También devolver empleos actualizados (includeUpdatedJobs) agrega empleos cuyo título, ubicación, salario o tipo de empleo cambió, con change configurado como updated. Con Incluir descripción del empleo, solo los empleos nuevos obtienen una descripción.
Un nuevo trabajo con el mismo título y ubicación que un trabajo que recibiste y que se cerró en los últimos 30 días es una republicación, marcada como reposted. Omitir trabajos republicados (skipReposts) deja fuera las republicaciones. No reciben fila, no se cuentan como nuevos y no aparecen en la alerta, y el skippedRepostsCount de la empresa indica cuántos hubo.
Lo que recibiste se guarda en tu cuenta de Apify, en el almacén de clave-valor live-career-page-jobs-api-monitor-<monitor name>. El mensaje de estado comienza con lo que cambió, como "12 trabajos nuevos y 3 cerrados en 5 de 40 empresas".
Enviar nuevos trabajos a Slack, Google Sheets o correo electrónico
Nuevos trabajos en Slack cada mañana. Programa la tarea para la mañana. En su pestaña Integraciones, elige Slack, conecta tu espacio de trabajo, selecciona un canal y los eventos Ejecución exitosa y Ejecución fallida, y pega este mensaje. Llega después de cada verificación, también en días tranquilos.
*Job changes at your watchlist*
{{resource.statusMessage}}
<https://console.apify.com/storage/datasets/{{resource.defaultDatasetId}}|Open the jobs>
O salta los días tranquilos con la alerta integrada. Pega un webhook entrante de Slack, Discord o Teams, o un webhook de Make, Zapier o n8n, en URL del webhook de alerta (alertWebhookUrl). Después de una verificación con trabajos nuevos o cerrados, envía un mensaje gratuito con hasta alertMaxJobs trabajos (por defecto 10) y sus enlaces, y luego enlaza el resto. No envía nada en días tranquilos, ni en una primera verificación a menos que actives alertOnFirstCheck.
Una hoja de Google con cada trabajo nuevo. En la misma pestaña, añade el Actor Google Sheets Import & Export, conecta Google, selecciona la hoja de cálculo, establece el Modo en append y pega esta función de Transformación. Cada verificación añade una fila por trabajo nuevo o cerrado.
({ spreadsheetData, datasetData }) => spreadsheetData.concat(datasetData
.filter((r) => r.rowType === 'job')
.map((r) => ({
change: r.change ?? '', company: r.companyName ?? r.companySlug ?? '', title: r.title ?? '', jobFunction: r.jobFunction ?? '',
seniority: r.seniority ?? '', location: r.location ?? '', salaryAnnualMin: r.salaryAnnualMin ?? '',
salaryAnnualMax: r.salaryAnnualMax ?? '', salaryCurrency: r.salaryCurrency ?? '', postedAt: r.postedAt ?? '', url: r.url ?? '',
})))
Cada trabajo nuevo o cerrado también tiene alertText, una línea simple como "Nuevo en Stripe: Ingeniero de Datos Senior, Remoto (EE. UU.), USD 180,000 a 240,000 al año", lista para mapear en Zapier, Make, n8n o Slack. La vista Alertas muestra solo los campos que necesita una alerta. En la API, añade view=alerts, también con format=csv, html o rss.
Un correo electrónico solo en días con trabajos nuevos. Pega un webhook de Make, Zapier o n8n en URL del webhook de alerta, añade un paso que continúe solo cuando newJobs sea mayor que 0, y envía por correo el text del mensaje. La integración Enviar resultados por correo electrónico vía Gmail de Apify, con el conjunto de datos adjunto como CSV, envía uno después de cada verificación en su lugar.
Tres cosas que debes saber antes de la primera alerta.
- Ejecuta la tarea una vez manualmente antes de añadir una integración, ya que la primera verificación devuelve cada trabajo abierto como nuevo.
- Los nuevos filtros o un nuevo nombre de monitor inician una nueva memoria, por lo que la siguiente verificación vuelve a ser una primera verificación, al precio de empresa.
- Una ejecución manual entre ejecuciones programadas toma los trabajos nuevos, por lo que el siguiente mensaje programado no los mostrará. Las tareas con el mismo nombre de monitor y filtros comparten una memoria.
Recetas listas
Pega una receta en la vista JSON del formulario, introduce tus empresas y prográmala como se indicó anteriormente. Los costos mensuales asumen hasta 1,000 trabajos abiertos por empresa, después de la primera verificación.
Nuevos trabajos de ventas en tus cuentas objetivo. Cada lunes a Slack, $0.009 por empresa al mes.
{"companies": ["https://boards.greenhouse.io/datadog", "https://boards.greenhouse.io/gongio", "https://jobs.ashbyhq.com/ramp"], "jobFunctions": ["sales"], "onlyNewJobs": true, "monitorName": "sales-accounts"}
Nuevos trabajos en empresas de IA. Cada día a Google Sheets, $0.06 por empresa al mes.
{"companies": ["https://jobs.ashbyhq.com/openai", "https://boards.greenhouse.io/anthropic", "https://jobs.ashbyhq.com/cursor"], "onlyNewJobs": true, "monitorName": "ai-companies-daily", "maxJobsPerCompany": 100}
Contratación de competidores por función laboral. Cada lunes por correo electrónico, $0.009 por empresa al mes. Una fila de resumen por competidor.
{"companies": ["https://jobs.ashbyhq.com/cognition", "https://jobs.ashbyhq.com/replit", "https://jobs.ashbyhq.com/lovable"], "outputMode": "companies", "onlyNewJobs": true, "monitorName": "competitors-weekly"}
Rangos salariales por rol en competidores. Cada lunes a Google Sheets, $0.009 por empresa al mes.
{"companies": ["https://jobs.ashbyhq.com/baseten", "https://jobs.ashbyhq.com/modal", "https://boards.greenhouse.io/coreweave"], "hasSalary": true, "onlyNewJobs": true, "includeUpdatedJobs": true, "monitorName": "competitor-salaries"}
Tableros de empleo ATS compatibles
| Tablero de empleo | Pega un enlace como |
|---|---|
| Greenhouse | boards.greenhouse.io/stripe, job-boards.greenhouse.io/stripe |
| Lever | jobs.lever.co/palantir, jobs.eu.lever.co/<company> |
| Ashby | jobs.ashbyhq.com/openai |
| Workday | nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite, wd1.myworkdaysite.com/recruiting/wf/WellsFargoJobs |
| Eightfold | paypal.eightfold.ai/careers, careers.micron.com/careers |
| Workable | apply.workable.com/blueground |
| Personio | ottonova.jobs.personio.com (o .de) |
| Teamtailor | polestar.teamtailor.com, <company>.na.teamtailor.com |
| Recruitee | fastned.recruitee.com |
| JOIN | join.com/companies/getklar |
| Homerun | moneybird.homerun.co |
| Gem | jobs.gem.com/retool |
| JazzHR | nro.applytojob.com |
| Paylocity | recruiting.paylocity.com/Recruiting/Jobs/All/<company-GUID> |
| Freshteam | upswing.freshteam.com/jobs |
| PageUp | careers.pageuppeople.com/865/cw/en-us/listing |
| Polymer | jobs.polymer.co/magnendo |
| HireHive | focus-ireland.hirehive.com |
| HiringThing | vault-manufacturing.hiringthing.com, <company>.applicant-tracking.com |
| Trakstar Hire (Recruiterbox) | stax.hire.trakstar.com |
| ClearCompany | medcor.hrmdirect.com/employment/job-openings.php |
| GoHire | jobs.gohire.io/dexerto-de5jlhjo |
Cada tablero se lee solo donde su robots.txt lo permite; los sitios de Workday y Eightfold según el archivo propio del empleador. Los tableros de Greenhouse alojados en la UE aún no son compatibles. iCIMS, SmartRecruiters, Dayforce, Paycor, UKG, CareerPlug, Hireology, isolved, Avature, Pinpoint, Comeet, softgarden, LinkedIn, Indeed y otros tableros cuyos términos no permiten claramente este uso no se leen. Tampoco los empleadores que solo publican sus trabajos en su propio sitio de carrera, como Google, Apple, Amazon, Meta y Tesla. Todos estos devuelven unsupported_job_board, gratis, y error explica por qué.
En nuestra prueba de 81 nombres de empresas conocidas, un nombre simple como stripe o Zalando SE encontró el tablero correcto de la empresa en 49 casos. Un nombre que no se encuentra cuesta el precio de empresa, y también un sitio web en el que no encontramos ningún tablero de empleo (no_job_board_found), por lo que para grandes empleadores pega el enlace de un trabajo en su lugar. matchedBy indica cómo se emparejó cada tablero (link, website, directory, name o name variant). warning marca muchos nombres que pueden pertenecer a otra empresa, pero no todos, así que verifica companyName y boardUrl cuando sea importante. Cuando una empresa tiene varios sitios de carrera, warning nombra el que leemos.
API de trabajos de Greenhouse, Lever y Ashby
API de tablero de empleo de Greenhouse
Pega boards.greenhouse.io/stripe o cualquier enlace de trabajo del tablero para obtener cada trabajo abierto con departamento, ubicación, fecha de publicación y rangos salariales publicados. Las descripciones son gratuitas.
API de publicaciones de Lever
Pega jobs.lever.co/palantir, o jobs.eu.lever.co/<company> para un tablero en la UE, para obtener cada trabajo abierto con departamento, ubicación, remoto o híbrido, tipo de trabajo, fecha de publicación y rango salarial cuando se muestra. Las descripciones son gratuitas.
API de trabajos de Ashby
Pega jobs.ashbyhq.com/openai para obtener cada trabajo abierto con departamento, ubicación, remoto o híbrido, tipo de trabajo, fecha de publicación y salario cuando se publica. Las descripciones son gratuitas.
API de trabajos de Workday
Pega un enlace de sitio de carrera, como nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite, para obtener cada trabajo abierto con ubicación, departamento y enlace de solicitud. Las descripciones cuestan $0.01 por cada 200 trabajos.
Sitios de carrera de Eightfold
Pega un enlace de sitio de carrera, como paypal.eightfold.ai/careers o careers.micron.com/careers, para obtener cada trabajo abierto con ubicación, remoto o híbrido, fecha de publicación y enlace de solicitud. Las descripciones cuestan $0.01 por cada 200 trabajos.
Úsalo desde agentes de IA (MCP)
ATS Jobs API está listo para MCP a través del servidor MCP alojado de Apify, por lo que Claude, ChatGPT, Cursor, VS Code y otros clientes MCP pueden llamarlo como herramienta. Añade este servidor a tu cliente:
{"mcpServers": {"apify": {"type": "http", "url": "https://mcp.apify.com/?tools=fetch-actor-details,conserving_celerytop/live-career-page-jobs-api"}}}
En Claude.ai o Claude Desktop, añade un conector personalizado con la misma URL. En el primer uso, se abre una ventana del navegador para iniciar sesión en Apify, por lo que no se coloca ningún token en el archivo. Los clientes sin inicio de sesión pueden enviar un encabezado Authorization: Bearer <YOUR_APIFY_TOKEN> en su lugar. Cada llamada es una ejecución normal a los precios anteriores.
Ejemplo de prompt: "Lista los trabajos abiertos de ingeniero de datos en Stripe, Linear y Palantir publicados en los últimos 30 días, con salario y enlace de solicitud."
Para agentes de IA
Úsalo para responder "¿está la empresa X contratando para Y ahora mismo?" o para listar cada trabajo abierto en las empresas que nombres. Solo se necesita companies, hasta 500 por ejecución. Lee los 22 tableros de empleo en Tableros de empleo compatibles, y un enlace a uno de ellos funciona mejor.
{"companies": ["stripe", "linear.app", "https://jobs.lever.co/palantir"], "titleIncludes": ["data engineer"], "postedSince": "30 days", "maxJobsPerCompany": 20}
Cada fila de trabajo tiene company, companyStatus, title, department, location, countryCode, jobFunction, salaryAnnualMin, salaryAnnualMax, postedAt y url. Una empresa sin trabajos que devolver obtiene una fila de estado. no_matching_jobs significa que tiene trabajos abiertos pero ninguno coincide, no_open_jobs significa que su tablero está vacío, y not_found significa que no encontramos ningún tablero bajo ese nombre o enlace.
Para GPT Actions, LangChain u otra herramienta OpenAPI, los endpoints de ejecución se describen en https://api.apify.com/v2/acts/conserving_celerytop~live-career-page-jobs-api/builds/default/openapi.json. El archivo solicita tu token de Apify en el parámetro token. Un encabezado Authorization: Bearer también funciona.
API de Apify e integraciones
La pestaña API tiene código listo para JavaScript, Python y otros clientes. Esta solicitud inicia una ejecución, espera hasta 300 segundos y devuelve una fila por trabajo.
curl -X POST "https://api.apify.com/v2/actors/conserving_celerytop~live-career-page-jobs-api/run-sync-get-dataset-items" \
-H "Authorization: Bearer <YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"companies": ["https://boards.greenhouse.io/stripe", "https://jobs.lever.co/palantir"], "department": "engineering"}'
En Clay, usa el enriquecimiento Run Apify Actor con la entrada {"companies": [<career page column>]}, con el token de columna sin comillas, y elige una fila de resumen por empresa para mantener cada celda pequeña. Cada fila cuesta 1 acción de Clay y sin créditos de datos de Clay, más el precio de empresa aquí.
API HTTP en vivo
Para enviar empresas en una sola solicitud HTTP y obtener sus trabajos en la respuesta, sin esperar una ejecución, usa Live Jobs HTTP API. Tiene los mismos campos, filtros y precios de eventos, y también cobra el uso de la plataforma Apify de cada solicitud. Las ejecuciones normales de este Actor cobran solo los eventos anteriores.
Entrada
{
"companies": ["stripe", "linear.app", "https://jobs.lever.co/palantir", "https://jobs.ashbyhq.com/openai", "https://ottonova.jobs.personio.com"],
"companyLists": [],
"excludeCompanies": [],
"outputMode": "jobs",
"includeDescription": true,
"descriptionFormat": "text",
"maxJobsPerCompany": 50,
"onlyNewJobs": false,
"monitorName": "default",
"includeUpdatedJobs": false,
"skipReposts": false,
"alertWebhookUrl": "",
"alertMaxJobs": 10,
"alertOnFirstCheck": false,
"titleIncludes": ["engineer", "data scientist"],
"department": "engineering",
"location": "London",
"locationExcludes": ["India"],
"near": "",
"radiusKm": 50,
"remoteOnly": false,
"remoteRegions": ["us", "canada"],
"workplaceTypes": ["remote", "hybrid"],
"employmentTypes": ["full_time"],
"seniorities": ["senior", "staff_principal"],
"jobFunctions": ["engineering", "data"],
"languages": ["en"],
"titleExcludes": ["intern", "contract"],
"descriptionIncludes": ["Snowflake", "dbt"],
"skills": [],
"hasSalary": false,
"minAnnualSalary": 120000,
"minAnnualSalaryCurrency": "USD",
"postedSince": "30 days",
"postedBefore": "2026-09-20",
"maxExperienceYears": 5,
"visaSponsorship": false,
"ukVisaSponsorOnly": false
}
- Proporciona
companies,companyLists, o ambos.startUrlsyurlsson otros nombres paracompanies, por lo que la entrada escrita para otros Actores también funciona. - El título incluye, El título excluye y La descripción incluye coinciden con palabras completas sin distinguir mayúsculas, por lo que
engineercoincide con "Software Engineer" pero no con "Engineering Manager", yC++también funciona. - Ubicación acepta un nombre de país o código (
DEmantiene Berlín), un estado de EE. UU. o provincia canadiense por nombre, u otro lugar, como Londres. Para varios departamentos o ubicaciones, pon uno por línea, o un salto de línea en JSON ("engineering\nsales"). Se mantiene un trabajo que coincida con cualquiera de ellos. Una coma no divide valores, por lo queengineering, saleses un solo departamento. - Cerca de una ciudad (
near) mantiene trabajos dentro de Distancia (km) (radiusKm, 50 por defecto, hasta 500) de una ciudad, como Berlín, Múnich oAustin, TX, medido desde el centro de cada ciudad. Cada lugar de un trabajo cuenta, por lo que Potsdam está dentro de 50 km de Berlín y Hamburgo no. Un trabajo remoto se mantiene solo si también lista un lugar dentro de la distancia, así que úsalo sin Solo remoto. Los trabajos cuya ciudad no conocemos, como un país solo o un pueblo de menos de 15,000 personas, se omiten, y elwarningde la empresa dice cuántos. Una ciudad que no conocemos detiene la ejecución antes de leer cualquier bolsa de trabajo, por lo que no cuesta nada, y el error nombra ciudades similares. - Los filtros sobre lugar de trabajo, tipo de trabajo, nivel de antigüedad, idioma, salario y Publicado antes omiten trabajos cuyo valor es desconocido, y el
warningde la empresa dice cuántos. - La descripción incluye, Habilidades, Máximo de años de experiencia, Solo trabajos que patrocinan visas, Idiomas y los dos filtros de salario leen la descripción, por lo que activan Incluir descripción del trabajo. Cuando se alcanza tu límite de gasto, los trabajos aún por describir vienen sin descripción.
- Formato de descripción (
descriptionFormat) establece cómo viene la descripción:text(texto plano, el predeterminado),html(el formato propio de la bolsa con scripts, estilos, marcos y manejadores de eventos eliminados, manteniendo párrafos, encabezados, listas, negritas y enlaces) omarkdown. Cada formato tiene correos electrónicos, números de teléfono y enlaces de perfil eliminados, el mismo límite de 60,000 caracteres y el mismo precio. - Solo patrocinadores de visa del Reino Unido mantiene trabajos en empresas en el registro de la Oficina del Interior del Reino Unido de patrocinadores con licencia para trabajadores. Cada fila de trabajo tiene
ukVisaSponsoryukSponsorRoutes, como Skilled Worker. El registro lista nombres legales, por lo que una empresa listada bajo otro nombre leefalsepara un trabajo en el Reino Unido, y un nombre demasiado corto o demasiado común leenull. - Regiones remotas (
remoteRegions) mantiene trabajos remotos abiertos a uno de los lugares que proporciones. Cada fila de trabajo tiene el mismo campo, leído de la ubicación y el título, como "Remote - US" o "Remote (EMEA)". Está vacío cuando el trabajo no es remoto o no dice dónde, como con un simple "Remote".
| Valor | Significado |
|---|---|
worldwide | Abierto en cualquier lugar. Coincide con cada valor en el que filtras. |
americas, latam | América del Norte y del Sur; América Latina. us, canada y latam caen bajo americas. |
us, canada, uk | Un país. "América del Norte" se lee como us y canada. |
emea, europe | Europa, Medio Oriente y África; Europa. uk y los países europeos caen bajo ambos. |
apac | Asia y el Pacífico. |
DE, IN, BR ... | Cualquier otro país, como código de dos letras. Coincide con su región, por lo que europe mantiene un trabajo abierto en DE. |
Listas de empresas listas para usar
¿No tienes tu propia lista? Elige una o más en Listas de empresas listas para usar (companyLists) y limpia Empresas, o usa ambas.
| Lista | Empresas |
|---|---|
ai-companies | 179 laboratorios de IA y empresas centradas en IA |
tech-companies | 311 empresas tecnológicas |
remote-first | 90 empresas con al menos 4 de cada 5 trabajos abiertos remotos |
europe-tech | 65 empresas tecnológicas con al menos 4 de cada 5 trabajos abiertos en Europa |
startups | 250 startups respaldadas por capital de riesgo, ninguna en las otras listas |
Cada empresa en una lista cuesta el precio de empresa, como una que agregues, y tus filtros se aplican. Una empresa en dos listas, o en una lista y en Empresas, se lee y se cobra una vez. Una ejecución toma como máximo 500 empresas, por lo que ai-companies y tech-companies (490 juntas) caben en una ejecución, pero no con una tercera lista. Cada empresa en estas listas tenía al menos 10 trabajos abiertos cuando revisamos su bolsa de trabajo entre el 24 y el 26 de septiembre de 2026. Actualizamos las listas una vez al mes. Cuando una lista cambia, un monitor que la usa da a cada empresa que se unió una primera verificación (una consulta de empresa) y deja de verificar empresas que se fueron.
Para excluir empresas, como tu propio empleador, agrega sus nombres, sitios web o enlaces de bolsa de trabajo a Excluir empresas (excludeCompanies). Una empresa excluida no se lee ni se cobra.
Filtrar por habilidades
Pon las herramientas con las que trabajas en Habilidades (skills), como Python, Snowflake o Salesforce, para mantener solo trabajos cuyo tools nombre al menos una de ellas. Las mayúsculas no importan, y otras ortografías también funcionan, por lo que golang encuentra Go y k8s encuentra Kubernetes. Cada trabajo lista las habilidades que tiene en matchedSkills. Una palabra que no es una habilidad que conocemos detiene la ejecución antes de cualquier cargo y sugiere nombres cercanos. Para otras palabras, usa La descripción incluye.
Salida
El rowType de cada fila del conjunto de datos es job, status (una empresa sin trabajo que devolver) o company (una fila de resumen). En verificaciones posteriores con Solo trabajos nuevos, una empresa cuya bolsa fue leída no obtiene fila de estado, y cualquier otra empresa obtiene una solo cuando su estado cambió. Con Solo trabajos nuevos, los trabajos cerrados también son filas de trabajo. La pestaña Salida describe cada campo. Una fila de trabajo, abreviada, se ve así.
{
"rowType": "job",
"company": "https://jobs.ashbyhq.com/ashby",
"companyStatus": "ok",
"jobKey": "ashby:ashby:390e266b-4b6c-4490-ad74-05ff5e0bb36a",
"title": "Product Manager, Onboarding and Growth",
"department": "Product",
"location": "Remote - US",
"countryCode": "US",
"workplaceType": "remote",
"jobFunction": "product",
"employmentTypeNormalized": "full_time",
"salaryMin": 180000,
"salaryMax": 260000,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"postedAt": "2026-09-11T19:28:18.199Z",
"url": "https://jobs.ashbyhq.com/ashby/390e266b-4b6c-4490-ad74-05ff5e0bb36a"
}
| Campo | Valores |
|---|---|
seniority | intern, entry, mid, senior, staff_principal, lead_manager, director, vp o c_level, y null cuando el título no da nivel |
employmentTypeNormalized | full_time, part_time, contract, temporary, internship, apprenticeship o volunteer |
salaryPeriod, salaryAnnualMin, salaryAnnualMax | year, month, week, day o hour, y el pago por año, para comparación |
companyIndustry, companyCountry, companySizeBand | Para una empresa de una lista lista para usar: su industria (como ai, fintech o security), el código de dos letras de su país de sede y su número de empleados como banda (1-50 a 5000+), de Wikidata. null cuando no se conoce, y para otras empresas |
latitude, longitude y timeZone son el centro y la zona horaria de la ciudad del trabajo, de GeoNames, como 52.52, 13.41 y Europe/Berlin para Berlín. Son null cuando no conocemos la ciudad, como para un país solo. jobKey permanece igual en cada ejecución, por lo que puedes unir ejecuciones en él. El registro COMPANIES en la pestaña Salida tiene un estado por empresa, con companyTotalOpenJobs, companyMatchedJobs, companyJobsReturned, companyJobsWithoutDate, chargedEventCount, extraJobBlocksCharged, jobDetailBlocksCharged, upstreamCalls, newJobsCount, closedJobsCount, updatedJobsCount, skippedRepostsCount, firstCheck, previousCheckAt y inputDomain.
Una fila de resumen por empresa
Configura Filas a devolver (outputMode) para obtener conteos de contratación por empresa en lugar de, o junto a, las filas de trabajo.
outputMode | Filas | Precio por empresa |
|---|---|---|
jobs (predeterminado) | Una fila por trabajo | Consulta, más un cargo extra por cada 1,000 filas de trabajo adicionales |
companies | Una fila de resumen, sin filas de trabajo | Solo consulta, sin importar cuántos trabajos tenga la empresa. Incluir descripción del trabajo agrega el precio de descripción en las bolsas listadas bajo precios |
both | Filas de trabajo más una fila de resumen | Igual que jobs. La fila de resumen es gratuita |
Los conteos usan cada trabajo que pasa tus filtros, antes de Máximo de trabajos por empresa. Una fila de resumen tiene openJobs, jobsPostedLast7Days, jobsPostedLast30Days, jobsOpenOver90Days, remoteShare, engineeringShare, salesShare, topDepartments, topLocations, functionCounts, functionCountsLast30Days, salaryMedians, leadershipRoles y firstHireRoles. Con Incluir descripción del trabajo agrega topTools, toolCoverage y visaSponsorshipShare, y con Solo trabajos nuevos newJobs, closedJobs, repostedJobs, medianDaysOpen, newFunctions y newCountries, más skippedReposts con Omitir trabajos republicados.
functionCountsLast30Daysse ve como{"sales": 4, "engineering": 9}y es null cuando la bolsa no da fechas de publicación.leadershipRoleslista hasta 5 roles abiertos de director, VP y nivel C, más recientes primero, con título, función del trabajo, nivel, fecha de publicación y enlace. Con Solo trabajos nuevos, los roles cerrados desde la verificación anterior llenan el resto de los 5, constatusconfigurado aclosed.firstHireRoleslista hasta 5 primeras contrataciones o fundadoras.cueestitlecuando el título lo dice, ytextcuando la descripción lo hace, lo que necesita Incluir descripción del trabajo.newFunctionsynewCountrieslistan las funciones del trabajo y códigos de país con trabajos abiertos ahora y ninguno en la verificación anterior, y son null en una primera verificación.
Estados y cargos
companyStatus | Significado | Cargado |
|---|---|---|
ok | Los trabajos abiertos coinciden con tus filtros | Sí |
no_matching_jobs | Existen trabajos abiertos, pero ninguno coincide con tus filtros | Sí |
no_open_jobs | La bolsa no tiene trabajos abiertos | Sí |
not_found | No se encontró ninguna bolsa bajo este nombre o enlace | Sí |
source_error | La bolsa falló o envió datos ilegibles | Sí, excepto cuando el robots.txt de la bolsa no pudo leerse, por lo que la bolsa no se leyó |
no_job_board_found | Leímos el sitio web pero no encontramos ninguna bolsa de trabajo | Sí |
website_unavailable | No pudimos abrir el sitio web | No |
unsupported_job_board | Una bolsa o sitio de carrera que no leemos, o un sitio o empleador que opta por no participar. error dice por qué | No |
invalid_input | No es un enlace, sitio web o nombre, o un enlace de bolsa que no nombra ninguna empresa | No |
duplicate | Otra entrada era la misma bolsa | No |
skipped_time_limit | El tiempo se agotó antes de que esta empresa fuera leída | No |
skipped_spending_limit | Tu límite de gasto no pudo cubrir los cargos de esta empresa | No |
skipped_client_disconnected | Solo en Live Jobs HTTP API. Tu cliente se desconectó primero | No |
internal_error | Algo falló en nuestro lado. error dice qué | Solo si ocurrió después de leer la bolsa de trabajo, pero no durante el cobro |
Otros Actores de trabajos
- Greenhouse Jobs Scraper & API
- Lever Jobs Scraper & API
- Ashby Jobs Scraper & API
- Workday Jobs Scraper & API: una bolsa cada uno, a $0.10 por empresa.
- Tech Jobs Search: busca los trabajos abiertos de 824 empresas por palabra clave, lugar y salario.
- Website Tech Stack Detector: el CMS, análisis y otras herramientas en los sitios web de las mismas empresas.
Preguntas frecuentes
¿En qué se diferencia esto de una base de datos de búsqueda de trabajos?
Una base de datos de búsqueda de empleo recopila ofertas de trabajo con antelación, y tú las buscas por palabra clave, título o lugar. Este Actor lee los portales de empleo de las empresas que nombres cuando lo ejecutas. Obtienes cada oferta que cada portal muestra en ese momento, incluidas las publicadas hace meses que siguen abiertas, en cualquier empresa de los 22 portales de empleo que leemos. El límite es que tú aportas las empresas, o eliges una lista predefinida. No busca en todas las empresas por palabra clave. Para buscar en muchas empresas, elige una lista predefinida y establece El título incluye. Cada empresa de la lista cuesta el precio de la empresa, incluso cuando no hay ofertas que coincidan.
¿Qué tan frescas son las ofertas?
Tan frescas como el portal de empleo de cada empresa cuando lo ejecutas. Cada ejecución vuelve a leer los portales, por lo que aparecen nuevas ofertas y las cerradas desaparecen. El fetchedAt de cada fila es el momento de la búsqueda, y postedAt es la fecha que proporciona el portal. Para nuevas ofertas cada día, programa una tarea con Solo ofertas nuevas.
¿Puede leer LinkedIn o Indeed?
No, por diseño. Solo lee los portales de empleo propios de las empresas, como sus portales de Greenhouse, Lever o Ashby. Un enlace de LinkedIn o Indeed devuelve unsupported_job_board, gratis, y error explica por qué. Muchas empresas publican las mismas ofertas en su propio portal, así que pega el nombre o sitio web de la empresa en su lugar.
¿Cómo sé qué ATS usa una empresa?
Abre cualquier oferta en la página de carreras de la empresa y mira su enlace. Un enlace con greenhouse.io, lever.co o ashbyhq.com te indica el ATS, y Portales de empleo compatibles muestra los enlaces de los 22. O pega el sitio web de la empresa en Empresas, y boardUrl muestra el portal de empleo encontrado, incluso uno que no leemos.
¿Obtendré duplicados u ofertas republicadas?
Sin duplicados. Una ejecución devuelve cada oferta una vez, también cuando dos entradas apuntan al mismo portal de empleo. Con Solo ofertas nuevas, una oferta aparece una vez como nueva, y una vez más como cerrada cuando se retira. Una oferta retirada y vuelta a publicar con un nuevo id aparece como nueva, con reposted establecido en true. Activa Omitir ofertas republicadas para excluirlas.
¿Por qué el salario está vacío?
La empresa no publica el salario en su portal. Activa Incluir descripción del puesto para obtener también el salario escrito en el texto de la oferta.
¿Greenhouse tiene una API pública de ofertas?
Sí. Greenhouse tiene una API pública de portales de empleo que lista las ofertas que una empresa publica en su portal, y leerla no requiere clave. Pides una empresa a la vez, por su nombre de portal, como stripe. Lever y Ashby también tienen listas públicas de ofertas, cada una en su propio formato.
¿Por qué no llamar yo mismo a los portales de empleo?
Puedes, para un portal. Este Actor te ofrece 22 portales con los mismos campos y filtros. Toma un sitio web o nombre de empresa, no solo un enlace de portal, y recuerda lo que recibiste, para que las comprobaciones posteriores devuelvan solo ofertas nuevas y cerradas. Cuando un portal cambia, actualizamos el Actor, y tu entrada y salida siguen igual.
¿Es legal recopilar ofertas de empleo?
Este Actor solo lee ofertas de empleo que las empresas publican en portales públicos para solicitantes, sin inicio de sesión. Omite sitios cuyos términos no permiten claramente este uso. No podemos dar asesoramiento legal, así que verifica que tu uso cumpla las leyes y términos que te aplican. Legal y marcas comerciales explica cómo maneja los datos personales.
Legal y marcas comerciales
Este Actor sigue robots.txt en sitios web de empresas y en cada host de portal de empleo que lee, y respeta el ritmo que cada portal solicita. Un portal o página que robots.txt no permite se omite y no se cobra. Está diseñado para datos de empleo, no datos personales, y elimina direcciones de correo electrónico, números de teléfono y enlaces de perfiles de LinkedIn de las descripciones.
Los sitios de carreras de Teamtailor y Workable dicen en su robots.txt que su contenido no debe usarse para entrenar modelos de IA (ai-train=no). No uses datos de empleo de esos portales para entrenar modelos.
Este Actor no está afiliado ni respaldado por Greenhouse, Lever, Ashby, Workday, Eightfold ni ningún otro portal de empleo. Sus nombres son marcas comerciales de sus propietarios. Un empleador o portal que quiera que dejemos de leer su sitio puede abrir un issue, y lo añadimos a nuestra lista de bloqueo.
Países, estados de EE. UU. y ciudades provienen de GeoNames (https://www.geonames.org/), bajo licencia CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Acortamos la lista y añadimos otros nombres comunes, como "NYC". Palabras comunes en inglés provienen de SCOWL (wordlist.aspell.net), Copyright 2000-2016 Kevin Atkinson, usado bajo su aviso de permiso.
Registro de cambios y soporte
Añadimos campos de salida, pero no los renombramos ni eliminamos. Si un campo alguna vez tiene que cambiar, lo diremos primero en la pestaña Registro de cambios. ¿Encontraste un problema o necesitas otro portal? Abre un issue en la pestaña Issues. Si este Actor te ahorró tiempo, una breve reseña en su página de la tienda ayuda a otros a encontrarlo.
Actores relacionados. Búsqueda de empleos tech busca las ofertas abiertas de 824 empresas tech, de IA, remotas y startups por palabra clave, y pagas por oferta coincidente. API HTTP de empleos en vivo da los mismos datos que este Actor en una sola solicitud GET o POST.
Registro de cambios
El historial de versiones de este Actor es un documento separado: https://apify.com/conserving\_celerytop/live-career-page-jobs-api/changelog.md
Esquema de entrada del Actor
companies (tipo: array):
Una entrada por empresa, hasta 500. Un enlace de portal de empleo funciona mejor, como boards.greenhouse.io/stripe, en Greenhouse, Lever, Ashby, Workday, Eightfold, Workable, Personio, Teamtailor, Recruitee y 13 portales más (lista en el README). Un sitio web (stripe.com) también funciona, al igual que un nombre simple (stripe) para muchas empresas. Una búsqueda por empresa, 1,000 ofertas incluidas, también cuando no se encuentra ningún portal.
companyLists (tipo: array):
Ejecuta en listas predefinidas de empresas en lugar de, o junto a, tu propia lista en Empresas. Cada empresa de la lista es una búsqueda (1,000 ofertas incluidas), y los filtros se aplican como siempre. Para ejecutar solo las listas, vacía Empresas. Una empresa en dos listas, o también en Empresas, se lee y cobra una vez. Máximo 500 empresas por ejecución. Valor de API: una lista como ["ai-companies"].
excludeCompanies (tipo: array):
Empresas a excluir, como tu propio empleador o empresas que ya sigues: nombres de empresa, sitios web o enlaces de portal de empleo, hasta 1,000. Más útil con listas predefinidas de empresas. Una empresa excluida no se lee ni se cobra. Déjalo vacío para mantener todas las empresas.
outputMode (tipo: string):
jobs: una fila por oferta. companies: una fila de resumen por empresa con ofertas abiertas, publicaciones recientes, proporción remota, departamentos principales, ubicaciones, nivel de antigüedad, funciones laborales, roles de liderazgo y primera contratación, medianas salariales y herramientas principales (todos los campos en el README). Cuesta una búsqueda por empresa, nunca el cargo extra de 1,000 ofertas. both: filas de ofertas más filas de resumen (rowType job, company o status).
includeDescription (tipo: boolean):
true: añade la descripción completa de cada oferta como texto plano (hasta 60,000 caracteres, sin datos de contacto) y las herramientas que nombra (campo tools). Gratis en la mayoría de portales; $0.01 por cada 200 ofertas iniciadas en portales JazzHR, Paylocity, Freshteam, JOIN, Polymer, Workday, Eightfold, ClearCompany, GoHire y HiringThing. Con Solo ofertas nuevas, solo se describen las ofertas nuevas.
descriptionFormat (tipo: string):
Cómo viene cada descripción, con Incluir descripción del puesto activado. text: texto plano. html: el HTML propio del portal, mantenido seguro: sin scripts, estilos, marcos o manejadores de eventos. markdown: lo mismo convertido a Markdown. Cada formato tiene correos electrónicos, números de teléfono y enlaces de perfil eliminados y se corta a 60,000 caracteres. Mismo precio.
maxJobsPerCompany (tipo: integer):
Devuelve como máximo esta cantidad de ofertas por empresa, las más recientes primero, por ejemplo 50. Para responder una pregunta rápida, 20 es suficiente. Déjalo vacío para todas las ofertas, hasta 10,000 por empresa. Establece 1,000 o menos para nunca pagar el cargo de $0.01 por cada 1,000 ofertas adicionales. Con Solo ofertas nuevas, las ofertas cerradas vienen además de este límite y cuentan para ese cargo. Las filas de resumen aún cuentan cada oferta coincidente.
onlyNewJobs (tipo: boolean):
true: devuelve solo ofertas que no hayas recibido antes de este Actor, más ofertas que se cerraron desde tu comprobación anterior (campo change es new o closed). La primera comprobación de una empresa devuelve todas sus ofertas por una búsqueda; una comprobación posterior cuesta $0.002 por cada 1,000 ofertas abiertas iniciadas. Úsalo con un horario. Lo que recibiste se guarda en tu propia cuenta de Apify, por nombre de Monitor y conjunto de filtros.
monitorName (tipo: string):
Solo se usa con Solo ofertas nuevas. Nombre de la lista guardada de ofertas que recibiste, para que las listas de seguimiento separadas no se mezclen, por ejemplo sales-accounts o competitors. Letras, números, - y _ solamente, hasta 40 caracteres. Predeterminado: default.
includeUpdatedJobs (tipo: boolean):
Solo se usa con Solo ofertas nuevas. true: también devuelve ofertas que recibiste antes cuyo título, ubicación, salario o tipo de empleo cambió desde tu comprobación anterior, con change updated, changedFields y los valores anteriores. Cada una es una fila más, por lo que cuenta para el cargo de $0.01 por cada 1,000 ofertas adicionales. Predeterminado false: el precio sigue igual y los cambios solo se cuentan en filas de resumen.
skipReposts (tipo: boolean):
Solo se usa con Solo ofertas nuevas. true: excluye una oferta nueva con el mismo título y ubicación que una oferta que recibiste y se cerró en los últimos 30 días, una republicación con un nuevo id. No recibe fila ni alerta, y nunca vuelve como nueva; skippedRepostsCount dice cuántas. Predeterminado false: las republicaciones vienen como ofertas nuevas con reposted true.
alertWebhookUrl (tipo: string):
Solo se usa con Solo ofertas nuevas. Un enlace https que recibe un mensaje corto después de una comprobación con ofertas nuevas o cerradas, y nada en días sin cambios: el webhook entrante de un canal de Slack, Discord o Teams, o un webhook de Make, Zapier o n8n, como https://hooks.slack.com/services/... Lista recuentos por empresa y las ofertas con enlaces. Gratis. Se mantiene secreto.
alertMaxJobs (tipo: integer):
Solo se usa con URL de webhook de alerta. Cuántas ofertas nuevas y cerradas lista la alerta, una línea cada una con título, ubicación y salario cuando se conoce, por ejemplo 20. Más ofertas se cuentan con un enlace al conjunto de datos. Un número entero de 1 a 50. Gratis. Predeterminado 10.
alertOnFirstCheck (tipo: boolean):
Solo se usa con URL de webhook de alerta. true: también envía una alerta en la primera comprobación de una empresa, que devuelve todas sus ofertas abiertas como nuevas. Predeterminado false: la primera comprobación no envía nada, y las comprobaciones posteriores alertan solo sobre ofertas nuevas y cerradas. Gratis.
titleIncludes (tipo: array):
Mantén solo ofertas cuyo título contenga una de estas palabras o frases, ignorando mayúsculas. Úsalo para verificar si una empresa está contratando para un rol, por ejemplo data engineer o account executive. Solo palabras completas, así que engineer coincide con Software Engineer pero no con Engineering Manager. Una lista de hasta 100. Déjalo vacío para todos los títulos.
titleExcludes (tipo: array):
Excluye ofertas cuyo título contenga cualquiera de estas palabras o frases, ignorando mayúsculas. Solo palabras completas, así que intern no coincide con International. Una lista de hasta 100, por ejemplo senior e intern. Una palabra excluida gana sobre El título incluye. Déjalo vacío para mantener todos los títulos.
descriptionIncludes (tipo: array):
Mantén solo ofertas cuya descripción nombre cualquiera de estas palabras o frases, ignorando mayúsculas, como Snowflake, Rust o C++. Solo palabras completas, así que Rust no coincide con trust. Una herramienta también coincide con sus otros nombres, así que Postgres encuentra PostgreSQL. Hasta 100. Esto activa Incluir descripción del puesto (ver su precio). Déjalo vacío para todas las ofertas.
skills (tipo: array):
Mantén solo ofertas que nombren al menos una de estas habilidades en sus herramientas, como Python, Snowflake o Salesforce, ignorando mayúsculas. Otras ortografías funcionan, así que golang encuentra Go; matchedSkills lista las encontradas. Una habilidad desconocida detiene la ejecución antes de cualquier cargo, con nombres cercanos. Hasta 100. Esto activa Incluir descripción del puesto (ver su precio). Déjalo vacío para todas las ofertas.
department (tipo: string):
Conserva solo los empleos cuyo departamento, equipo o ruta de departamento contenga este texto, ignorando mayúsculas y minúsculas, por ejemplo engineering. Para varios, pon uno por línea. Un empleo que coincida con cualquiera de ellos se conserva. En la entrada de la API, pon un salto de línea entre valores, como en "engineering\nsales". Hasta 100. Déjalo vacío para todos los departamentos.
seniorities (tipo: array):
Conserva solo los empleos en uno de estos niveles (campo seniority), leído del título: Senior Engineer es senior, Head of Sales es director. Un título sin palabra de nivel, como Software Engineer, no tiene seniority: esos empleos se excluyen, y la advertencia de la empresa indica cuántos. Déjalo vacío para todos los niveles.
jobFunctions (tipo: array):
Conserva solo los empleos en estas funciones, leídas del título de cada empleo y luego de su departamento y equipo (campo de salida jobFunction). Elige una o más, por ejemplo Engineering y Data. Se leen títulos en inglés y alemán, y básicos en francés, español, neerlandés y sueco. En nuestras pruebas, aproximadamente 9 de cada 10 empleos recibieron la función correcta. Valor de la API: una lista como ["engineering", "data"]. Déjalo vacío para todas las funciones.
employmentTypes (tipo: array):
Conserva solo los empleos con uno de estos tipos de empleo (campo employmentTypeNormalized), del tipo de empleo del tablón o del título. Los empleos cuyo tipo es desconocido se excluyen, y la advertencia de la empresa indica cuántos. Teamtailor no proporciona tipo de empleo y Greenhouse solo cuando la empresa lo establece, por lo que allí suelen indicarlo títulos como Intern o Part-time. Déjalo vacío para todos.
maxExperienceYears (tipo: integer):
Conserva solo los empleos cuya descripción pida como máximo esta cantidad de años de experiencia, leída de frases como 5+ years o mindestens 3 Jahre. Un número entero de 0 a 50, como 3. Los empleos que no indican años se excluyen; la advertencia indica cuántos. Esto activa Incluir descripción del empleo (ver su precio). Déjalo vacío para todos.
languages (tipo: array):
Conserva solo los empleos escritos en uno de estos idiomas, como códigos de dos letras como en, de o fr (campo language). Greenhouse proporciona el idioma de cada empleo; en otros casos se lee de la descripción. Esto activa Incluir descripción del empleo (ver su precio). Los empleos cuyo idioma es desconocido se excluyen; la advertencia indica cuántos.
location (tipo: string):
Conserva solo los empleos en este lugar, como London, California o Germany. Un nombre o código de país (DE) conserva los empleos en ese país; un estado de EE. UU. o provincia canadiense conserva su región. Otro texto coincide con palabras completas, así que York conserva New York, no Yorkshire. Para varios, pon uno por línea; cualquier coincidencia conserva un empleo. En la entrada de la API, pon un salto de línea entre valores. Déjalo vacío para todos.
locationExcludes (tipo: array):
Excluye los empleos en cualquiera de estos lugares, coincidiendo como Ubicación: India o IN también excluye empleos en Bangalore, y California excluye San Mateo, CA. Un empleo con varios lugares se excluye cuando cualquiera de ellos coincide. Los empleos sin ubicación se conservan. Una lista de hasta 100, por ejemplo India y Brazil. Déjalo vacío para conservar todas las ubicaciones.
near (tipo: string):
Conserva solo los empleos dentro de la distancia siguiente de una ciudad, como Berlin o Austin, TX. Añade el país o estado de EE. UU. a un nombre compartido (Cambridge, UK). Cada lugar de un empleo cuenta; no lo combines con Solo remoto. Los empleos cuya ciudad no conocemos (solo un país, o una ciudad de menos de 15,000 habitantes) se excluyen y se cuentan en la advertencia. Una ciudad desconocida detiene la ejecución sin costo, con coincidencias cercanas.
radiusKm (tipo: integer):
Qué tan lejos de la ciudad en Cerca de una ciudad puede estar un empleo, en kilómetros, de 1 a 500. Predeterminado 50. Se usa solo con Cerca de una ciudad.
remoteOnly (tipo: boolean):
true: conserva solo los empleos que pueden realizarse completamente en remoto. Los empleos híbridos y presenciales se excluyen. Predeterminado false.
remoteRegions (tipo: array):
Conserva solo los empleos remotos abiertos a uno de estos lugares: worldwide, americas, us, canada, latam, emea, europe, uk, apac, o un código de país como DE. Se lee de la ubicación y el título del empleo, como Remote (EMEA). Un empleo abierto a nivel mundial coincide con cada valor, y europe conserva un empleo abierto en Germany. Los empleos remotos cuyos lugares son desconocidos se excluyen y se cuentan en la advertencia.
workplaceTypes (tipo: array):
Conserva solo los empleos con uno de estos tipos de lugar de trabajo: remote, hybrid u onsite (campo workplaceType), del campo propio del tablón o del texto de ubicación. Los empleos cuyo tipo de lugar de trabajo es desconocido se excluyen, y la advertencia de la empresa indica cuántos; Greenhouse marca solo empleos remotos e híbridos, por lo que sus empleos presenciales son desconocidos. Déjalo vacío para todos los empleos.
hasSalary (tipo: boolean):
true: conserva solo los empleos con salario (salaryMin o salaryMax), del tablón o escrito en la descripción. Muchos tablones muestran el pago solo en la descripción. Esto activa Incluir descripción del empleo (ver su precio). Predeterminado false.
minAnnualSalary (tipo: integer):
Conserva los empleos cuyo salario anual (salaryAnnualMax, si no salaryAnnualMin) alcance esta cantidad en la moneda siguiente, como 120000. El pago en la descripción también cuenta. Esto activa Incluir descripción del empleo (ver su precio). Los empleos pagados en otra moneda (sin tipos de cambio) o sin salario anual se excluyen; la advertencia indica cuántos. Vacío para sin mínimo.
minAnnualSalaryCurrency (tipo: string):
Moneda de Salario anual mínimo, como código de tres letras como USD, EUR o GBP. Solo los empleos cuyo salario esté en esta moneda pueden pasar. Se usa solo con Salario anual mínimo. Predeterminado USD.
postedSince (tipo: string):
Conserva solo los empleos publicados en esta fecha o después. Usa una fecha como YYYY-MM-DD, por ejemplo 2026-09-01, o un período como un número más horas, días, semanas, meses o años, por ejemplo 24 hours o 7 days. Un período cuenta hacia atrás desde el inicio de cada ejecución, lo que se adapta a programaciones. Los empleos cuyo tablón no proporciona fecha de publicación se excluyen. Déjalo vacío para todas las fechas.
postedBefore (tipo: string):
Conserva solo los empleos publicados antes de esta fecha. Usa una fecha como YYYY-MM-DD, por ejemplo 2026-06-01, o un período como 30 days para empleos publicados hace más de 30 días. Con Publicado desde da un rango de fechas. Los empleos cuyo tablón no proporciona fecha de publicación se excluyen, y la advertencia de la empresa indica cuántos. Déjalo vacío para todas las fechas.
visaSponsorship (tipo: boolean):
true: conserva solo los empleos cuya descripción indique que la empresa patrocina visas. Los empleos que no lo mencionan se excluyen, y la advertencia indica cuántos. Esto lee la descripción, por lo que activa Incluir descripción del empleo, también con Filas a devolver: companies, con su precio en portales JazzHR, Paylocity, Freshteam, JOIN, Polymer, Workday, Eightfold, ClearCompany, GoHire y HiringThing. Predeterminado false.
ukVisaSponsorOnly (tipo: boolean):
true: conserva solo los empleos en empresas del registro de patrocinadores autorizados para trabajadores de la Oficina del Interior del Reino Unido (ukVisaSponsor true). El nombre de la empresa debe coincidir exactamente con un nombre del registro, una vez que se dejan de lado palabras como Ltd, Limited, PLC y UK, por lo que una empresa registrada bajo otro nombre legal se excluye, y también un nombre demasiado corto o demasiado común para coincidir de forma segura. La advertencia indica el motivo. Predeterminado false.
startUrls (tipo: array):
Otro nombre para Companies, para que la entrada escrita para otros Actors funcione: enlaces como cadenas o como objetos {"url": "..."}. Se fusiona en Companies.
urls (tipo: array):
Otro nombre para Companies, para que la entrada escrita para otros Actors funcione: enlaces como cadenas o como objetos {"url": "..."}. Se fusiona en Companies.
Ejemplo de objeto de entrada del Actor
{
"companies": [
"https://boards.greenhouse.io/stripe",
"linear.app",
"openai"
],
"excludeCompanies": [
"openai",
"stripe.com"
],
"outputMode": "jobs",
"includeDescription": false,
"descriptionFormat": "text",
"maxJobsPerCompany": 50,
"onlyNewJobs": false,
"monitorName": "default",
"includeUpdatedJobs": false,
"skipReposts": false,
"alertMaxJobs": 10,
"alertOnFirstCheck": false,
"titleIncludes": [
"engineer"
],
"descriptionIncludes": [
"Snowflake",
"dbt"
],
"skills": [
"Python",
"Kubernetes"
],
"department": "engineering",
"jobFunctions": [
"engineering",
"data"
],
"location": "London",
"near": "Berlin",
"radiusKm": 50,
"remoteOnly": false,
"hasSalary": false,
"minAnnualSalaryCurrency": "USD",
"postedSince": "7 days",
"visaSponsorship": false,
"ukVisaSponsorOnly": false
}
Esquema de salida del Actor
jobs (tipo: string):
Elementos del dataset, uno por empleo: company, companyName, matchedBy, companyStatus, title, department, team, location, countryCode, city, remote, seniority, jobFunction, tipo de empleo, salario con su valor anual, tools (con descripciones), postedAt y url. El dataset tiene más campos (jobId, applyUrl, description, country, region, salaryRanges, charged, warning, error); léelo con fields=... para conservar solo lo que necesites.
companies (tipo: string):
Array JSON, un objeto por empresa en el orden de entrada: companyStatus (ok, no_open_jobs, not_found, no_job_board_found, invalid_input y otros), charged, chargedEvent, companyName, matchedBy (link, website, directory, name o variante de nombre), inputDomain y boardUrl para sitios web, companyTotalOpenJobs, companyMatchedJobs, companyJobsReturned, newJobsCount, closedJobsCount, updatedJobsCount, error y warning.
companySummaries (tipo: string):
Elementos del dataset con rowType company, uno por empresa, cuando Filas a devolver es companies o both: openJobs, empleos publicados en los últimos 7 y 30 días, empleos abiertos más de 90 días, proporciones de remote, engineering y sales, principales departamentos, ubicaciones y países, recuentos de seniority y función de empleo, empleos por función publicados en los últimos 30 días, roles de liderazgo y primera contratación, principales tools, medianas salariales, y empleos nuevos, cerrados, actualizados y republicados con Solo empleos nuevos. Con jobs, esta vista no tiene filas de resumen.
API
Puedes ejecutar este Actor programáticamente usando nuestra API. A continuación hay ejemplos de código en JavaScript, Python y CLI, así como la especificación OpenAPI y la configuración del servidor MCP.
Ejemplo en JavaScript
import { ApifyClient } from 'apify-client';
// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
token: '<YOUR_API_TOKEN>',
});
// Prepare Actor input
const input = {
"companies": [
"https://boards.greenhouse.io/stripe",
"https://jobs.lever.co/palantir",
"https://jobs.ashbyhq.com/ashby"
]
};
// Run the Actor and wait for it to finish
const run = await client.actor("conserving_celerytop/live-career-page-jobs-api").call(input);
// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
console.dir(item);
});
// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs
Ejemplo en Python
from apify_client import ApifyClient
# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")
# Prepare the Actor input
run_input = { "companies": [
"https://boards.greenhouse.io/stripe",
"https://jobs.lever.co/palantir",
"https://jobs.ashbyhq.com/ashby",
] }
# Run the Actor and wait for it to finish
run = client.actor("conserving_celerytop/live-career-page-jobs-api").call(run_input=run_input)
# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item)
# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start
Ejemplo en CLI
echo '{
"companies": [
"https://boards.greenhouse.io/stripe",
"https://jobs.lever.co/palantir",
"https://jobs.ashbyhq.com/ashby"
]
}' |
apify call conserving_celerytop/live-career-page-jobs-api --silent --output-dataset
Configuración del servidor MCP
{
"mcpServers": {
"apify": {
"type": "http",
"url": "https://mcp.apify.com/?tools=fetch-actor-details,conserving_celerytop/live-career-page-jobs-api"
}
}
}
El servidor alojado te inicia sesión con OAuth en la primera conexión, por lo que no se necesita ningún token de API en esta configuración. Los clientes sin soporte de OAuth pueden enviar un encabezado Authorization: Bearer <APIFY_API_TOKEN> en su lugar, usando un token de API e Integraciones en Apify Console (https://console.apify.com/settings/integrations).
Especificación OpenAPI
Descarga la definición de OpenAPI: https://api.apify.com/v2/actors/r9Q1czvsAoCBZUURz/builds/fNdqw62NdGUgQTl7V/openapi.json