Un profesional del marketing creó un monitor de competidores con AI: detecta funciones discretas sin generar ruido con cada despliegue
La monitorización habitual de las webs de competidores acaba convertida en un detector de despliegues de frontend: cambia una clase o una URL y salta una alerta en Slack. Un analista de Garage Eight planteó otra solución: un LLM accede al producto con la cuenta de un usuario y convierte la interfaz en una lista de capacidades que después compara código Python convencional. A Slack solo llega lo que el usuario puede hacer ahora y antes no podía.
Procesado por IA desde Habr AI; editado por Hamidun News
Nadie anuncia los cambios más interesantes en los productos de la competencia. Una nueva automatización o un asistente de AI se activan directamente para los usuarios, sin nota de prensa ni entrada en la tienda. Vladimir Mijáilov, Marketing Analyst en Garage Eight, decidió detectar estos cambios automáticamente. Su experiencia resulta útil para cualquiera que haya intentado crear un sistema de monitorización con Playwright y haya acabado inundado de falsas alarmas.
Por qué no funciona comparar el DOM
La primera idea es evidente: capturar el HTML hoy, volver a capturarlo mañana y comparar. En una SPA moderna, eso genera un detector de despliegues de frontend, no de cambios en el producto. Cambia una clase CSS, un testid o la dirección de una sección; se mueve un componente, se renombra un botón o se muestra al usuario otra variante de una prueba A/B. Todo eso se traduce en cientos de alertas al día, casi todas inútiles.
El autor cambió la pregunta de partida. En lugar de «qué ha cambiado en la página», preguntó «qué puede hacer ahora el usuario que antes no podía». De ahí surge la decisión arquitectónica clave: el LLM no recibe dos archivos HTML con la petición de «encontrar las diferencias». El modelo interviene antes, al principio del proceso: explora la interfaz y construye un modelo estructurado del producto. Un código Python determinista compara los dos modelos. El resultado es estable y reproducible, sin depender del humor del modelo.
Un ejemplo del artículo: una función pasa de /analytics a /insights/analytics, se reescribe el DOM y el usuario no nota nada. Un diff estructural gritará «MAJOR CHANGE!». En cambio, si la URL y el nombre siguen siendo los mismos, pero se añade la posibilidad de programar la ejecución automática de una acción manual, el diff no dirá nada, aunque sea un cambio importante. Por eso se guarda una lista de capacidades para cada función: schedule_action, export_report, create_custom_alert. Se calcula un hash independiente para esas capacidades, y ese hash es el que indica si ha habido un cambio de fondo.
El pipeline y las dos interfaces
La cadena es la siguiente: navegador con una sesión autenticada, AI Discovery, modelo de funciones, instantánea semántica, comparación, filtro de relevancia para el negocio y Slack. La web pública solo muestra el escaparate. Saved Views, Custom Alerts, Automation Rules y las recomendaciones solo aparecen después de iniciar sesión, así que el sistema recorre el producto como cualquier usuario autenticado.
A esto se suma una capa analítica. Claude se conecta mediante MCP al historial de monitorización con herramientas de solo lectura: funciones actuales de los competidores, NEW/UPDATED/REMOVED durante un periodo, filtros por categorías y comprobación de cobertura. El resultado ofrece dos modos de uso. Slack envía los cambios automáticamente. Y ante la pregunta «¿qué han incorporado los competidores este mes que no tengan los demás?», el analista recibe una respuesta en lenguaje natural, sin SQL ni JSON. El historial también se sincroniza con Google Drive como base de conocimiento para un Claude Project independiente.
Autenticación: dónde falla la automatización
Buena parte del artículo explica cómo evitar que el inicio de sesión rompa la automatización. Estas son las soluciones prácticas:
- Estados en lugar de comprobar la URL. La condición «la dirección no contiene /login» es poco fiable: una SPA puede mostrar algo durante un segundo y redirigir inmediatamente a otra pantalla. El autor utiliza una máquina de estados (AUTH_OK, AUTH_EXPIRED, AUTH_2FA_REQUIRED, AUTH_CAPTCHA_REQUIRED, AUTH_UNKNOWN) y considera que el usuario está autenticado si encuentra al menos dos de tres indicadores independientes, por ejemplo, el menú de usuario y el botón para cerrar sesión.
- Un error de navegación no equivale a un fallo de inicio de sesión. La excepción «Execution context was destroyed» después de un inicio de sesión correcto puede provocar un nuevo envío del formulario. El estado se comprueba mediante una serie de mediciones y se ignoran los errores transitorios.
- Los secretos no llegan al modelo. El nombre de usuario y la contraseña se guardan en el almacén del sistema, y un proceso independiente de Playwright los introduce. La AI solo recibe la señal de que la sesión vuelve a estar activa, y no hay secretos en el historial de solicitudes al modelo.
- No se elude el 2FA. Si llega un SMS, el sistema se detiene y espera a una persona. Una vez introducido el código, la sesión se guarda y las siguientes ejecuciones son automáticas.
- No todos los captchas son iguales. Una insignia invisible de reCAPTCHA en la página no significa que en ese momento se esté pidiendo una verificación. Hay que distinguir entre «existe un captcha» y «el captcha bloquea el inicio de sesión».
- Un perfil persistente no equivale a una sesión persistente. Un servicio emitía una cookie de autenticación con expires: -1, que moría al cerrarse el proceso de Chrome. El autor optó por adaptarse a ese comportamiento: después del inicio de sesión automático, el navegador permanece abierto y Playwright MCP se conecta a él mediante CDP (connectOverCDP).
Qué ideas aprovechar y qué tener en cuenta
Tres ideas aplicables a otros proyectos. Primera: usar el LLM para convertir el caos en estructura y comparar con código determinista. Segunda: describir el producto a través de las acciones del usuario, en lugar de su marcado. Tercera: tratar los secretos como un ámbito al que el modelo nunca accede.
También hay limitaciones. La parte accesible del material no aporta cifras sobre cuánto cuesta una ejecución, con qué frecuencia el modelo omite o inventa funciones ni cómo distingue el filtro de relevancia los cambios importantes de los detalles menores. Acceder a productos ajenos con una cuenta puede infringir las condiciones de uso del servicio, y conviene revisarlo con el equipo jurídico antes de poner el sistema en marcha. Aun así, la arquitectura parece viable y adecuada para la inteligencia competitiva de producto en cualquier equipo.
- 12 nov 2026Jensen Huang deja el cargo de CEO de Nvidia: la empresa pierde 1,4 billones de dólares en dos semanas
- 12 nov 2026Claude in Chrome exige autorizar cada clic en los sitios de categoría 3
- 12 nov 2026AWS Quick incorpora seis agentes para product managers: de las quejas de los clientes a la especificación
- 12 nov 2026Anthropic cierra Claude desde el 12 de noviembre a las empresas de Rusia, incluso con entidad jurídica en el extranjero
Preguntas frecuentes sobre la noticia
¿Qué se sabe sobre Por qué no funciona comparar el DOM?
La primera idea es evidente: capturar el HTML hoy, volver a capturarlo mañana y comparar. En una SPA moderna, eso genera un detector de despliegues de frontend, no de cambios en el producto. Cambia una clase CSS, un testid o la dirección de una sección; se mueve un componente, se renombra un botón o se muestra al usuario otra variante de una prueba A/B. Todo eso se traduce en cientos de alertas al día, casi todas inútiles. El autor cambió la pregunta de partida.
¿Qué se sabe sobre El pipeline y las dos interfaces?
La cadena es la siguiente: navegador con una sesión autenticada, AI Discovery, modelo de funciones, instantánea semántica, comparación, filtro de relevancia para el negocio y Slack. La web pública solo muestra el escaparate. Saved Views, Custom Alerts, Automation Rules y las recomendaciones solo aparecen después de iniciar sesión, así que el sistema recorre el producto como cualquier usuario autenticado. A esto se suma una capa analítica.
¿Qué se sabe sobre Autenticación: dónde falla la automatización?
Buena parte del artículo explica cómo evitar que el inicio de sesión rompa la automatización. Estas son las soluciones prácticas: Estados en lugar de comprobar la URL. La condición «la dirección no contiene /login» es poco fiable: una SPA puede mostrar algo durante un segundo y redirigir inmediatamente a otra pantalla.
Build & Ship Production AI Agents Without Boilerplate Code
Start your free 72-hour trial at Hamidun Academy (academy.hamidun.com) — interactive lessons on Claude Code & Cursor, live Tech Radar, and production agent templates.
Lo esencial de la IA — una vez por semana
Siete historias que de verdad importaron, elegidas a mano. Sin ruido ni notas de prensa.
¡Listo! Revisa tu correo para la confirmación.