Back to zerosuite
zerosuite

Cero código entregado: la búsqueda de empleo de una cajera de banco llevada con un CTO de IA y CASP, desde la primera carta hasta el contrato firmado

Un día, una sesión de Claude Code, ninguna línea de código de producto: la búsqueda de empleo de una cajera de banco llevada con las herramientas que ZeroSuite usa para entregar software. Un repositorio privado, un único archivo de seguimiento donde «enviado» significa «fechado», reglas que rechazan la frase indemostrable, una hoja de ruta CASP que termina en un contrato firmado y una automatización que llena los borradores sin pulsar nunca Enviar. Con una guía paso a paso descargable.

Juste A. Gnimavo (Thales) & Claude | September 24, 2026 16 min zerosuite
EN/ FR/ ES
job-searchcareercaspclaude-coderecruitmentcover-letterhuman-in-the-loopsmtpautomationnon-codemethodology

Por Thales (CEO, ZeroSuite) y Claude Opus 5.5 — instancia de Claude Code

Hasta ahora, todo en este blog trataba de software: pipelines de despliegue, pasarelas de pago, un lenguaje de programación, un ERP de gestión de flotas. Este artículo trata de una búsqueda de empleo.

El 24 de septiembre de 2026, el CEO abrió una sesión de Claude Code con una petición que no tenía nada que ver con un producto de ZeroSuite. Una persona cercana al equipo trabaja como cajera en un banco comercial de África Occidental: cuatro años en la ventanilla de pagos, y antes varios años en la recepción de otros bancos. Quiere ascender a jefa de caja (chef de caisse): la persona que dirige a los cajeros, carga los cajeros automáticos y valida la posición de caja al cierre del día. Tenía un sitio web de CV personal, un CV, una carta de presentación y una lista de direcciones de correo de reclutadores recopilada a mano.

Al final del día, tenía:

  • un sitio web reposicionado;
  • dos CV y dos cartas de presentación;
  • dos plantillas de correo;
  • una primera candidatura lista para enviar;
  • una preparación de entrevista de 32 preguntas;
  • un repositorio git privado con una carpeta por empleador;
  • un único archivo de seguimiento;
  • un panel CASP cuya hoja de ruta no termina en «candidaturas enviadas» sino en «contrato firmado».

No se escribió código de producto. Las herramientas fueron las mismas que usamos para entregar software, y funcionaron bien en este contexto.

No publicamos su nombre, su empleador, los bancos ni las direcciones. Lo que merece la pena copiar es el método de trabajo, así que es lo que cubre este artículo.


Parte 1 — Tratar la búsqueda de empleo como un proyecto, no como un montón de documentos

La primera decisión real fue estructural. El instinto natural del CEO fue el siguiente: una carpeta con el CV y la carta, y una lista de direcciones de correo en un archivo de notas. Eso funciona para tres candidaturas. Se derrumba a la quinceava, cuando ya no se recuerda qué versión de carta fue a qué banco, si se envió el seguimiento, o qué CV recibió la segunda empresa de reclutamiento.

Así que hicimos lo que hacemos para un producto:

Un repositorio git privado por candidata, separado del sitio web público. El sitio se redespliega en cada push (Easypanel vigila main). Los archivos de la candidatura nunca deben viajar junto con un despliegue del sitio, y el sitio nunca debe tocarse con un commit de candidatura. Dos repositorios, dos ciclos de vida. El repositorio de candidatura puede recibir un commit cada diez minutos sin que nada salga a producción.

Una carpeta por empleador, nombrada en mayúsculas con guiones (BANK-A/, RECRUITER-B/). Cada carpeta contiene la carta personalizada (DOCX y PDF), el correo como archivo de texto plano, y una copia de los PDF exactamente como se enviaron. El CV maestro evolucionará; lo que recibió un banco concreto no debe cambiar.

Una carpeta _commun/ con los maestros: dos CV (jefa de caja, cajera experimentada), dos cartas genéricas, dos plantillas de correo con marcadores [entre corchetes] y una regla escrita al inicio: ningún corchete debe sobrevivir en un correo enviado.

Una carpeta _entretien/ para la preparación de la entrevista.

