Saltar al contenido
Trabajo / Construyendo en 2026

Caso de estudio 05 · En solitario, de principio a fin · 2025 → 2026

Construyendo en 2026

El día que mi portfolio empezó a responder por sí solo. Un chatbot con mi voz, un scorer y un digest, lanzados en solitario.

Rol
En solitario: producto, diseño, prompts, código
Años
2025 → 2026
Stack
Next.js 16 · Claude · Upstash · Resend · Vercel
Estado
En producción en albruv.com
Captura histórica de Albot respondiendo a un visitante con ejemplos de Fretello y GVC y preguntando sobre qué proyecto quiere saber más.
Dos notificaciones de pantalla de bloqueo del chatbot de Albruv: un lead High sobre un puesto de Senior Product Designer y un lead Very High sobre un puesto de Director of Product Design.
capas: chat, scorer y digest
3
Un sistema
ejes evaluados en cada conversación
5
Encaje · legitimidad · valor · momento · petición
desde que termina un chat hasta el veredicto
3 min
Después, a mi bandeja de entrada
páginas de system prompt para que sonara como yo
~38
El trabajo de verdad

En breve

Álvaro Velasco lanzó el chatbot, el scorer y el digest de albruv.com en solitario, de principio a fin, entre 2025 y 2026 con Claude Code: un front conversacional (Albot) con su voz, un scorer de segunda pasada que lee cada conversación y un digest que le envía por email solo los leads que merecen su tiempo.

01 · Supuesto

Un portfolio es algo que la gente lee.

Los recruiters leen por encima. Los founders quieren saber algo concreto. La mayoría de lo que cuenta un portfolio no lo ha preguntado nadie.

02 · Decisión

Deja que la gente pregunte.

Albot responde preguntas sobre mi trabajo con mi voz. Una segunda pasada lee cada conversación unos tres minutos después de que el visitante deje de escribir y la evalúa en cinco ejes: encaje, legitimidad, valor, momento y si ha hecho una petición explícita.

Solo las conversaciones que merecen mi tiempo llegan a mi bandeja de entrada, como una tarjeta de triaje de cinco segundos. Los descartes se archivan en silencio.

Me encargué de la estrategia de producto, el diseño, los prompts y la lógica del sistema, el scoring de leads, el frontend, el backend y el deploy. El equipo éramos Claude Code y yo.

La primera versión juntaba personalidad, datos, reglas e historias en un documento largo. Separé la voz y las reglas de los datos. El rediseño usa un paquete de conocimiento seleccionado y validado en la compilación.

Chat, scorer, digest.

  1. Chat

    El visitante habla con Albot. Albot responde con mi voz.

    1. Visitante

      en el navegador

    2. Interfaz de Albot

      Next.js

    3. Claude Sonnet

      system prompt = yo

    transcripción

  2. Evaluación

    Una segunda pasada lee la conversación tras la pausa, o al cerrar el chat o reservar. Devuelve campos estructurados.

    1. Transcripción

      de la capa01

    2. Claude Haiku

      prompt del scorer

    3. Redis

      campos evaluados

    al cerrar / reservar / tras la pausa

  3. Digest

    Cuando una conversación importa, recibo un email que sí voy a abrir.

    1. Compositor

      evaluación + transcripción

    2. Resend

      API de correo

    3. Mi bandeja de entrada

      iCloud

Las tres capas, de principio a fin. Cada una tiene su propio disparador.

Ejemplo anonimizado

De:
Albruv Chatbot <onboarding@resend.dev>
Para:
alvaro@albruv.com
Asunto:
Very High · Sarah de [startup de IA serie B], busca IC sénior para producto de IA…
Prioridad:          🟢 Very High
Encaje:             sí
Empresa:            [ANONIMIZADA], verificada: sí
Contacto:           Sarah, Head of Product
Puesto:             jornada completa, IC sénior
Por qué ahora:      lanzarán 2 funciones de IA el próximo trimestre,
                    su responsable de diseño acaba de irse
