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 con una petición que no tenía nada que ver con un producto de ZeroSuite: llevar una búsqueda de empleo, desde la primera carta, con las herramientas que usamos para entregar software. Aquí no describimos a la persona candidata: ni su oficio, ni su empleador, ni dónde vive. Lo que merece la pena copiar es el método, y el método no depende del oficio. Para demostrarlo, los ejemplos que siguen rotan a propósito entre cinco oficios: un desarrollador, un enfermero o una enfermera, un comercial, un contable y un jefe de obra. Son ilustraciones, no el caso real.
Al final del día, la búsqueda contaba con:
- un sitio web personal reposicionado;
- dos CV y dos cartas de presentación, una para el puesto objetivo y otra para el puesto actual;
- dos plantillas de correo electrónico;
- 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ó ni una línea de código de producto. La sesión se desarrolló en Claude Code, la única herramienta que nombramos en este artículo; todo lo que sigue funciona con cualquier asistente de IA capaz de leer y escribir archivos en una carpeta.
Parte 1 — Tratar la búsqueda de empleo como un proyecto, no como un montón de documentos
La primera decisión de verdad fue estructural. El instinto del CEO era el natural: 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 desmorona a las quince, cuando ya no recuerdas qué versión de la carta fue a qué empleador, si se envió el seguimiento o qué CV recibió la segunda consultora de selección.
Así que hicimos lo mismo que hacemos con un producto:
Un repositorio git privado por persona candidata, separado del sitio web público. El sitio se vuelve a desplegar con cada push. Los archivos de candidatura nunca deben viajar con un despliegue del sitio, y el sitio nunca debe verse afectado por un commit de candidatura. Dos repositorios, dos ciclos de vida. El repositorio de candidaturas puede recibir un commit cada diez minutos sin que nada se publique.
Una carpeta por empleador, con el nombre en mayúsculas y guiones (EMPLEADOR-A/, RECLUTADOR-B/). Cada carpeta contiene la carta personalizada (DOCX y PDF), el correo en un archivo de texto plano y una copia de los PDF exactamente tal como se enviaron. El CV maestro evolucionará; lo que recibió un empleador concreto no debe cambiar.
Una carpeta _commun/ con los maestros: dos CV (puesto objetivo, puesto actual), dos cartas genéricas, dos plantillas de correo con marcadores [entre corchetes] y una regla escrita en la primera línea: ningún corchete puede sobrevivir en un correo enviado.
Una carpeta _entretien/ para la preparación de entrevistas.
Un archivo de seguimiento, y solo uno. suivi-candidatures.md tiene una fila por candidatura: entidad, puesto objetivo, tipo (espontánea u oferta publicada), canal, carpeta, estado, enviada el, 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 el motivo importa más que la regla de los emojis (ZeroSuite prohíbe los 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 está enviada si y solo si la columna «enviada el» contiene una fecha. Con veinte filas, eso no se puede falsear por accidente.
Parte 2 — Las cartas: el trabajo de la IA es rechazar la frase indemostrable
El contenido del CV y de las cartas pasó por la misma disciplina de revisión que una pull request, y los momentos más útiles fueron los rechazos.
La frase de los récords. El verdadero punto fuerte de la persona candidata, según el CEO, es la rapidez. El borrador del CEO decía que la persona candidata «bate casi todos los récords». Claude la rechazó: nadie publica esas clasificaciones, y un reclutador que pregunte «¿qué récords?» se queda sin respuesta. Lo que conservamos es una comparación que la persona candidata puede defender en una entrevista, medida frente a su propio equipo, acompañada del contrapeso que de verdad preocupa a un reclutador: una rapidez que cuesta precisión.
La regla vale para cualquier oficio: sustituye el superlativo por un hecho que una referencia pueda confirmar.
| Oficio | La frase que hay que rechazar | La frase que hay que conservar |
|---|---|---|
| Desarrollador | «Un ingeniero excepcional» | «Dirigió la migración de la facturación; ningún rollback en producción» |
| Enfermera | «Imprescindible en la planta» | «Formó a las cuatro últimas incorporaciones en los protocolos de la unidad» |
| Comercial | «El mejor cerrando ventas del equipo» | El objetivo alcanzado en un año que puedas nombrar |
| Contable | «Un trabajo impecable» | «Redujo el cierre mensual de diez días a seis» |
| Jefe de obra | «Siempre en plazo» | La fecha de entrega cumplida en una obra concreta |
Los absolutos salen junto con los superlativos. «Ni un solo error» no se lo cree nadie, y provoca justo la pregunta equivocada en la entrevista.
Ni cifras internas ni críticas al empleador actual. Volúmenes, clasificaciones y motivos de salida quedan fuera de todos los documentos. El archivo de reglas del repositorio los recoge, de modo que el futuro agente de vigilancia de ofertas los hereda sin que haya que decírselo.
Una sola estructura de carta, derivada para cada puesto. La carta del puesto objetivo se abre con aquello por lo que se juzga ese puesto y dedica un párrafo al salto: coordinar a otras personas, asumir un ámbito más amplio. Para un desarrollador que pasa a responsable técnico, ese párrafo trata de las revisiones y de desbloquear al equipo; para un jefe de obra que pasa a director de obras, trata de llevar varias obras a la vez. La carta del puesto actual es la misma carta con ese párrafo sustituido por otro sobre el ámbito propio de la persona candidata. Comparamos las dos con un diff en lugar de escribir una segunda carta desde cero, para que las afirmaciones no puedan divergir.
Qué CV va a dónde es una regla, no un estado de ánimo. Los empleadores reciben el CV del puesto objetivo. Las consultoras de selección y las empresas de trabajo temporal reciben el mismo CV con un correo abierto a «puesto objetivo o puesto actual»: una consultora coloca a personas en sus propias misiones, y cerrar ahí una puerta no aporta nada. El CV del puesto actual se reserva para las ofertas publicadas de ese puesto. Un matiz sutil pasó al archivo de reglas: una colocación a través de una empresa de trabajo temporal puede reproducir exactamente la situación contractual que la persona candidata quiere dejar atrás. Solo merece la pena si el puesto supone un ascenso o si la contratación es directa.
El correo es un resumen, no una nota de envío. El primer borrador del correo sonaba a circular («adjunto le remito…»). El CEO lo rechazó: el correo tiene que dar al reclutador ganas de abrir la carta. El resultado es un resumen de la carta en tres párrafos, que empieza por la necesidad del empleador, no por la persona candidata.
Parte 3 — La preparación de la entrevista como una batería de tests
El documento de entrevista reúne 32 preguntas en seis secciones, cada una con una respuesta trabajada. La sección 3 se añadió a última hora a petición del CEO, y es la que recomendaríamos a cualquiera: herramientas, incidentes y seguridad. Las listas genéricas de «las 50 preguntas de entrevista más frecuentes» nunca la incluyen, y es ahí donde de verdad se decide una entrevista para un puesto con responsabilidad.
Pon por escrito las preguntas de incidente de tu oficio, las que haría un reclutador que ha ejercido ese trabajo:
- Desarrollador: producción cae un viernes por la tarde y el último despliegue fue tuyo. ¿Qué haces en los diez primeros minutos?
- Enfermera: detectas un error de dosis después de haber administrado la medicación. ¿A quién avisas, en qué orden y qué dejas por escrito?
- Comercial: un cliente clave impugna un pedido firmado y amenaza con irse. ¿Qué concedes y qué no?
- Contable: la conciliación de cuentas no cuadra la víspera del cierre. ¿Dónde miras primero?
- Jefe de obra: una entrega llega no conforme la mañana en que toca hormigonar la losa. ¿Paras el hormigonado?
Añade las preguntas que hoy son iguales en todas partes: qué herramientas del oficio usas y hasta qué punto las dominas, y qué haces cuando alguien llama diciendo ser del «soporte informático» y te pide la contraseña.
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 laborable 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 principio de la sesión: instala CASP en el repositorio de candidaturas y mantenlo al día hasta que se firme el contrato.
casp init genera el panel en un segundo. El trabajo está en escribir el estado con honestidad:
| Fase | Contenido | Estado |
|---|---|---|
| 0 — Inicialización | Panel instalado | entregada |
| 1 — Kit de candidatura | Sitio web, CV, cartas, correos, preparación de entrevista | entregada |
| 2 — Primera oleada | Una carpeta de candidatura cada vez, cada una enviada por la persona candidata antes de la siguiente | en cola |
| 3 — Agente de vigilancia de ofertas | Portales de empleo y páginas de empleo de los empleadores, filtrados por el oficio, carpetas preparadas hasta ready | en cola |
| 4 — Seguimientos y entrevistas | Un seguimiento a los 10 días laborables; una ficha de entrevista por empleador | en cola |
| 5 — Oferta y transición | Comparar la oferta con el empleo actual, negociar, gestionar el preaviso | pendiente |
La última línea de now.md lo dice sin rodeos: el panel se cierra el día en que se firma el contrato. Es el punto en el que más insistiríamos ante cualquiera que copie esto. Una búsqueda de empleo medida en «candidaturas enviadas» mide 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 sobre el papel antes de que lleguen.
Tres cosas que CASP nos dio y que un archivo de notas no nos habría dado:
- «¿Dónde estamos?» tiene una respuesta que cabe en una pantalla.
casp statusmuestra la fase actual, el prompt de la próxima sesión y los últimos commits. La próxima sesión de trabajo parte dedocs/plan/sessions/PHASE-2-PREMIERE-VAGUE.md, no de la memoria.
- Las decisiones quedan registradas como decisiones. El CEO decidió presentar una candidatura a una oferta publicada que Claude había señalado como un paso atrás: un contrato de duración determinada con requisitos de nivel inicial, frente al contrato indefinido actual de la persona candidata. Claude recomendó prepararla la última, con una pretensión salarial al menos igual al sueldo actual. El CEO mantuvo su decisión, y el log recoge tanto la decisión como la reserva. Dentro de tres semanas nadie tendrá que reconstruir por qué existe esa carpeta.
- Las preguntas abiertas se listan, no se recuerdan. La hoja de ruta tiene una tabla «Bloqueado / por decidir». A mitad de la sesión contenía tres elementos:
- - dos direcciones de reclutadores cuya empresa aún no habíamos identificado;
- - una pretensión salarial que exige la oferta;
- - una edición a mano que el CEO había hecho en una plantilla de correo y que contradecía su cuerpo.
El último se resolvió en menos de una hora (los empleadores reciben el puesto objetivo en el asunto, las empresas de trabajo temporal reciben «puesto objetivo o puesto actual»), y salió de la tabla en el mismo commit.
casp check cerró el día con 18 PASS, 0 WARN, 0 FAIL. Para un repositorio sin código, eso no es decoración. Significa que el archivo de estado, el log de sesión y git coinciden, que es justo lo que importa cuando la próxima sesión, o la próxima persona, retoma el trabajo.
El sitio web público obtuvo su propia sección en la misma hoja de ruta en lugar de un segundo panel, porque sirve al mismo resultado. 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 búsqueda de empleo activa.
Parte 5 — Vigilancia de ofertas y correo: prepararlo todo, no enviar nada
El plan inicial del CEO incluía darle al agente las credenciales SMTP del buzón de la persona 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 archivo de reglas del repositorio: el agente nunca envía nada. El razonamiento:
- El volumen no lo justifica. Una primera oleada son menos de diez candidaturas. Enviar cada una le lleva a la persona candidata menos de dos minutos.
- Una candidatura no se puede retirar. Un adjunto equivocado, un
[marcador]olvidado o una carta que nombra al empleador equivocado quedan a la vista del reclutador para siempre. El envío humano es la última revisión, y sale barato. - La reputación de envío es la reputación de la persona candidata. El dominio de la persona candidata tiene SPF, DKIM y DMARC, y al menos un empleador objetivo filtra el correo con una pasarela corporativa. Una ráfaga de envíos automatizados desde un buzón nuevo es exactamente lo que esos filtros están hechos para atrapar.
Lo que la automatización sí hará es todo lo que viene antes del envío:
- Vigilar las ofertas. Revisa portales de empleo y páginas de empleo de los empleadores, sin hacer scraping de LinkedIn (sus condiciones lo prohíben), y elimina duplicados contrastando con el archivo de seguimiento: una candidatura por empleador y por puesto.
- Preparar la carpeta. Crea la carpeta del empleador, personaliza la carta a partir del maestro, exporta el PDF con Word y lo comprueba: una página, texto releído con
pdftotext, una imagen PNG renderizada y revisada. Escribe el archivo del correo y pasa la fila aready. - Dejar el envío a la persona candidata. La persona candidata revisa y envía. La fila pasa a
sentsolo cuando rellena la fecha.
Filtrar por el oficio, no por el título del puesto. Un título de puesto es una etiqueta que cada empleador define a su manera. «Consultor» abarca a un desarrollador en misión con un cliente y a un comercial a comisión; «técnico» abarca un laboratorio, una sala de servidores y una obra; «coordinador» abarca una planta de hospital, un proyecto y una zona comercial. En nuestro caso, los resultados brutos para el título objetivo mezclaban otro empleo de otro sector, en torno a la mitad. Un agente que filtra por el título devuelve ruido. Filtra, en cambio, por las tareas y el contexto:
- Desarrollador: el stack y el tipo de producto, no «ingeniero».
- Enfermera: el servicio y el régimen de turnos, no «enfermera».
- Comercial: lo que se vende y la duración del ciclo de venta, no «business developer».
- Contable: el ámbito (contabilidad general, consolidación, fiscalidad) y el tamaño de la entidad.
- Jefe de obra: el tipo de obra y el tamaño de las obras.
Escribe el filtro en el archivo de reglas del repositorio, junto a las reglas de contenido, para que el agente lo herede.
Las credenciales SMTP e IMAP viven en un .env ignorado por git desde el primer commit. Su mejor uso no es enviar. Es dejar el correo preparado, con los adjuntos, en la carpeta Borradores del propio buzón de la persona candidata, por IMAP. La persona candidata abre su cliente de correo, lee el borrador y 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 de las exportaciones, el script trajo Word al primer plano mientras el CEO escribía en otra ventana. Tres de sus pulsaciones acabaron en el título del documento de entrevista.
Claude lo detectó releyendo el texto del PDF exportado, no fiándose del código de salida de la exportación. Volvió a exportar el documento y eliminó la llamada activate del script, con un comentario que explica por qué. Después comparó, palabra por palabra, cada uno de 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; lee el resultado. Se aplica tanto a una carta de presentación como a un artefacto de build.
Cómo copiar esto para tu propia búsqueda de empleo
No necesitas nuestro stack. Necesitas la forma, y un asistente de IA capaz de leer y escribir archivos. Todo el flujo de trabajo está también disponible como guía en PDF paso a paso, con la estructura de carpetas, el archivo de seguimiento, los prompts y las listas de comprobación: descarga la guía de búsqueda de empleo (PDF).
- Un repositorio privado (o una carpeta bajo control de versiones) separado de todo lo público.
- Los maestros en un solo lugar, una carpeta por empleador, con los PDF congelados tal como se enviaron.
- Un único archivo de seguimiento donde una fila solo cuenta como enviada si lleva una fecha.
- Reglas de contenido escritas (ningún superlativo sin un hecho detrás, ninguna cifra interna, ninguna crítica a tu empleador) que cualquier asistente, humano o IA, debe respetar.
- La preparación de la entrevista como una batería de tests, construida sobre las preguntas de incidente y de seguridad de tu oficio.
- Un filtro de ofertas por el oficio, no por el título del puesto.
- Una hoja de ruta que termina en un contrato firmado, con los seguimientos, la negociación y el preaviso escritos en ella desde el primer día.
- Una automatización que prepara y nunca envía. Deja los borradores en tu buzón, léelos y pulsa Enviar tú.
Con CASP, la hoja de ruta tiene un validador: npm i -g @justethales/casp, y después casp init en el repositorio.
CASP — el Coding-Agent State Protocol. Tu agente de IA recorre toda la
hoja de ruta sin perder el hilo. Nativo de git, solo local, MIT, cero
telemetría. Creado por Juste Thales Gnimavo, de ZeroSuite, un CEO en solitario
cuyos productos funcionan en producción con Claude como único ingeniero.
Instalación: npm i -g @justethales/casp · https://casp.sh ·
https://github.com/ThalesGnimavo/casp