De scrapers a reportes de antecedentes confiables
Reemplacé scrapers frágiles (3 fuentes) por la API de TusDatos.co (10+ fuentes) con datos internos, y reportes asíncronos y por lotes.
Proyecto confidencial — los detalles están anonimizados y no se comparten capturas ni código.
- Año
- 2025
- Rol
- Líder, gestor de proyecto y desarrollador
- Stack
- Python · Flask · React · MongoDB · Airflow

El reto
Antes de trabajar con una persona o un vehículo, la operación necesita conocer sus antecedentes — registros en fuentes oficiales y listas restrictivas, y el estado de los vehículos.
Hasta entonces esto dependía de scrapers que leían 3 sitios públicos directamente. Cuando un sitio estaba caído o cambiaba su estructura, el scraper fallaba y la verificación quedaba incompleta — y solo se cubrían esas 3 fuentes.
Qué cambió
- De scraping a una API. Migramos a la API de TusDatos.co, que agrega fuentes oficiales detrás de una interfaz estable — se acabaron los scrapers rotos cada vez que un sitio cambiaba.
- De 3 a más de 10 fuentes. La cobertura se multiplicó usando las fuentes que ya ofrece el proveedor.
- Datos internos, por primera vez. Combinamos los resultados externos con datos internos de la compañía para mejorar las búsquedas y dar una visión más completa — algo que el proceso anterior no hacía.
Cómo funciona
- Solicitud. Un usuario pide un reporte por documento de identidad (personas) o por placa (vehículos), uno a uno o por lotes.
- API de reportes. Un servicio en Flask recibe la solicitud y la entrega a un procesador por país (empezando por Colombia), para que las reglas y fuentes de cada país queden aisladas y se puedan agregar nuevos.
- Lanzamiento. El procesador envía la consulta a la API de TusDatos.co, que agrega cientos de fuentes oficiales. Las consultas toman tiempo, así que se ejecutan de forma asíncrona en lugar de hacer esperar al usuario.
- Verificador de estado. Trabajos batch y en segundo plano con Airflow consultan el estado de cada solicitud hasta que los resultados están listos — los lotes grandes nunca bloquean la plataforma.
- Transformador. Un paso de transformación normaliza los resultados en una sola estructura de reporte y los enriquece con datos internos propios, dando una visión más completa que la fuente externa por sí sola. Los resultados se guardan en MongoDB.
- Reporte. Una vista en React presenta el reporte final de antecedentes de la persona o del vehículo.
Mi rol
Lideré, gestioné y desarrollé el proyecto: planifiqué la migración de los scrapers a la API y coordiné al equipo y los tiempos, diseñé la integración y el flujo de procesamiento, y construí el servicio, los pipelines y la vista del reporte.
Resultado
- Más de 10 fuentes en lugar de 3, con una API estable en vez de scrapers que se rompían.
- Reportes confiables y enriquecidos que combinan fuentes oficiales con datos internos.
- Bajo demanda y por lotes, generados en segundo plano sin afectar el rendimiento de la plataforma.
¿Tienes un problema parecido?
Cuéntame qué frena a tu equipo y te respondo con una primera idea de cómo lo abordaría.