career-ops

Ashby

Ashby es el ATS moderno preferido por las startups Serie A–C del espacio de la IA y las dev-tools. career-ops consulta directamente la API pública de su job board.

Qué hace

El provider ashby de providers/ashby.mjs hace peticiones HTTP a api.ashbyhq.com/posting-api/job-board/{slug} y parsea el JSON resultante. El slug es el identificador del job board de Ashby de la empresa (p. ej. 'elevenlabs' para ElevenLabs). career-ops elige este provider por el careers_url de la entrada (https://jobs.ashbyhq.com/<slug>) o por un campo api: explícito.

Cuándo usarlo

Usa el escaneo de Ashby cuando tengas en el punto de mira labs de IA, empresas de infraestructura y startups modernas. ElevenLabs, Deepgram, Sierra, Decagon y n8n están entre los boards de Ashby preconfigurados en templates/portals.example.yml.

Ejemplo

portals.yml
- name: ElevenLabs
  careers_url: https://jobs.ashbyhq.com/elevenlabs
  enabled: true

El siguiente escaneo recoge las vacantes activas de ElevenLabs.

Qué hace el escáner

El escáner lee tus slugs de Ashby habilitados en portals.yml, llama a la API pública del job board de Ashby para cada uno y fusiona las vacantes nuevas en tu pipeline sin navegador, sin login y sin gastar un solo token de LLM en la propia descarga. Una sola ejecución de node scan.mjs cubre a la vez tus boards de Ashby, Greenhouse y Lever, y después filtra los resultados por las palabras clave de título que hayas configurado.

Terminal
node scan.mjs
Output
Companies scanned:     12
Total jobs found:      41
Filtered by title:     35 removed
Duplicates:            3 skipped
New offers added:      3

New offers:
  + ElevenLabs | Applied AI Engineer | London, UK
  + Deepgram | Inference Engineer | Remote
  + Sierra | Agent Engineer | San Francisco, CA

Cómo se comunica career-ops con Ashby

career-ops llama a la API pública de publicaciones de Ashby en api.ashbyhq.com/posting-api/job-board/{slug}?includeCompensation=true y lee la lista jobs directamente de la respuesta JSON. De cada vacante toma el título, el jobUrl público como enlace de solicitud, la ubicación (la principal más las secundarias que tenga, con "Remote" añadido si el puesto es remoto), la descripción en texto plano, la fecha de publicación y un rango salarial anualizado cuando el board lo publica. Como se trata de una llamada estructurada a la API y no de scraping de páginas, el escaneo no necesita navegador ni gasta tokens del modelo. La API pública de Ashby tarda en responder, con un mínimo de unos diez segundos por board, y limita las peticiones repetidas, así que career-ops espera hasta 30 segundos por board y reintenta con espera progresiva. Los tokens solo se gastan más tarde, durante el paso de evaluación, cuando decides que una vacante merece un vistazo más de cerca. Repetir el escaneo es seguro: cada URL se deduplica contra tu historial de escaneos, tus candidaturas ya evaluadas y el pipeline actual, de modo que una vacante que ya has visto nunca se añade dos veces.

A tener en cuenta

La API del job board de Ashby devuelve directamente el texto completo de la descripción del puesto, sin necesidad de una petición adicional. Cada board tarda unos diez segundos en responder, así que un escaneo con muchos boards de Ashby tarda algo más que con el mismo número de boards de Greenhouse o Lever.

Algunas empresas desactivan la API de publicaciones de Ashby aunque su board siga activo: la API responde 404 aunque las vacantes sigan publicadas. Para esos casos, añade ashby: { embed: true } a su entrada y career-ops leerá el board desde la página que Ashby sirve para incrustarlo en las páginas de empleo de las empresas. Si el careers_url de la entrada es el sitio propio de la empresa y no una dirección jobs.ashbyhq.com, indica también el board con ashby: { board: <slug> }. Con esa fuente, cada vacante llega sin descripción ni fecha de publicación, y su rango salarial se queda como texto tal como se muestra, sin convertirse en un salario parseado. Hay que activarlo expresamente porque un 404 suele indicar un board cerrado o un slug mal escrito, y eso debe seguir siendo un error.

portals.yml
- name: Example Co
  careers_url: https://jobs.ashbyhq.com/exampleco
  ashby: { embed: true }
  enabled: true

Relacionado

En esta página