Un único archivo de seguimiento, y solo uno. suivi-candidatures.md tiene una fila por candidatura: entidad, puesto objetivo, tipo (candidatura espontánea u oferta publicada), canal, carpeta, estado, fecha de envío, seguimiento, notas. Los estados forman una cadena fija: to prepare → ready → sent → followed up → interview / rejected / no answer.

El CEO pidió un emoji de marca de verificación verde en cada fila enviada. Claude se negó, y la razón importa más que la regla anti-emoji (ZeroSuite aplica una política de cero emojis en todas partes). Una marca de verificación es una afirmación sin prueba; una fecha es una prueba. La regla que escribimos en su lugar: una fila cuenta como enviada si y solo si la columna «fecha de envío» contiene una fecha. Con veinte filas, no se puede fallar esa por accidente.


Parte 2 — Las cartas: el trabajo de la IA es rechazar la frase indemostrable

El contenido del CV y de la carta pasó por la misma disciplina de revisión que una pull request, y los momentos más útiles fueron los rechazos.

La afirmación sobre la velocidad. Según el CEO, el verdadero punto fuerte de la candidata es la velocidad: es naturalmente rápida e incansable, con un tiempo de atención por cliente muy corto. La frase del primer borrador del CEO decía que ella «bate casi todos los récords». Claude la rechazó: nadie publica clasificaciones de cajeros, y un reclutador que pregunte «¿qué récords?» no obtiene respuesta. Lo que se conservó es cierto y defendible en una entrevista: su tiempo de atención por cliente está entre los más cortos de la sucursal. La carta lo combina con el contrapeso que realmente preocupa a un reclutador de jefa de caja: la velocidad que cuesta precisión. «… sin que la velocidad cueste precisión: mis posiciones se concilian cada tarde.»

La línea de «cero discrepancias». Una versión anterior del CV afirmaba que su caja nunca había tenido una discrepancia. Se eliminó de todas partes. Nadie en un banco se lo cree, y eso invita exactamente a la pregunta equivocada en la entrevista.

Ninguna cifra interna, ninguna crítica del empleador actual. Los volúmenes de transacciones, las clasificaciones de sucursales y los motivos de la salida quedan fuera de todos los documentos. El CLAUDE.md del repositorio lleva estas reglas, de modo que el futuro agente de rastreo de ofertas las hereda sin que haya que repetírselo.

Una única estructura de carta, adaptada por puesto. La carta para jefa de caja se abre con lo que se evalúa en una jefa de caja (velocidad de la cola, seguridad del efectivo, una posición correcta al cierre) y tiene un párrafo sobre la gestión de toda la ventanilla: organizar a los cajeros para la afluencia, cargar los cajeros automáticos antes del pico, desbloquear una operación para que la cola no se detenga. La carta para cajera es la misma carta con ese párrafo sustituido por otro sobre su propia ventanilla. Comparamos ambas en lugar de escribir una segunda carta desde cero, para que las afirmaciones no diverjan.

Qué CV va a dónde es una regla, no un capricho. Los bancos reciben el CV de jefa de caja. Las empresas de reclutamiento y trabajo temporal reciben el mismo CV con un correo abierto a «jefa de caja o cajera experimentada»: una empresa coloca a sus candidatos en sus propias misiones, y cerrar una puerta ahí no aporta nada. El CV de cajera se reserva para ofertas de cajero publicadas. Un matiz entró en el archivo de reglas: una colocación a través de una empresa de trabajo temporal puede reproducir exactamente el tipo de contrato que ella busca dejar atrás. Solo merece la pena si el puesto es un ascenso o la contratación es directa.

El correo es un resumen, no una nota de acompañamiento. El primer borrador de correo sonaba como una circular («adjunto encontrará…»). El CEO lo rechazó: el correo debe hacer que el reclutador quiera abrir la carta. El resultado es un resumen de la carta en tres párrafos, que se abre con la necesidad del banco, no con la candidata.


Parte 3 — La preparación de la entrevista como batería de pruebas

El documento de entrevista tiene 32 preguntas en seis secciones, cada una con una respuesta preparada. La sección 3 se añadió al final del día a petición del CEO, y es la que recomendaríamos a cualquiera: software, incidentes y seguridad. Cubre:

  • qué software bancario usas y qué tan bien lo dominas;
  • qué haces cuando el sistema se cae con una cola de clientes delante;
  • una operación validada en el sistema pero el cliente sin cobrar;
  • la red de transferencias de dinero fuera de servicio;
  • una falsa llamada de «soporte informático» pidiendo tus credenciales;
  • la seguridad al cargar los cajeros automáticos;
  • un atraco.

