Ficha técnica de proyecto
Contratación pública · Plataforma de análisis con IA
Radar de licitaciones
Radar de licitaciones públicas que lee la Plataforma de Contratación, puntúa cada oportunidad, lee los pliegos con IA citando la página y prepara la oferta.
- Tipo
- Producto propio
- Periodo
- Desde octubre de 2026
- Estado
- MVP · En curso, preparación de ofertas en primera versión
- Áreas
- Desarrollo de software, Inteligencia artificial, Datos y analítica
- Categorías
- Software y plataformas, Inteligencia artificial, Automatización, Datos e inteligencia
Alcance
Encontrar una licitación adecuada exige revisar a diario miles de publicaciones, leer pliegos de decenas de páginas y comprobar si la empresa cumple cada requisito. El radar carga los feeds de la Plataforma de Contratación del Sector Público en formato CODICE, detecta señales de oportunidad, descarta lo que la empresa no puede acreditar y puntúa el resto de 0 a 100. Los pliegos los lee Claude con salida validada por esquema y cada dato lleva su cita literal comprobada en la página. Desde la ficha se preparan la checklist, la declaración responsable y un borrador de memoria técnica que bloquea lo que el perfil no respalda.
Funciones principales
- Ingesta de la Plataforma de Contratación. Parser de los feeds ATOM de CODICE con la estructura real documentada campo a campo, carga idempotente que versiona los cambios y guarda las diferencias, y fuente propia para los contratos menores de Cataluña desde su registro público.
- Señales, encaje y puntuación. Detecta desiertas, relicitaciones, contratos que vencen y menores repetidos. Un filtro por sociedad aplica las vías de solvencia y avisa de los datos que faltan en vez de descartar, y una puntuación de 0 a 100 guarda de dónde sale cada dimensión.
- Portada por tipo de trabajo. Las licitaciones abiertas se agrupan por tipo de trabajo con su dificultad, importe y opciones de ganar, con filtro por zona y un aviso de última llamada para las que cierran entre dos y cinco días.
- Lectura de pliegos con IA y citas verificadas. Claude lee el pliego administrativo y el técnico y devuelve un JSON validado contra un esquema. Cada dato lleva documento, página y texto literal, y el sistema comprueba que ese texto aparece en esa página; si no aparece, el dato queda marcado.
- Requisitos frente al perfil de la empresa. La ficha lista capacidad, solvencia, certificaciones, inscripciones y garantías con su página, y marca cada requisito como cumple, no cumple o verificar según los documentos del perfil. La página de empresa resume qué falta y a cuántas licitaciones afecta.
- Precio y baja anormal. Calcula el umbral de baja anormal del artículo 85 del RGLCAP o el que fije el pliego, aplica su fórmula de puntuación económica y sugiere un precio con las bajas ganadoras del histórico público y las ofertas leídas de las actas.
- Preparación de la oferta. Genera la checklist por sobre, la declaración responsable y un borrador de memoria técnica en Word ordenado por los criterios del pliego. Lo que el perfil no respalda queda marcado como FALTA o VERIFICAR y bloquea la carpeta de la oferta.
- Embudo y alertas. Cada licitación pasa por un embudo de Nueva, Me interesa y Preparando, con pasos hasta presentar. Las alertas llegan por Telegram con botones para leer el pliego o marcar interés, más resúmenes por n8n y un recordatorio 48 horas antes del cierre.
Arquitectura
- Clientes
- Web del radar con login de un usuario · Bot de Telegram con botones · Panel local en el equipo de trabajo
- Web y nube
- Next.js 16, React 19 y Tailwind 4 · Esquema nube en PostgreSQL de Supabase · Cola de trabajos con latido y reintentos
- Motor local
- Ciclo horario y worker como servicios systemd · API FastAPI para el panel local · Sincronización idempotente con la nube
- Reglas de negocio
- Detección, encaje, puntuación y precio como funciones puras · Normativa, empresa, radar y alertas en YAML con fuente y vigencia · Validadores que bloquean la oferta
- Datos e integraciones
- PostgreSQL local con unas 270.000 licitaciones · Feeds ATOM de PLACSP y registro de contratos de Cataluña · Claude con salida validada por JSON Schema · PyMuPDF para el texto por página y Word para la memoria · Playwright y Lighthouse para auditar la web del organismo · n8n y Telegram para los avisos
Tecnologías
- Interfaz
- Next.js, React, TypeScript, Tailwind CSS
- Backend
- Python, FastAPI, Pydantic, PyMuPDF
- Datos
- PostgreSQL, Supabase
- IA y voz
- Claude (Anthropic)
- Automatización y vídeo
- n8n, Playwright
- Infraestructura
- Linux
- Integraciones
- Telegram
- Calidad
- pytest
Resultados medidos
- 543 s a 7 s tiempo de cálculo de la alerta temprana tras guardar el filtro del nicho por licitación. Fuente: docs/decisiones.md, decisión 68, y commit 3b0f862 del repositorio del radar · 2026-11
- 56 s primera lectura real de un pliego de 32 páginas, con criterios que suman 100 y todas las citas verificadas. Fuente: docs/decisiones.md, decisión 33 (primera prueba real con PCAP y PPT) · 2026-10