oposito es un MVP local y open-source para agregar oposiciones de empleo público en España a partir del BOE y el BOJA.
Lee los sumarios diarios del BOE, extrae la sección II. Autoridades y personal. - B. Oposiciones y concursos, consulta boletines recientes de Andalucía y expone una web local con filtros por texto, tipo, organismo y fuente.
- BOE: Sección II.B, Oposiciones y concursos.
- API usada:
https://www.boe.es/datosabiertos/api/boe/sumario/AAAAMMDD - BOJA: boletín autonómico de Andalucía desde
https://www.juntadeandalucia.es/eboja/. - La fuente BOJA incluye oposiciones autonómicas, Servicio Andaluz de Salud y justicia transferida cuando aparecen en el sumario.
- Node.js 18 o superior.
- Sin dependencias npm.
node poller.mjs # descarga BOE + BOJA -> data/oposiciones.json
node server.mjs # web en http://localhost:8090También puedes usar los scripts:
npm run poll
npm startPara cambiar el número de días consultados:
node poller.mjs --dias 30
DIAS=30 node poller.mjsPara consultar una sola fuente:
node poller.mjs --solo-boe
node poller.mjs --solo-bojaPara cambiar el puerto:
PORT=3000 node server.mjsGET /api/oposiciones?tipo=&organismo=&fuente=&q=&limit=GET /api/novedades?dias=7GET /api/organismosGET /api/stats
Cada item incluye fuente (BOE o BOJA) y firstSeen, que conserva la primera vez que oposito vio esa publicación.
La web permite guardar la búsqueda actual como seguimiento local en localStorage. La pestaña Mis seguimientos vuelve a consultar esas búsquedas, marca como Nuevo lo visto en los últimos 7 días y puede lanzar una notificación local del navegador si el usuario concede permiso.
La pestaña Novedades muestra los items con firstSeen reciente desde /api/novedades.
El BOE es dominio público. Este proyecto almacena solo metadatos y enlaces oficiales.
Las listas de admitidos pueden contener datos personales. Por RGPD, oposito solo enlaza a la fuente oficial del BOE: no descarga, no parsea y no indexa nombres ni otros datos personales contenidos en esos documentos.
Este proyecto no es asesoramiento legal, administrativo ni profesional.
- Añadir más boletines autonómicos: Madrid/BOCM, Cataluña/DOGC, Galicia/DOG y otros.
- Añadir BOP provinciales.
- Añadir universidades, RENFE/ADIF y otros entes públicos.
- Alertas por email o Telegram.
- Función para seguir una oposición concreta.
- Resumen de las bases con IA local.
MIT.
La web está pensada para alojarse en Vercel (serverless):
public/se sirve como estático (la web).api/*.jsson funciones serverless (/api/oposiciones,/api/organismos,/api/novedades,/api/stats) que comparten la lógica delib/datos.mjs.- Los datos viven en
data/oposiciones.json, versionado en el repo (vercel.jsonlo incluye en el bundle de las funciones).
Para actualizar los datos (MVP, 0 €): se ejecuta el poller en local y se hace push; Vercel redespliega solo.
npm run poll # regenera data/oposiciones.json (BOE + BOJA)
git commit -am "datos: actualización" && git pushEn local sigue funcionando
npm start(server.mjs en http://127.0.0.1:8090).