Estas son las preguntas de las que realmente depende una entrevista de jefa de caja, y ninguna de ellas aparece en las listas genéricas de «las 50 preguntas de entrevista imprescindibles».

El CEO también pidió a Claude que leyera la página pública de una empresa de reclutamiento sobre perfiles de jefa de caja, buscando argumentos. No había ofertas de empleo, solo una página de marketing. Aun así, Claude encontró un hallazgo real. De los diez perfiles de «jefa de caja» que destacaba la empresa, unos siete provenían de fuera del sector bancario (comercio minorista, construcción, química, salud), y todos ellos reclamaban al menos cinco años en el puesto, la mitad más de diez. En ese mercado, «jefa de caja» también designa la caja de un supermercado. Así que su argumento no es la antigüedad sino el trabajo de caja específicamente bancario: cajeros automáticos, cambio de divisas, transferencias de dinero, el cierre diario. Esto también le dio al futuro agente de búsqueda un filtro estricto: «caja» más «sector bancario», o la mitad de los resultados serían supermercados.


Parte 4 — CASP: una hoja de ruta que termina en un contrato firmado

CASP (el Coding-Agent State Protocol) es la herramienta que abrimos cada día laboral en cada producto de ZeroSuite. Es una carpeta casp/ en el repositorio: un state.json, un now.md y un roadmap.md, más un validador, casp check, que demuestra que el estado registrado sigue coincidiendo con git y rechaza el push cuando no es así. El CEO lo pidió aquí de pasada, tras haberlo olvidado al inicio de la sesión: instalar CASP en el repositorio de candidatura y rellenarlo hasta que ella tenga un empleo.

casp init genera el esqueleto del panel en un segundo. El verdadero trabajo consiste en escribir su estado con honestidad:

FaseContenidoEstado
0 — InicializaciónPanel instaladoshipped
1 — Kit de candidaturaSitio web, CV, cartas, correos, preparación de entrevistashipped
2 — Primera oleadaUna carpeta de candidatura a la vez, cada una enviada por la candidata antes de la siguientequeued
3 — Agente de vigilancia de ofertasPortales de empleo marfileños y páginas de carreras de bancos, filtro bancario, carpetas preparadas hasta readyqueued
4 — Seguimientos y entrevistasUn seguimiento a los 10 días hábiles; ficha de entrevista por empleadorqueued
5 — Oferta y transiciónComparar la oferta con el empleo actual, negociar, gestionar el preavisobacklog

La última línea de now.md lo dice sin rodeos: el panel se cierra el día en que ella firma. Este es el punto en el que insistiríamos más con cualquiera que reproduzca este método. Una búsqueda de empleo medida en «candidaturas enviadas» mide la actividad. Una hoja de ruta que termina en una firma mide el resultado, y obliga a que las fases incómodas (seguimientos, negociación, preaviso) existan en papel antes de que lleguen.

Tres cosas que CASP nos dio y que un archivo de notas no habría dado:

  1. «¿Dónde estamos?» cabe en una sola pantalla. casp status muestra la fase actual, el prompt de la próxima sesión y los últimos commits. Esta noche, cuando el CEO y la candidata se sienten a construir la siguiente carpeta de candidatura, la próxima sesión partirá de docs/plan/sessions/PHASE-2-PREMIERE-VAGUE.md, no de la memoria.
  1. Las decisiones quedan registradas como decisiones. El CEO decidió postular a una oferta publicada de cajera en una institución de microfinanzas. Claude señaló que suponía un retroceso (contrato de duración determinada, requisitos de nivel de entrada, frente a su actual contrato indefinido) y recomendó prepararla en último lugar, con una pretensión salarial al menos igual a su sueldo actual. El CEO mantuvo la decisión, y el registro deja constancia tanto de la decisión como de la reserva. Dentro de tres semanas nadie tendrá que reconstruir por qué existe esa carpeta.
  1. Las preguntas abiertas se listan, no se recuerdan de memoria. La hoja de ruta tiene una tabla de «Bloqueado / por decidir». A mitad de sesión, contenía tres elementos:
  2. - dos direcciones de reclutadores cuya empresa aún no habíamos identificado;
  3. - una pretensión salarial que exigía una oferta;
  4. - una edición manual que el CEO había hecho en una plantilla de correo, que contradecía el cuerpo del texto.

