Job-radar · Empleo CRM
CRM web self-hosted que automatiza y centraliza mi búsqueda de empleo: reúne las ofertas, las puntúa con IA (Groq/Gemini/Ollama), genera carta y ajustes de CV, y las sigue en un kanban. Astro SSR + React + PostgreSQL, todo configurable desde la web y replicable con un comando.
- Rol
- Full-stack + IA + infra
- Año
- 2026
- Stack
- Astro SSR · React · PostgreSQL
- Licencia
- MIT

1 comando
Despliegue con Docker
3 servicios
Postgres · web · worker IA
100%
Self-hosted, sin nube
Job-radar (Empleo CRM) es un CRM web self-hosted que construí para automatizar y centralizar mi propia búsqueda de empleo — y publicado en abierto (MIT) para que cualquiera lo replique. Convierte el caos habitual (mil pestañas, ofertas repetidas, seguimiento a mano) en un sistema donde PostgreSQL es la única fuente de verdad y la pantalla de inicio es una “cola de hoy” con las mejores ofertas abiertas que aún no he postulado. Pensado para ayudarme a actuar, no solo a informarme.
Qué hace
- Hoy — cola diaria accionable: las ofertas más frescas y con mejor encaje que aún no he postulado, más KPIs (score ≥80 sin postular, seguimientos pendientes, tasa de respuesta, nuevas en 24 h).
- Ofertas — tabla filtrable (encaje, estado, modalidad, texto) con ubicación normalizada y marca para las ofertas locales.
- Pipeline — kanban con arrastrar y soltar (Abiertas → CV → Postuladas → Entrevista → Resuelta) y recordatorios de entrevistas y próximas acciones.
- Config — defino zona, modalidades aceptadas, score mínimo, fuentes de scraping, palabras clave y mi perfil/CV para la IA. Todo desde la web, sin tocar código.
- Analíticas — embudo de conversión, actividad por semana, tecnologías más pedidas, tasa y velocidad de respuesta, mi tiempo de reacción, conversión por encaje/fuente/modalidad y salud del sistema.
- Ficha de oferta — por qué encaja (veredicto + razones + keywords), carta editable y copiable, ajustes de CV y documentos IA (preparación de entrevista, análisis de carencias).
Arquitectura
El CRM no tiene BD propia: lee y escribe sobre el schema empleo de PostgreSQL, la única fuente de verdad. La ingesta y la IA son piezas opcionales y externas: un scraper (JobSpy + RSS) trae las ofertas y un motor de IA las puntúa (0-100) y genera la carta y los ajustes de CV. Ese motor puede ser un worker autónomo en Node (reduce el sistema a 3 piezas: Postgres + web + worker) o n8n (7 flujos, con Telegram y Obsidian). Cualquier proceso que inserte en empleo.job_offers alimenta el CRM — así que también funciona como gestor puramente manual.
Stack
Astro 5 en modo servidor (SSR, adaptador Node standalone), islas React 19 para el kanban, Tailwind CSS 4 y postgres.js con SQL parametrizado. Fuentes autohospedadas (Bunny Fonts), sin dependencias de nube.
IA configurable
Puntuación y generación con el LLM que elijas — Groq, Gemini u Ollama (local) — con una clave basta y el resto es fallback. Las claves se ponen en Config → IA (o en el .env del worker); el repo solo lleva placeholders, ningún dato ni clave real.
Seguridad y despliegue
Rol de BD empleo_web con privilegios mínimos (SELECT global; INSERT/UPDATE solo en las tablas del CRM), login opcional (APP_PASSWORD + AUTH_SECRET) y despliegue con un comando (docker compose up -d --build levanta Postgres + web + worker) tras un reverse proxy con TLS. Yo lo uso en local a diario; el repo está pensado para que otros lo levanten en su propio NAS.
Origen
Reescritura propia inspirada en ai-job-search de Mads Lorentzen (MIT), adaptada al mercado español y a mi flujo de trabajo. Publicado bajo licencia MIT.