A fábrica de candidaturas que ainda não existe
Portfólio·

A fábrica de candidaturas que ainda não existe

7 min de leitura← Voltar para timeline

O ritual manual

Aplicar a uma vaga hoje, com a ferramenta já reintroduzida, tem uma sequência fixa: abrir o portfólio, clicar no botão de currículo personalizado, descrever a vaga no modal, esperar a IA, revisar o PDF campo por campo, salvar, anexar no formulário da empresa. São vários cliques e — o pior — é um ritual que se repete inteiro para cada empresa. A ferramenta existe; o hábito continua artesanal.

Não é reclamação de preguiça. É a percepção de que a feature resolveu a parte difícil (reformatar o currículo sem inventar nada, alinhar com a vaga) e deixou intocado o entorno burocrático: coletar a vaga, disparar o processo, guardar o resultado, lembrar pra quem foi. Essa entorno é que a próxima fase quer comer.

A ferramenta que voltou diferente

O caminho até aqui rendeu uma história que já foi contada neste blog: um revert de madrugada no dia 5 tirou a feature inteira da árvore, e seis dias depois ela voltou — com outra arquitetura. O antes e o depois, em dois commits:

Revert (sábado, 03h55) Reintrodução (sexta, 00h18)
Commit 4dd1a99 d247a55
Arquivos 20 14
Linhas −4.819 +3.242
Integração LLM corrida de modelos free hardcoded cadeia de providers via gateway
LLM fora do ar PDF placeholder com HTTP 200 erro explícito 502
Echo de prompt virava PDF de mentira guard + retry + 502

A reintrodução não restaurou — ela trocou a corrida de modelos por uma cadeia de providers (o portfólio fala com um gateway, não com uma lista), fez o LLM indisponível falhar alto e cravou um guard que reconhece quando o modelo devolve o próprio exemplo do prompt de volta. Os trilhos que hoje sustentam a ferramenta nasceram desse par de madrugadas.

Mas repare no que a tabela não mostra: nenhuma dessas decisões mexe no ritual manual. A ferramenta ficou melhor esperando alguém sentar e operar.

A Fase 5, escrita desde agosto

No fim de agosto, quando o plano do Resume Tailor foi escrito, essa lacuna já tinha nome. O documento termina com uma seção de fases, e a última delas não fala de código — fala de operação:

### Fase 5 — Uso Prático (Vagas)
- [ ] Script interno: para cada empresa-alvo, gerar currículo personalizado
- [ ] Pipeline semi-automático: nova vaga → prompt → currículo → PDF
- [ ] Integrar com LifeLog? (postar "Candidatei para X empresa")

Três checkboxes. Nenhum marcado. A fase que transforma a ferramenta em fábrica foi desenhada antes de a ferramenta sequer sobreviver ao primeiro revert — e é provavelmente por isso que ela é a mais honesta das três: não promete eleganteza, promete volume.

O desenho do pipeline

A ideia que ainda vai sair do papel tem uma sequência propositalmente sem graça:

A vaga entra crua. Texto do anúncio, colado como veio — com requisito mal formatado, título marketing, o que for. O pipeline não pede que a vaga seja bonita; pedir isso é criar atrito na entrada, e atrito na entrada mata pipeline.

A pasta de vagas vira fonte de verdade. Cada vaga-alvo vira um artefato em disco: texto do anúncio + metadados (empresa, cargo, data). Com isso, gerar deixa de ser um evento na interface e vira um comando executável — inclusive em lote, para a lista de empresas que já vale a pena ter separadas.

O prompt é montado, não escrito. O texto cru da vaga entra no mesmo molde que hoje o modal usa: currículo real como única fonte, proibido inventar, formato ATS, cores da marca. A vantagem de o molde já existir em produção é que o pipeline herda os guardrails de graça — echo de prompt detectado, repete com reforço; LLM fora, 502 e nenhum PDF de mentira. Fail-loud em pipeline é ainda mais importante do que em feature: um PDF falso num lote de dez é o tipo de erro que só aparece na entrevista.

O humano aponta e clica. O “semi” de semi-automático é deliberado. A IA prepara o rascunho; a decisão de enviar, com o nome de verdade embaixo, é de quem assina. Automatizar o envio seria economizar a única parte que ninguém deveria economizar.

Candidatura vira registro. O último checkbox do plano liga o pipeline ao blog: cada candidatura gerada pode virar uma linha pública no LifeLog. Não por vaidade — por memória. “Candidatei para X em tal data” é o antídoto contra a candidatura fantasma, aquela que você esquece que enviou e se surpreende quando respondem.

Hoje vs. o que ainda vem

Hoje (manual) Fase 5 (pipeline)
Entrada vaga colada no modal, uma por vez vaga crua em disco, em lote
Execução ritual inteiro por empresa um comando por empresa
Guardrails idênticos herdados do mesmo molde
Registro nenhum cada candidatura vira linha no blog
Quem envia você você — a IA só prepara

O que um checkbox vazio ensina

Features nascem duas vezes: primeiro como ferramenta, depois como hábito. A reintrodução da sexta-feira entregou a ferramenta — e ela é boa, com falha alta e guard de echo. O hábito continua pendente porque habituar alguém a um ritual manual de dez cliques é desperdiçar a ferramenta que o substitui.

A parte que me faz querer escrever sobre algo que ainda não existe: um plano com checkboxes vazios é uma promessa com data de validade aberta. A Fase 5 foi escrita antes da ferramenta estar pronta, sobreviveu ao revert junto com ela, e continua lá — três linhas esperando o próximo bloco de madrugada. Quando os checkboxes virarem código, este post é o “antes”. E se nunca virarem, o post vira a foto do plano que era bom e ficou no papel — o que também é um registro honesto.

~/lifelog — bash
$cat about.txt
╔══════════════════════════════════════╗
║  Samuel Medeiros                    ║
║  Senior Software Engineer           ║
║  Stack: Python · TypeScript · Rust  ║
║  Projetos: Arachne, Dogwalk,        ║
║            Capivara, TatuEngine      ║
╚══════════════════════════════════════╝
      
$