JobCrawling es una plataforma web inteligente y automatizada para la agregación, filtrado y gestión de ofertas de empleo docente, técnico de educación infantil, monitor y bolsas de empleo oficiales en toda España. Incluye fuentes privadas, concertadas y oficiales, con cobertura reforzada de Madrid y Castilla-La Mancha. El sistema cuenta con filtros estrictos de idoneidad, verificación de enlaces de detalle, notificaciones automáticas por correo SMTP, optimización asistida por IA de currículums (con anonimización local de datos personales) y sincronización con servidor / Raspberry Pi.
El motor indexa ofertas de InfoJobs, Colejobs, Colegios.es, el Sistema Nacional de Empleo y la Oficina Virtual de Empleo de Madrid. También consulta convocatorias de Administración Pública y UNED BICI cuando hay fichas vigentes y accesibles. JobToday e Indeed no se publican mientras su protección anti-bot impida verificar el detalle para un usuario normal.
Permite alternar las vacantes listadas según las siguientes especialidades:
- Educación Infantil (Por Defecto): Maestro/a de Educación Infantil, educadores infantiles y auxiliares de aula.
- Otros Puestos Docentes: Profesores de educación Primaria, Secundaria, ESO y Bachillerato.
- Apoyo y Administración: Personal de limpieza, conserjería, mantenimiento, administración y gabinetes psicopedagógicos.
- Todos los Ámbitos: Muestra la totalidad de las vacantes indexadas.
- Restricción Territorial: Mantiene ofertas de España y excluye ubicaciones internacionales identificadas.
- Filtro de Inglés C2: Excluye ofertas que exigen un nivel de inglés C2 (Proficiency/CPE) a menos que se admita C1/B2 como alternativa equivalente en la descripción.
- Privacidad Local (PII): El backend extrae y anonimiza localmente datos personales de contacto (nombres, correos, teléfonos) antes de enviar las ofertas a la API de Gemini para evitar el almacenamiento de PII en los servidores de IA.
- Entorno de Trabajo Dual (50/50): Panel a pantalla completa (100vw/100vh) que previsualiza el PDF original en el panel izquierdo y muestra las mejoras y sugerencias de la IA categorizadas en el panel derecho.
- Citas de Texto Directas: Las sugerencias de mejora extraen y marcan la frase exacta sobre la cual realizar modificaciones.
- El sistema genera cartas de presentación adaptadas a cada colegio objetivo utilizando como base de estilo, redacción y tono la plantilla de referencia del candidato (destacando su trayectoria académica y proyectos).
- Permite programar fecha y hora para las entrevistas de trabajo directamente en la ficha del puesto, ordenando de forma prioritaria la agenda según las citas programadas.
- Notificaciones: Centro interactivo superior que notifica nuevas ofertas publicadas y permite abrirlas con un clic.
- Toasts: Alertas flotantes no bloqueantes animadas para notificar eventos del sistema.
scripts/scrape.ts: Scraper multi-fuente unificado que descarga y detalla las ofertas de empleo.server.ts: Servidor backend local (Express) que gestiona la base de datos localuser_states.json, el currículum persistente en disco y los endpoints de análisis de IA (Gemini).src/App.tsx: Punto de entrada y panel de control principal de la interfaz web.src/components/JobTable.tsx: Tabla y listado interactivo de vacantes con botones rápidos de candidatura.src/components/JobDrawer.tsx: Ficha detallada y panel de visualización a pantalla completa.public/data/jobs.json: Base de datos local unificada de vacantes.
Crea un archivo .env en la raíz del proyecto (tomando como base .env.example) y configura tu clave de API de Google AI Studio:
GEMINI_API_KEY=tu_clave_real_de_google_ai_studioEl proyecto incluye scripts que se encargan de crear los directorios, copiar la configuración inicial, instalar las dependencias e iniciar los servidores en paralelo.
- En Linux / macOS (UNIX):
chmod +x init.sh ./init.sh
- En Windows:
init.bat
- Ejecutar en Desarrollo (Servidor + Frontend):
npm run dev
- Compilar para Producción:
npm run build
- Lanzar Scraper Manualmente (Actualizar Base de Datos):
npm run scrape