Resultado:          que el producto de IA se perciba como
                    un solo producto, no como tres
Valor:              Serie B, 24 M$ captados
Momento:            cuanto antes, entrevistan este mes
Lo ha pedido:       sí (intención explícita)
Alertas:            ninguna
Email del visitante: sarah@[ANONIMIZADA].com
Contexto de empresa: verificado mediante búsqueda web

Fragmento de la conversación:
> «Lanzamos dos funciones de IA este trimestre y
>  nuestra responsable de diseño acaba de irse. Necesitamos
>  a alguien sénior que pueda construir y liderar, y que
>  entienda la UX de productos con IA. ¿Aceptas llamadas?»

Transcripción completa:
https://www.albruv.com/api/chat/debug/transcript/[ID]

Un lead Very High anonimizado, con el formato que envía la capa de digest. Cabecera de triaje de cinco segundos, fragmento de conversación y enlace a la transcripción. Los descartes no llegan a la bandeja de entrada.

ALBOT

// responde por Álvaro, con sus palabrasen línea

Soy Albot. Álvaro me construyó para que no tengas que leerte todo su portfolio. Pregúntame lo que quieras sobre su trabajo.

¿Cuál era el problema real en SellerCrowd?

El encargo era de arquitectura de información, y el rediseño la arregló. Pero las contribuciones, la métrica que importaba, siguieron estancadas. La verdadera palanca eran los incentivos: gemas, acceso VIP y contribuir con un clic. Las contribuciones mensuales pasaron de 360 a 23.770. leer el caso

albot puede equivocarse. Álvaro lee las conversaciones que importan.

Albot escribe y después responde. Puede equivocarse, y lo dice.

03 · Lo que se rompió

Cada arreglo está en producción.

iCloud rechazaba mis emails de prueba hasta que aprendí qué eran SPF y DKIM y los declaré correctamente.

El primer scorer se precipitaba y me enviaba emails en mitad de las conversaciones. Ahora espera tres minutos después de que el visitante deje de escribir.

El planificador rechazó mi servidor siete veces por motivos distintos: direcciones, identificadores, regiones, codificación y un fallo de red. Cada arreglo me enseñó algo que no contaba ningún tutorial.

El scorer descartó correctamente mis propios leads ficticios de prueba sin enviarme emails. El filtro estaba haciendo exactamente lo que había escrito en la especificación.

Extracto histórico

src/prompts/system.md

v1.9.2
## Antes de cada respuesta: el bucle de decisión

Recorre esta lista de arriba abajo. Detente
en la primera coincidencia y actúa.

1. ¿Intención explícita de contacto? (Ha preguntado
   cómo contactar conmigo, por mi email o una reunión.)
   → Ofrece llevarme el mensaje. Para.

2. ¿Señales de desconexión? (Respuestas secas,
   distracción, «solo estoy mirando», una palabra,
   «esto no viene al caso», objeciones repetidas.)
   → Veredicto breve y ofrecimiento suave de contacto. Para.

3. ¿Tema inseguro, privado, no verificado o que
   se ha descartado? (Sueldo, referencias, familia,
   datos no verificados.)
   → Reduce el detalle o desvía. No inventes.
   Para.

4. ¿Toca un paso de descubrimiento?
   → Pregunta exactamente por ese paso. Para.

5. ¿Procede pedir el email de forma suave y aún
   no se ha hecho? (Hay una señal real, ≥ 2
   turnos de descubrimiento, no toca otro paso.)
   → Introduce la petición de email como afirmación.
   Para.

6. Si no → Responde con naturalidad.

Restricciones en cada respuesta:
≤ 200 palabras, como mucho una pregunta,
primera persona como Álvaro, sin rayas,
sin preámbulo.

El bucle de decisión que Albot seguía antes de cada respuesta. El prompt original completo tenía unas 38 páginas.

La lección

El cuello de botella nunca fue el código.

Fue escribir el system prompt que le decía al bot cómo ser yo: unas 38 páginas de voz, criterio y límites.