2026-06-08 · DATA ROOM
TwinSight AI
TwinSight AI: Gemelos IA para predecir el éxito de tu producto.
ELEVATOR PITCH
TwinSight AI empodera a equipos de marketing y producto con 'gemelos de cliente' IA para simular feedback de mercado instantáneo. Esto permite validar hipótesis y optimizar el gasto con alta precisión, respaldado por un margen de beneficio del 86% y una Scalability Rating del 90%.
VALUE PROPOSITION
Nuestra diferenciación radica en la creación de gemelos de alta fidelidad basados en tus propios datos, ofreciendo simulaciones realistas y contextualizadas que reducen drásticamente el riesgo y el tiempo de la investigación de mercado.
EXPLAINER.md
TwinSight AI — Customer Twin Simulation Platform
Concepto
TwinSight AI resuelve el problema de la validación costosa de hipótesis de marketing y producto. En lugar de lanzar campañas o features sin saber la reacción del público, los Product Managers y Marketing Managers crean Customer Twins — perfiles sintéticos de IA que representan segmentos de clientes reales, entrenados con datos propios (entrevistas, encuestas, demografía).
Ante cualquier hipótesis — un nuevo eslogan, una descripción de feature, un cambio de precio — TwinSight convoca un focus group virtual de gemelos de IA que responden como lo haría ese segmento. El resultado es un informe agregado con sentimiento, temas clave y citas destacadas en segundos, no semanas.
Inspirado en Auxos (YC).
Arquitectura
┌─────────────────────────────────────────────────────────────┐
│ REST API (8080) │
│ AuthController │ PersonaController │ SimulationController│
└──────────────────┴─────────────────────┴─────────────────────┘
│ │ │
┌─────────────────────────────────────────────────────────────┐
│ Service Layer │
│ AuthService │ PersonaService │ SimulationService │
│ │ │ SimulationRunner (@Async) │
│ │ │ LlmService │
└───────────────┴──────────────────┴──────────────────────────┘
│ │ │
┌─────────────────────────────────────────────────────────────┐
│ Persistence Layer │
│ UserRepository │ PersonaProfileRepository │
│ OrganizationRepository │ SimulationRunRepository │
│ H2 (dev) / PostgreSQL (prod) │
└─────────────────────────────────────────────────────────────┘
Decisiones de diseño clave
| Concern | Decisión | Motivo |
|---|---|---|
| Autenticación | Stateless JWT (JJWT 0.12.x) | Sin estado de sesión — apto para escalar horizontalmente |
| Multi-tenancy | organizationId en cada entidad | Aislamiento por tenant en todas las queries |
| Concurrencia LLM | Java 25 Virtual Threads | Executors.newVirtualThreadPerTaskExecutor() — sin pool exhaustion bajo carga I/O |
| Async simulation | Spring @Async("simulationExecutor") | El endpoint retorna 202 inmediatamente; el cliente hace polling |
| Embeddings (RAG) | JSON text en embedding_json | MVP sin dependencia de pgvector — listo para migrar a Pinecone/pgvector |
| DTOs | Java 25 Records | Inmutabilidad, equals/hashCode gratis, Javadoc estructurado |
| Base de datos | H2 (dev) / PostgreSQL (prod) | Auto-configuración Spring Boot; sin setup para desarrollo |
Endpoints
Auth — POST /api/auth/** (público)
POST /api/auth/register
{
"name": "Ana López",
"email": "ana@acme.com",
"password": "secret123",
"organizationName": "Acme Corp"
}
→ 201 { "token": "...", "email": "ana@acme.com", "organizationId": "..." }
POST /api/auth/login
{ "email": "ana@acme.com", "password": "secret123" }
→ 200 { "token": "eyJ...", "email": "...", "organizationId": "..." }
Personas — Authorization: Bearer <token> requerido
GET /api/personas — lista todos los Customer Twins de la org
POST /api/personas — crea persona + genera embedding vectorial
GET /api/personas/{id} — obtiene un perfil
PUT /api/personas/{id} — actualiza perfil + re-embeds
DELETE /api/personas/{id} — elimina perfil
POST /api/personas
{
"name": "Early Adopter Tech",
"description": "Software engineer, 28-35, urban, early adopter",
"demographics": "Age: 28-35, Income: $80k+, Location: SF/NYC",
"interviewData": "Transcript: 'I always look for tools that save me time...'",
"surveyData": "NPS: 8.5/10, Pain point: too many manual steps"
}
→ 201 { "id": "...", "name": "...", "embeddingReady": true, ... }
Simulaciones — Authorization: Bearer <token> requerido
POST /api/simulations — inicia simulación async (retorna 202 ACCEPTED)
GET /api/simulations — lista todas las simulaciones de la org
GET /api/simulations/{id}/results — poll hasta status=COMPLETED
POST /api/simulations
{
"personaProfileId": "uuid-de-la-persona",
"hypothesis": "What do you think of our new slogan: 'Ship faster, worry less'?",
"panelSize": 5
}
→ 202 { "id": "...", "status": "PENDING", ... }
GET /api/simulations/{id}/results
→ 200 {
"id": "...",
"status": "COMPLETED",
"sentimentSummary": "POSITIVE: 60% | NEUTRAL: 20% | NEGATIVE: 20%",
"keyThemes": ["workflow", "adoption", "trust"],
"highlights": ["This resonates with me...", "I'd need more evidence..."],
"responses": [
{ "respondentId": 0, "response": "...", "sentiment": "POSITIVE", "keywords": [...] },
...
]
}
Flujo de Simulación (Virtual Threads)
Controller.startSimulation()
│
├─ [tx1] SimulationService.startSimulation()
│ ├─ Verifica ownership (tenant isolation)
│ ├─ Persiste SimulationRun{status=PENDING}
│ └─ Devuelve 202 Accepted
│
└─ SimulationRunner.execute(id) ← @Async → Virtual Thread
├─ setStatus(RUNNING) save()
├─ Carga PersonaProfile (RAG context)
├─ try (var vt = Executors.newVirtualThreadPerTaskExecutor())
│ ├─ VT-0: LlmService.generateResponse(persona, hypothesis, 0)
│ ├─ VT-1: LlmService.generateResponse(persona, hypothesis, 1)
│ └─ VT-N: ...
├─ Agrega resultados: sentimiento, temas, citas
└─ setStatus(COMPLETED) save()
Client polls GET /api/simulations/{id}/results until status=COMPLETED
Análisis de Negocio
Propuesta de valor
- Velocidad: insights en segundos vs. semanas de focus groups tradicionales.
- Escala: 1 persona puede simular 20 respondentes en paralelo sin costo adicional.
- Bajo riesgo: "falla rápido y barato" — testa antes de comprometer presupuesto real.
Modelo Freemium (mvpFeatures → tiers)
| Plan | Personas | Simulaciones/mes | Panel máximo |
|---|---|---|---|
| Free | 1 | 5 | 5 respondentes |
| Starter ($49/mo) | 5 | 50 | 10 respondentes |
| Pro ($199/mo) | Ilimitadas | Ilimitadas | 20 respondentes |
| Enterprise | Custom | Custom | Custom + HubSpot/Mixpanel |
Métricas clave del MVP
- Time-to-insight: \< 10 segundos para panel de 5.
- Diferenciación: embedding vectorial por persona → respuestas contextualmente relevantes.
- Moat técnico: cuanto más datos de entrevistas/encuestas ingesta el cliente, más preciso el gemelo.
Referencias
Cómo ejecutar
Prerrequisitos
- Java 25+
- Maven 3.9+
Desarrollo (H2 en memoria)
cd solutions/2026-06-08-twinsight-ai-api
mvn spring-boot:run
La aplicación arranca en http://localhost:8080 con H2 embebido (auto-configurado).
Compilar
mvn clean compile
Producción (PostgreSQL)
Configura las siguientes variables de entorno:
SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/twinsight
SPRING_DATASOURCE_USERNAME=twinsight
SPRING_DATASOURCE_PASSWORD=secret
SPRING_JPA_HIBERNATE_DDL_AUTO=validate
JWT_SECRET=your-256-bit-secret-key-change-in-production
Ejemplo rápido con curl
# 1. Registro
TOKEN=$(curl -s -X POST http://localhost:8080/api/auth/register \
-H "Content-Type: application/json" \
-d '{"name":"Ana","email":"ana@acme.com","password":"secret123","organizationName":"Acme"}' \
| jq -r '.token')
# 2. Crear Customer Twin
PERSONA_ID=$(curl -s -X POST http://localhost:8080/api/personas \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Tech Early Adopter",
"description": "Software engineer, 30s, urban, productivity obsessed",
"demographics": "Age: 28-35, Income: $90k+",
"interviewData": "I need tools that reduce friction and integrate with my workflow.",
"surveyData": "NPS: 9. Pain: too many manual steps."
}' | jq -r '.id')
# 3. Lanzar simulación
SIM_ID=$(curl -s -X POST http://localhost:8080/api/simulations \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{\"personaProfileId\":\"$PERSONA_ID\",\"hypothesis\":\"Ship faster, worry less\",\"panelSize\":5}" \
| jq -r '.id')
# 4. Obtener resultados
curl -s "http://localhost:8080/api/simulations/$SIM_ID/results" \
-H "Authorization: Bearer $TOKEN" | jq .
FinOps Analysis: TwinSight AI
1. Estimación de Costos Operativos Mensuales
Para "TwinSight AI", los costos operativos se centran principalmente en el consumo de Large Language Models (LLM) y la infraestructura cloud necesaria para soportar la aplicación Spring Boot.
A. Consumo de Tokens LLM:
- Supuestos de Uso:
- Cálculo:
B. Costos de APIs Externas (LLM):
Utilizando OpenAI GPT-4o, dado el requisito de "alta capacidad" y la mención de GPT-4o en el caso de negocio. Los precios son: $5.00/1M tokens de entrada, $15.00/1M tokens de salida.
- Desglose de Tokens:
- Costo LLM:
C. Costos de Infraestructura Cloud (AWS Baseline):
Para una micro-startup en crecimiento, se estima una infraestructura que pueda manejar la carga inicial y un crecimiento moderado.
- Servidor de Aplicaciones (Spring Boot): EC2 %%INLINE8%% (2 vCPU, 4GB RAM) en %%INLINE9%% (on-demand): ~$27.29/mes.
- Base de Datos (PostgreSQL con Pgvector): RDS %%INLINE10%% (2 vCPU, 2GB RAM) con 20GB de almacenamiento SSD de propósito general en %%INLINE11%%: ~$31.82/mes.
- Red y Monitoreo: Incluye transferencia de datos, CloudWatch logs y métricas, y otros servicios menores: ~$10.89/mes.
- Costo Total de Infraestructura: ~$70.00/mes.
- LLM (OpenAI GPT-4o): $70.00
- Infraestructura Cloud (AWS): $70.00
- Costo Operativo Total Estimado: ~$140.00/mes.
2. Estimación de Ingresos Mensuales
El modelo de monetización es SaaS freemium con planes de pago por niveles. Asumiendo un precio promedio por plan de $49/mes (considerando diferentes niveles y características).
- Clientes de Pago: Se proyectan 20 clientes de pago en una fase temprana.
- Ingreso Mensual Redondeado: ~$1,000/mes.
3. Cálculo del Margen de Beneficio
- Ingresos Mensuales: $1,000
- Costos Operativos Mensuales: $140
- Beneficio Bruto: $1,000 - $140 = $860
4. Optimizaciones FinOps para Reducir Costos
Un margen de beneficio del 86% es excelente, pero la optimización continua es clave para la sostenibilidad y escalabilidad.
- Estrategia de LLM por Niveles (Tiered LLM Strategy):
- Caching de Respuestas LLM:
- Optimización de Prompt Engineering:
- Ahorros en Infraestructura Cloud:
- Optimización de Base de Datos Vectorial:
Estas optimizaciones permitirán a TwinSight AI mantener un modelo de costos eficiente a medida que escala, maximizando la rentabilidad y asegurando la sostenibilidad a largo plazo.
MVP FEATURES
- 01Ingesta de Datos de Persona: Permitir a los usuarios definir sus arquetipos de cliente subiendo datos existentes (transcripciones de entrevistas, resultados de encuestas, datos demográficos).
- 02Plataforma de Simulación: Una interfaz simple para que los usuarios introduzcan una hipótesis, pregunta o estímulo (e.g., un nuevo eslogan, una descripción de funcionalidad, una pregunta sobre precios).
- 03Panel de Resultados Agregados: Generar un informe con respuestas simuladas de un 'focus group' de gemelos de IA, incluyendo análisis de sentimiento, temas clave y citas destacadas.
- 04Gestión de Personas: Un dashboard para crear, editar y gestionar múltiples perfiles de 'Customer Twins' para diferentes segmentos de mercado.
“Simula el futuro de tu producto y marketing con gemelos de cliente IA.”
Revisa el código, la documentación de la API y el manejo de errores para consolidar nuestra oferta y prepararnos para el Pre-Seed.
Redact AI
88Redact AI ofrece un microservicio API-first para que CTOs y Jefes de Ingeniería implementen el 'derecho al olvido' en sus modelos de IA, eliminando datos de usuario de forma segura. Con un Health Score del 84% y un margen de beneficio del 94%, garantizamos cumplimiento normativo, reducimos costes operativos y aceleramos la innovación sin reentrenamientos completos.
TaskForge AI
86TaskForge AI empodera a equipos de negocio en PyMEs para automatizar tareas web complejas y repetitivas entre aplicaciones, usando solo lenguaje natural sin código. Esto libera cientos de horas de trabajo manual, ofreciendo una solución escalable (95/100) y con un alto margen de beneficio (87%) que supera la rigidez de Zapier y el coste de RPA. Con un Health Score de 87/100 y un veredicto 'INVEST' de SharkTank, la base es sólida.
ViralVibe AI
85ViralVibe AI permite a equipos de marketing y creadores de contenido generar videos cortos virales con IA, automatizando la edición y el análisis de tendencias. Con un Health Score del 88% y un Profit Margin del 73%, nuestra solución es robusta y financieramente viable, lista para escalar y transformar la creación de contenido.