Inspiración

Todo empezó con una pregunta simple: ¿por qué las empresas siempre se enteran de que perdieron un cliente hasta que ya se fue?

Trabajando con datos reales de ventas notamos algo inquietante — las señales siempre estuvieron ahí. Caídas graduales en compras, meses de inactividad, transacciones cada vez más espaciadas. El problema no era la falta de datos, era que nadie los estaba mirando a tiempo. Eso nos dio el impulso para construir Churn Hunters.


Qué hace

Churn Hunters es una plataforma que predice qué clientes están en riesgo de abandonar una empresa antes de que eso ocurra. El usuario sube su historial de ventas en CSV, el sistema entrena automáticamente un modelo de Machine Learning con esos datos y genera un score de riesgo del 0 al 100 para cada cliente. Los clientes críticos reciben además una explicación en lenguaje natural generada por Google Gemini que describe exactamente por qué están en riesgo, y una alerta de voz con ElevenLabs para que el equipo comercial pueda actuar de inmediato.


Cómo lo construimos

Lo construimos capa por capa, con mucho café y bastantes errores de por medio.

El backend está hecho en Python con FastAPI. Los datos de ventas se procesan con Pandas para construir features estadísticas por cliente — tendencia de compras, meses inactivos, variabilidad — que alimentan un modelo XGBoost entrenado en tiempo real. Las predicciones se almacenan en MongoDB y se sirven a un dashboard interactivo construido en React con Recharts. Google Gemini genera las explicaciones de cada cliente en riesgo y ElevenLabs las convierte en audio.


Retos que enfrentamos

El primero nos golpeó fuerte en pleno hackathon: MongoDB tiene un límite de 16MB por documento y nuestros CSVs lo superaban fácilmente. Tuvimos que replantear toda la arquitectura de almacenamiento sobre la marcha, pasando de guardar el CSV en la base de datos a guardarlo en disco y solo almacenar los metadatos en Mongo.

El segundo fue conceptual: lograr que el sistema funcionara con cualquier CSV sin importar su estructura, nombre de columnas ni industria, sin que el usuario necesite saber nada de Machine Learning.

Y el tercero, siendo honestos, fue el tiempo. Aprender a tomar decisiones técnicas rápidas y soltar la perfección para entregar algo que realmente funciona también es parte del reto.


Logros de los que estamos orgullosos

Estamos orgullosos de haber construido un sistema end-to-end funcional en el tiempo del hackathon — desde la carga del CSV hasta la alerta de voz — sin atajos ni demos falsos.

También nos enorgullece haber resuelto el problema de generalización: el modelo se adapta a los datos que le das, no al revés. Y haber combinado Machine Learning clásico con IA generativa de una forma que tiene sentido y agrega valor real, no solo como decoración tecnológica.


Qué aprendimos

Aprendimos que el verdadero reto del Machine Learning no es el modelo, sino los datos. Construir features significativas a partir de series de tiempo, manejar datasets desbalanceados y hacer que todo funcione en producción fue el aprendizaje más valioso.

Aprendimos también que explicar una predicción es tan importante como hacerla — un número solo no mueve a nadie a actuar, pero una explicación clara sí. Y aprendimos a trabajar bajo presión, tomar decisiones rápidas y confiar en el equipo.


Qué sigue para Predict & Retain

El siguiente paso es hacer la plataforma accesible como servicio en la nube, donde cualquier empresa pueda conectar sus datos directamente desde su CRM o ERP sin necesidad de exportar CSVs manualmente.

También queremos incorporar modelos de series de tiempo más sofisticados como Prophet o LSTM para capturar patrones estacionales, agregar recomendaciones automáticas de acciones de retención por segmento de cliente, y construir un sistema de alertas proactivas que notifique al equipo comercial antes de que el score llegue a nivel crítico.

La visión a largo plazo es democratizar el acceso a herramientas de retención de clientes para empresas de cualquier tamaño, no solo para las que pueden pagar consultoras o equipos de datos dedicados.

Built With

Share this project:

Updates