El último se resolvió en la misma hora (los bancos reciben «jefa de caja» en el asunto, las empresas de trabajo temporal reciben «jefa de caja o cajera experimentada»), y salió de la tabla en el mismo commit.

casp check terminó el día en 18 PASS, 0 WARN, 0 FAIL. Para un repositorio sin una línea de código, eso no es decoración. Significa que el archivo de estado, el registro de sesión y git coinciden, que es exactamente el objetivo cuando la siguiente sesión, o la siguiente persona, retoma el trabajo.

El sitio web público recibió su propia sección en la misma hoja de ruta en lugar de un segundo panel, porque sirve al mismo objetivo final. Registra lo que está desplegado, un pequeño commit a la espera del próximo push, y una última tarea para la fase 5: al firmar, retirar del sitio la mención de búsqueda de empleo activa.


Parte 5 — Automatización SMTP: preparar todo, no enviar nada

El plan inicial del CEO preveía entregar al agente las credenciales SMTP del buzón de la candidata, para que enviara él mismo las candidaturas por correo simple. Los formularios en línea seguirían siendo manuales.

Lo diseñamos al revés, y la regla es ahora la primera línea del CLAUDE.md del repositorio: el agente nunca envía nada. El razonamiento:

  • El volumen no lo justifica. Una primera oleada tiene menos de diez candidaturas. Enviar cada una le lleva a la candidata menos de dos minutos, y quiere hacerlo ella misma.
  • Una candidatura no se puede deshacer. Un adjunto equivocado, un [placeholder] olvidado o una carta que cita el banco equivocado queda visible para el reclutador para siempre. El envío humano es la última revisión, y sale barata.
  • La entregabilidad es la reputación de la candidata. Su dominio tiene SPF, DKIM y DMARC, y uno de los bancos filtra el correo mediante una pasarela corporativa. Una ráfaga de envíos automatizados desde un buzón nuevo es exactamente lo que esos filtros están diseñados para detectar.

Lo que la automatización hará es todo lo que precede al envío:

  1. Vigilar ofertas. Consulta los portales de empleo marfileños y las páginas de carreras de los bancos, sin hacer scraping de LinkedIn (sus condiciones de uso lo prohíben). Filtra por «caja» más sector bancario, y deduplica contra el archivo de seguimiento: una candidatura por empleador y por puesto.
  2. Preparar la carpeta. Crea la carpeta del empleador, personaliza la carta a partir del maestro, exporta el PDF mediante Word y lo verifica: una sola página, texto releído con pdftotext, un PNG renderizado examinado visualmente. Redacta el archivo de correo y pasa la fila a ready.
  3. Dejar el envío en sus manos. La candidata revisa y envía. La fila solo pasa a sent cuando ella rellena la fecha.

Las credenciales SMTP e IMAP viven en un .env ignorado por git desde el primer commit. Su mejor uso no es enviar. Es colocar el correo preparado, adjuntos incluidos, en la carpeta de Borradores de su propio buzón, vía IMAP. Ella abre su cliente de correo, relee el borrador, pulsa Enviar. Ese es el diseño de la fase 3: aún no construido, registrado en la hoja de ruta, y el mismo diseño que recomendaríamos a cualquiera.


Parte 6 — Un incidente de producción, porque siempre hay uno

Los PDF se exportaban controlando Microsoft Word desde un script. En una exportación, el script puso Word en primer plano mientras el CEO estaba escribiendo en otra ventana. Tres de sus pulsaciones de tecla terminaron en el título del documento de entrevista.

Claude lo detectó releyendo el texto del PDF exportado, en lugar de confiar en el código de salida de la exportación. Reexportó el documento y eliminó la llamada activate del script, con un comentario explicando por qué. Luego comparó, palabra por palabra, todos los demás PDF exportados ese día con su fuente. Solo ese se había visto afectado. La lección es una constante de ZeroSuite: una exportación que se ejecutó no es una exportación correcta; hay que leer el resultado. Esto vale tanto para una carta de presentación como para un artefacto de build.


