CallLens
Llamadas de venta transcritas, evaluadas por un LLM y buscables por significado
Cada llamada de ventas transcrita, puntuada y buscable. CallLens ingiere una llamada vía webhook firmado, la transcribe con diarización, puntúa a cada agente contra un scorecard configurable con un LLM de salida estructurada, construye embeddings para búsqueda semántica y sirve todo a través de un cabinet de analítica con Cube. Cero GPUs. Un solo servidor Hetzner.
- Sector
- IA · SaaS
- Tecnologías
- Symfony 7.4 · PostgreSQL 17 · Next.js 15 · Cube


- GPUs Requeridas
- 0
- Dimensiones Vector
- 1024
- Etapas del Pipeline
- 5
- Coste Infra Mensual
- ≈€60
Coaching de Ventas que Realmente Lee las Llamadas
Casi todos los equipos de ventas graban sus llamadas. Casi ninguno las puntúa de forma consistente — los managers no tienen las horas, y los scorecards no se aplican solos. CallLens automatiza la lectura: cada llamada ingerida, cada agente puntuado, cada objeción buscable.
Lo construimos sobre el principio cheap-by-design: todo el trabajo pesado de IA pasa por APIs HTTP externas (Deepgram para STT, OpenAI para scoring + embeddings), sin GPU necesaria, un único servidor dedicado Hetzner basta. Interfaces independientes del proveedor permiten cambiar o autoalojar luego sin tocar la lógica de negocio.
Puntuar llamadas de ventas de forma fiable con un LLM que nunca alucina una cita de evidencia, persistir embeddings de 1024-dim de cada turno para búsqueda semántica a escala, dar a los managers un cabinet de analítica con Cube — y hacer todo eso en un único servidor Hetzner con un stack Docker y sin GPU.
Symfony 7.4 + PHP 8.5 sobre PostgreSQL 17 + pgvector (HNSW), API Platform generando OpenAPI 3.1, un pipeline Messenger que mueve cada llamada por estados transcribe → score → embed (idempotente, reintentable), Cube como capa semántica de analítica y un cabinet Next.js 15 encima. El scorer fuerza salida JSON estructurada y valida que cada cita de evidencia exista en el transcript real.
Construido para el Sales Manager
- 01
Webhook + Upload Manual
Webhooks firmados con HMAC desde cualquier telefonía/CRM (Twilio, Binotel, Ringostat, Bitrix24) más subida manual vía REST. Idempotente por tenant + ID externo de la llamada.
- 02
Transcripción con Diarización
Deepgram para STT con etiquetado por canal para audio dual y diarización del proveedor para mono. Tiempos de palabra persistidos en cada turno.
- 03
Scoring LLM con Evidencia
Puntuación por criterio con esquema JSON estricto, una cita de evidencia por puntuación y la cita validada contra el transcript. Nada de scoring por vibes.
- 04
Búsqueda Semántica
Embeddings pgvector de 1024-dim en cada turno, índice HNSW, ANN tenant-scoped. Pregunta 'dónde manejó el agente las objeciones' y obtén los momentos reales.
- 05
Analítica con Cube
Dashboards pre-agregados sobre Postgres — score promedio por agente, tendencia en el tiempo, objeciones top, distribución de puntuaciones. Sin segundo motor de búsqueda para reportes.
- 06
Retención de Audio Configurable
keep, delete-after-processing o delete-after-N-days, por tenant. El scheduler corre nightly; transcripts y scores permanecen aunque el audio se haya borrado.
Véalo en Acción


Bajo el Capó
Un stack Docker, una caja Hetzner, un Postgres. Todo el trabajo pesado de IA va por APIs externas detrás de interfaces estrechas — cambia de proveedor en una línea de configuración, o muévete a GPU autoalojada después cuando la curva de coste cruce (~215k minutos de audio/mes).
- Symfony 7.4
- API PHP 8.5 + Workflow
- PostgreSQL 17
- + pgvector (HNSW)
- Next.js 15
- Landing + docs + cabinet
- Cube
- Analítica sobre Postgres
¿Necesitas Herramientas AI-Native para tu Equipo?
Desde coaching de ventas hasta analítica de soporte, lanzamos productos IA que aciertan el trabajo pesado — salidas estructuradas estrictas, respuestas con evidencia y stacks que realmente puedes operar.
Sonrisa Blanca
Web orientada a reservas para un estudio de blanqueamiento dental

Hablemos.
Cuéntanos qué estás construyendo. Recibirás respuesta y una primera estimación en 24 horas.
Rellenar el brief →