Blog

Why is it so hard to find a public contract? Open Data Jalisco (ODJ) is born

June 1, 20266 min read
Why is it so hard to find a public contract? Open Data Jalisco (ODJ) is born

Seguro te ha pasado. Necesitas consultar cómo se está gastando el presupuesto en tu municipio, entras al portal oficial de transparencia o a la Plataforma Nacional de Transparencia (PNT) y te topas con una pared. Enlaces rotos, sistemas lentos y, si tienes suerte de encontrar algo, te descargas un PDF con un nombre indescifrable como wavkksa.pdf que no dice nada por fuera.

A mí me pasó hace poco. Quería investigar los contratos y licitaciones de las páginas web y servicios digitales de mi municipio. Tras navegar por una plataforma bastante deficiente (y lo digo con ánimo de construir, no de acusar), terminé metiendo un reclamo en la PNT. Cuarenta días después, y con el respaldo de la contraloría, me entregaron un contrato que poco o nada tenía que ver con lo que busqué originalmente debido a cambios en las razones sociales.

Esa experiencia me dejó una conclusión clara: la información es pública, pero muchas veces está dispersa, fragmentada o publicada en formatos difíciles de consultar.

Pensando en esto, me hice una pregunta: ¿Y si creamos un buscador semántico que sí funcione? ¿Y si usamos tecnología actual para facilitarle la vida al ciudadano?

Así nació Open Data Jalisco (ODJ).


¿Qué es Open Data Jalisco?

ODJ es una iniciativa ciudadana, técnica y de código abierto (Open Source). No venimos a pelear con nadie ni a inventar el hilo negro; venimos a construir una capa de infraestructura abierta que procese, organice y preserve la información pública municipal para que cualquiera pueda consultarla de verdad.

Mucha gente cree que para hacer política hay que estar en un partido. Nosotros creemos en otra filosofía: Hacer política con las herramientas correctas. La verdadera política empieza desde la ciudadanía activa e informada.

El proyecto funciona bajo tres pilares técnicos:

  • Scraping inteligente: Automatizamos la descarga de los documentos públicos que los municipios suben a sus portales oficiales.

  • Vectorización y Búsqueda Semántica: No buscamos solo por palabras clave exactas. El sistema entiende el contexto de lo que estás pidiendo.

  • Preservación inmutable: Guardamos un histórico real con hashes criptográficos (SHA-256). Si un municipio cambia o borra un documento de su web, en ODJ se preserva la versión histórica con su fecha de captura original. La transparencia no se puede borrar.


El primer piloto: Tala, Jalisco (Y los primeros retos)

Para demostrar que esto es viable, empecé con mi municipio local: Tala, Jalisco. Como es mi primera vez desarrollando scrapers, la curva de aprendizaje ha sido enorme, pero investigando a fondo las entrañas de las plataformas oficiales logramos descifrar su estructura.

Con el apoyo de Claude Code para acelerar el desarrollo de esta versión alfa, el resultado de las primeras pasadas de scraping fue abismal:

En una prueba local, sin descargar archivos y únicamente leyendo páginas públicas del portal de transparencia de Tala, ODJ detectó 4,160 documentos candidatos en el Artículo 8. Cada candidato conserva URL oficial, título, fecha, tamaño, extensión y página fuente.

4,160 candidatos detectados
3,751 PDFs localizados
8.3 GB tamaño estimado
Escaneo ampliado del scraper de Open Data Jalisco para Tala, con 4160 candidatos localizados, 3751 PDFs y 8.3 GB estimados.
Escaneo ampliado del scraper: 4,160 candidatos localizados, 3,751 PDFs, 255 XLSX, 116 DOCX y 8.3 GB estimados de documentos públicos.
Ver desglose técnico del escaneo
Tabla de distribución por content_id del escaneo de transparencia de Tala, mostrando cuántos documentos aparecen por tipo de contenido.
Distribución por tipo de contenido: el scraper permite ver qué obligaciones de transparencia concentran más documentos y cuáles requieren más limpieza o normalización.
Tabla con los 20 títulos de contenido con más documentos y una muestra de los primeros documentos detectados por el scraper de Open Data Jalisco.
Top de contenidos y primeros documentos detectados: una radiografía rápida de la estructura real detrás del portal municipal.
  • Más de 900 páginas rastreadas.

  • Miles de URLs localizadas apuntando directamente a los servidores (buckets) oficiales de los PDFs.

  • Más de 3,700 PDFs localizados (un aproximado de 8.3 GB de datos puros en el corte ampliado).

La primera versión del buscador semántico es un éxito parcial que ya nos permite ver el mapa completo del sitio. Queda claro que procesar todo esto es una tarea titánica para una sola persona, y por eso este proyecto tenía que ser Open Source.


Lo que NO somos (Aclaración importante)

Para que no haya malos entendidos, hay que dejar muy claras las reglas del juego de ODJ:

  • Somos apartidistas: Esta herramienta no responde a ningún partido político ni busca favorecer o perjudicar a candidatos, funcionarios o administraciones.

  • No somos acusatorios: El sistema no asume corrupción ni emite juicios de valor. Si falta un documento, el sistema dirá de manera objetiva: "No se encontró el documento en la base original", no inventará teorías.

  • No reemplazamos a las instituciones: Nunca seremos el reemplazo de la PNT ni de ninguna entidad jurídica. Somos un puente intermedio para que el ciudadano común, el profesor, el estudiante, el periodista o el investigador encuentren en segundos lo que en los portales oficiales toma semanas.


El futuro: Motores agénticos (Fase 2)

Esto apenas empieza. La Fase 1 demostró que podemos extraer y mapear la información con éxito. La Fase 2 de Open Data Jalisco se centrará en integrar Modelos de Lenguaje (LLMs) que funcionen como motores agénticos.

¿La meta? Que en el futuro puedas entrar al portal y preguntar de manera natural:

"¿Qué contratos de obra pública se firmaron en Tala durante el 2021?"

Y que la IA, utilizando herramientas de búsqueda semántica, cruce los datos y te devuelva una conclusión objetiva, rastreable y con enlaces directos a los documentos fuente originales. Sin alucinaciones, sin inventar datos.


La comunidad se construye en código abierto

Este es mi primer gran proyecto Open Source. No soy perfecto y sé que el código siempre se puede mejorar, pero considero que defiende bastante bien la visión del manifiesto. Para asegurar que este proyecto siga siendo de todos, el software se distribuye bajo la licencia GNU Affero General Public License v3.0 (AGPLv3), lo que garantiza que cualquier mejora o uso que se haga de él en la web deba permanecer abierto al público.

Si eres desarrollador, diseñador, periodista o simplemente un ciudadano que quiere un Jalisco más transparente, las puertas están abiertas. Necesitamos manos para mejorar los parsers, optimizar los scrapers y pulir la interfaz.

Porque recuerda: La política empieza desde la ciudadanía activa. ¡Bienvenidos a participar!