$ man how-to/cron-jobs-for-scraping
Herramientas CLIadvanced
Cron Jobs para Scraping de Ofertas de Empleo
Scripts en Python como cron jobs para scraping de bolsas de trabajo y deteccion de senales
by Shawn Tenam
Por Que las Bolsas de Trabajo Son Senales
Una empresa que publica "Head of RevOps" es una senal. Estan construyendo una funcion de operaciones de ingresos. Una empresa que publica "SDR Manager" es una senal. Estan escalando outbound. Una empresa que publica "Data Engineer" con "Clay" en los requisitos es una senal. Estan construyendo infraestructura de datos GTM.
Las ofertas de empleo son datos de intencion publica. La empresa le esta diciendo al mundo exactamente que estan construyendo y que habilidades necesitan. Si tu producto o servicio se alinea con lo que estan buscando, esa es una senal calida. El problema: las bolsas de trabajo tienen miles de nuevas publicaciones diariamente. El monitoreo manual no escala. Los cron jobs si.
PATTERN
El Pipeline de Scraping
Paso 1: Script en Python que consulta APIs de bolsas de trabajo o hace scraping de listados. Apunta a bolsas relevantes para tu ICP: LinkedIn Jobs API, Indeed, paginas de Greenhouse, paginas de Lever. Filtra por palabras clave que indiquen intencion de compra para tu producto.
Paso 2: Analiza y normaliza los resultados. Extrae nombre de la empresa, titulo del puesto, fecha de publicacion, requisitos clave. Almacena en un formato estructurado - JSON o SQLite.
Paso 3: Enriquece. Cruza nombres de empresas con tus registros existentes de Attio. Verifica si ya estan en tu pipeline. Si son nuevos, ejecuta Apollo para datos firmograficos.
Paso 4: Puntua y enruta. Empresas que publican 3+ roles relevantes en 30 dias obtienen una puntuacion mas alta que publicaciones unicas. Enruta senales de alta puntuacion a tu lista de objetivos ABM.
CODE
Programacion con launchd
En macOS, cron esta deprecado a favor de launchd. Crea un archivo plist en ~/Library/LaunchAgents/ que ejecute tu script de Python en un horario.
El plist define: que script ejecutar (ProgramArguments), cuando ejecutarlo (StartCalendarInterval o StartInterval), donde registrar la salida (StandardOutPath, StandardErrorPath), y si ejecutar al cargar (RunAtLoad).
Una configuracion tipica: ejecutar el scraper cada 6 horas. Eso captura nuevas publicaciones sin sobrecargar la fuente. El script escribe resultados en data/signals/job-postings.json. Un cron diario separado lee ese archivo, deduplica, enriquece nuevas entradas, y envia senales calificadas a Attio.
Manten el scraping y el enriquecimiento como trabajos separados. Si el scraper falla, no pierdes los resultados de enriquecimiento de ayer. Si el enriquecimiento falla, no pierdes los resultados de scraping de hoy. Los pipelines desacoplados son pipelines resilientes.
PRO TIP
Alimentando Senales en ABM
Las ofertas de empleo sin procesar son ruido. Las ofertas de empleo enriquecidas y puntuadas son senales. El paso de enriquecimiento transforma "Acme Corp publico un puesto de Head of RevOps" en "Acme Corp (Serie B, 150 empleados, usando Salesforce y Outreach, $12M ARR) esta construyendo una funcion de RevOps. Publicaron 3 roles GTM en las ultimas 2 semanas. Sin relacion existente en Attio."
Esa senal enriquecida alimenta directamente tu segmentacion ABM. Construye una landing page personalizada referenciando su desarrollo de RevOps. Redacta outreach que conecte tu solucion con su patron especifico de contratacion. La oferta de empleo te dio la apertura. El enriquecimiento te dio el contexto. El pipeline ABM convierte ambos en una conversacion.
guías relacionadas