BookinglyTech News
Software

SHOBR, un CLI de búsqueda de empleo que automatiza tu navegador real

El proyecto conduce tu navegador de uso diario vía beachpatrol, guarda todo el estado en logs de eventos JSONL y usa un LLM solo donde no hay alternativa.

3 min de lecturaLobsters0 vistas

SHOBR es un CLI de código abierto que automatiza la búsqueda de empleo sin levantar un navegador headless: conduce el navegador que ya usas a diario a través de beachpatrol, guarda el estado en registros de eventos y reserva el LLM para los pasos donde no hay otra salida. El autor lo publica en GitHub y lo describe como la opción más UNIX del nicho.

El navegador que ya tienes, no uno controlado

La premisa es sencilla. Buscar ofertas implica hacer scraping, y hacerlo bien implica hacerlo con tus credenciales reales. En vez de pedirte que extraigas cookies y sesiones a un navegador automatizado, SHOBR se apoya en beachpatrol, que envuelve Playwright sobre tu navegador de uso diario. Para LinkedIn, la actividad se parece a la de cualquiera pulsando enlaces. Beachpatrol es el único requisito duro del proyecto, y el autor avisa de que el enfoque puede chocar con los términos de servicio si se abusa de él.

El flujo se divide en cinco etapas: descubrimiento de ofertas, enriquecimiento con descripciones y rangos salariales, cribado, adaptación del currículum y seguimiento. shobr discover lanza el scraping, shobr status imprime el estado de cada fase y shobr next va preguntando por el siguiente paso lógico en lugar de obligarte a recordar el comando concreto. El envío final de la candidatura siempre lo haces tú: la herramienta prepara borradores y PDFs, pero no dispara nada.

Event sourcing y un LLM que no manda

Todos los datos —ofertas encontradas, cribados, seguimiento— viven en logs JSONL append-only que se proyectan a ficheros de estado. Eso permite cortar el pipeline a medias o recalcular aprobaciones con reglas nuevas sin perder nada por el camino.

En la parte de IA el diseño es deliberadamente frugal. Adaptar un currículum a una oferta con calidad exige algo de modelo, pero el proyecto usa lo mínimo y no requiere un driver de agente como otras herramientas del mismo espacio. La integración pasa por any-llm, así que da igual OpenAI, Anthropic o un modelo local; el autor incluso menciona faaah para reutilizar la suscripción de un agente que ya tengas corriendo.

Los currículums se escriben en Markdown y se compilan a PDF legibles por ATS con groff y pandoc, con una carpeta por candidatura.

Qué hace falta para probarlo

Python 3.14 o superior con uv, una sola dependencia de runtime (any-llm-sdk[openai]) y las utilidades de texto de Unix habituales. shobr setup genera la configuración en $XDG_CONFIG_HOME/shobr/config.toml y enlaza los comandos propios dentro de beachpatrol por symlink; hace falta un perfil con sesión iniciada en LinkedIn. Las pruebas van con unittest de la biblioteca estándar, sin framework externo, y el autor cifra el proyecto en 3500 líneas con comentarios incluidos. Conviene aclarar que el texto del repositorio está truncado a mitad de la fase de enriquecimiento, así que las etapas finales no quedan detalladas.

Lo reutilizable aquí no es el buscador de empleo, sino dos patrones: dirigir el navegador real en lugar de uno headless es una vía para cualquier scraping que necesite sesión autenticada, y una capa de abstracción como any-llm evita atarse a un proveedor cuando el modelo es solo una pieza del flujo.