Cómo copiar esto para tu propia búsqueda de empleo

No necesitas nuestro stack. Necesitas la estructura. Todo el método también está disponible como guía en PDF paso a paso, con la organización de carpetas, el archivo de seguimiento, los prompts y las listas de verificación: descargar la guía de búsqueda de empleo (PDF).

  1. Un repositorio privado (o una carpeta bajo control de versiones) separado de todo lo público.
  2. Los maestros en un solo lugar, una carpeta por empleador, con los PDF congelados tal como se enviaron.
  3. Un único archivo de seguimiento donde una fila solo cuenta como enviada si tiene una fecha.
  4. Reglas de contenido escritas (ninguna afirmación indemostrable, ninguna cifra interna, ninguna crítica de tu empleador) que todo asistente, humano o IA, debe respetar.
  5. Una preparación de entrevista concebida como batería de pruebas, con las preguntas de incidentes y seguridad de las que realmente depende el puesto al que aspiras.
  6. Una hoja de ruta que termina en un contrato firmado, con los seguimientos, la negociación y el preaviso presentes desde el primer día.
  7. Una automatización que prepara y nunca envía. Coloca los borradores en tu buzón, luego léelos y pulsa Enviar tú mismo.

Con CASP, los pasos 6 y 7 obtienen un validador: npm i -g @justethales/casp, luego casp init en el repositorio.


CASP — el Coding-Agent State Protocol. Tu agente de IA ejecuta toda la hoja de ruta, sin perder nunca el hilo. Nativo de git, solo local, MIT, cero telemetría. Creado por Thales (Juste Gnimavo) de ZeroSuite, un CEO en solitario que dirige siete productos en producción con Claude como único ingeniero. Instalación: npm i -g @justethales/casp · https://casp.sh · https://github.com/ThalesGnimavo/casp
Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles

Thales & Claude zerosuite

Funciona, y no está terminado

El director recorrió él mismo todos los canales de senndo — cinco canales, de uno en uno y en campaña, la importación, las estadísticas, un reembolso, la API — y todo respondió. El archivo de seguimiento seguía diciendo que no, y la única línea que bloqueaba no era código: era un documento que había dejado de ser cierto en silencio. Cuatro afirmaciones ciertas al escribirse y falsas al leerse, y las guardas legibles por una máquina que ahora atrapan cada una de esas formas.

12 min Sep 14, 2026
senndocpaaslaunch-readinessdocumentation +8
Thales & Claude zerosuite

El navegador en manos de Claude: manejar el propio Chrome del CEO

Claude-in-Chrome permite que una sesión de Claude Code maneje el navegador real del director — mismo perfil, mismas sesiones abiertas. Qué hace la herramienta en realidad, por qué es mejor que pedirle a una persona que haga clic y lo cuente, y dónde el humano sigue ganando. Anclado en el día en que Claude recorrió un alta de cliente completa en la consola de producción de senndo, con mensajes facturados incluidos.

9 min Aug 18, 2026
claude-in-chromebrowser-automationclaude-codeclaude-fable-5 +9
Thales & Claude deblo

El segfault que no era nuestro: cómo lanzamos el tracking del día de lanzamiento de Déblo en la noche del despliegue — analítica condicionada por entorno, atribución nativa de las tiendas, tres bugs que el compilador no podía ver y un build sin memoria que diagnosticamos en lugar de revertir

El 1 de julio de 2026 — el día del lanzamiento — el riesgo nunca fue el texto. Era que las campañas de pago salieran a ciegas. Este es el build-log de cómo desplegamos la analítica y la atribución de instalaciones de Déblo como código en la noche del lanzamiento: etiquetas GA4, Meta y LinkedIn condicionadas por entorno que se despliegan sin riesgo antes de que existan las cuentas publicitarias; atribución enrutada por los canales nativos de las tiendas en lugar del pixel web; una auditoría adversarial que atrapó tres bugs que tanto el typechecker como el build dieron por buenos; y un despliegue en Easypanel que hizo segfault en el primer build — que demostramos que no era nuestro código antes de tocar una sola línea.

18 min Jul 1, 2026
deblolaunch-dayclaude-opus-4.8claude-code +26