Desarrollo de un sistema de extracción, transformación y visualización de vacantes de concursos públicos mediante ingeniería inversa de la API de SIMO. Incluye el enriquecimiento de datos y la automatización de flujos con GitHub Actions, permitiendo búsquedas combinadas por experiencia, ubicación, salario y núcleo de conocimiento .
1. Tema del Proyecto
Se implementa un pipeline de datos de extremo a extremo que automatiza la extracción, transformación y visualización de la Oferta Pública de Empleos de Carrera (OPEC) de la Comisión Nacional del Servicio Civil (CNSC). El proyecto resuelve la imposibilidad de filtrar y combinar criterios de búsqueda del portal oficial SIMO, mediante el consumo de su API interna, el enriquecimiento de los datos con campos derivados y su publicación en un dashboard interactivo que se actualiza de forma autónoma cada semana.
2. Resumen Ejecutivo
Problema:
El portal SIMO publica miles de vacantes de concursos activos, pero su buscador no permite combinar filtros clave ni aplicar criterios que resultan decisivos para el aspirante. Información como los meses de experiencia requeridos o el núcleo básico de conocimiento (NBC) solo es visible abriendo cada vacante individualmente, lo que hace la búsqueda lenta e ineficiente. Tampoco ofrece una vista agregada que permita dimensionar cuántas plazas hay, en qué entidades o en qué regiones.
Solución:
Se diseñó un flujo de trabajo en Python que descubre y consume la API interna no documentada de SIMO, aplana su estructura jerárquica (proceso de selección → convocatoria → empleo → vacante), y enriquece los datos con campos calculados que el portal no expone: experiencia extraída desde texto libre, total nacional de plazas por OPEC y un campo de búsqueda normalizado por NBC. Los datos se cargan en Google Sheets y se visualizan en un dashboard de Looker Studio (Data Studio), con todo el proceso automatizado semanalmente mediante GitHub Actions.
Resultado:
Una herramienta pública, activa y autoactualizable que centraliza al momento del desarrollo 3.896 empleos (OPEC) equivalentes a 7.735 plazas de 159 entidades, con filtros combinables que el portal oficial no ofrece. La solución reduce drásticamente el tiempo de consulta, se valida contra la fuente oficial y opera sin ninguna intervención manual.
3. Contexto de Negocio
El acceso a la información sobre empleo público en Colombia tiene un alto valor social: miles de personas consultan periódicamente los concursos de méritos de la CNSC como vía de acceso a la carrera administrativa. Sin embargo, el portal SIMO, pese a ser la fuente oficial y completa, presenta limitaciones de búsqueda que dificultan encontrar oportunidades pertinentes de forma ágil. La ausencia de filtros combinables obliga a una revisión manual, vacante por vacante, que consume tiempo y desincentiva la consulta. Este proyecto automatiza la extracción y reorganización de esa información pública para transformarla en una herramienta navegable, sin alterar el dato original y respetando su naturaleza pública
4. Trabajo Realizado
Ingeniería inversa de la API:
Identificación de los endpoints internos que alimentan el portal (una aplicación de página única), inspección del tráfico de red y replicación de las peticiones en Python para obtener los datos en formato JSON de forma directa y robusta, en lugar de un scraping frágil sobre HTML.
Resolución de la jerarquía de procesos:
Descubrimiento de la estructura de dos niveles de SIMO (proceso de selección padre y convocatoria hija) y diseño de una estrategia de recorrido que consulta cada proceso visible para etiquetar correctamente cada vacante con su proceso de origen, garantizando además que solo se capture la oferta vigente.
Solución portable del certificado SSL:
Diagnóstico y resolución de un fallo de verificación de certificados (el servidor de SIMO no envía su certificado intermedio), combinando el certificado intermedio con los certificados raíz de certifi en una cadena única que funciona de forma idéntica en Windows y en el entorno Linux de la automatización.
Desagregación y enriquecimiento de datos:
Aplanamiento de la estructura anidada a una fila por vacante y municipio, y creación de columnas derivadas: parseo de los meses de experiencia desde texto libre clasificación del tipo de experiencia, cálculo del total nacional de plazas por OPEC y normalización del requisito de estudio para búsquedas sencillas por NBC.
Automatización y buenas prácticas:
Publicación del proyecto en un repositorio con control de versiones, manejo seguro de credenciales mediante secrets y ejecución programada semanal con GitHub Actions, de modo que los datos se refrescan solos sin necesidad de tener el equipo encendido.
Construcción del dashboard:
Diseño en Looker Studio (Data Studio) de un tablero con tarjetas de totales (plazas, OPEC y entidades), una fila de filtros combinables (experiencia, ubicación, entidad, nivel, salario, modalidad, proceso, número de OPEC y buscador por NBC) y una tabla ordenable de detalle.
Dashboard final:
5. Business Case
Problema:
¿Cómo democratizar el acceso a la oferta de empleo público, dispersa y difícil de filtrar en el portal oficial, para que cualquier persona pueda encontrar vacantes pertinentes según sus criterios reales (experiencia, formación, ubicación y salario) en segundos?
Hipótesis clave:
Un tablero que centralice la totalidad de la oferta vigente y habilite filtros combinables —especialmente los que el portal no ofrece, como experiencia requerida y núcleo básico de conocimiento— reducirá drásticamente el tiempo de búsqueda y hará visible información de valor (totales, distribución geográfica y por entidad) que hoy permanece oculta en la consulta vacante por vacante.
Resultado:
1. El pipeline consolidó y validó la oferta vigente contra la fuente oficial: el conteo de OPEC únicas por proceso coincide exactamente con el portal, confirmando la integridad del dato.
2. Se distingue entre empleos ofertados (3.896 OPEC) y plazas reales (7.735 puestos), un escenario que el portal no comunica con claridad y que da una lectura más honesta de la oferta, además actualizable una vez el portal incluya nuevos procesos.
3. Se habilitaron filtros inexistentes en el portal (experiencia y NBC), resolviendo directamente la necesidad más buscada por los aspirantes.
4. El resultado es una herramienta reutilizable y de mantenimiento nulo: al actualizarse sola cada semana, entrega valor de forma continua sin costo operativo adicional.
Repositorio en [GitHub]