Ele transformou o Claude Code numa linha de montagem de candidaturas: 69 envios, 20 entrevistas

O gênero das ferramentas de «candidatura com IA» tem um problema de credibilidade, e não é técnico. Todo mundo desconfia que o resultado é um PDF entupido de palavras-chave que o recrutador fareja em quatro segundos.
Então a primeira coisa que vale contar sobre o ai-job-search, um framework com licença MIT do Mads Lorentzen que transforma o Claude Code numa pipeline de busca de emprego, é o que o autor fez com ele: 69 candidaturas, 20 primeiras entrevistas e uma proposta assinada como engenheiro de IA. Ele também diz que avisou cada empregador que estava usando a ferramenta. Ou é um sinal muito bom, ou é muita sorte. Provavelmente as duas coisas.
A segunda coisa que vale contar é que a engenharia interessante não está na escrita. Está na conferência.
Os três comandos que importam
/setup preenche seu perfil. Três formas de entrar: apontar para uma pasta documents/, colar um único currículo ou responder a perguntas de entrevista. O autor é direto: a profundidade do perfil é o maior fator isolado na qualidade do resultado. Perfil raso produz candidatura genérica, e nenhum prompt esperto conserta isso.
/scrape busca nos portais de emprego, remove duplicatas e ordena por aderência. O suporte a portais depende do mercado: os incluídos cobrem a Dinamarca (Jobindex, Jobnet, Jobbank, Jobdanmark), mais duas skills transfronteiriças — uma para o endpoint público sem autenticação do LinkedIn, com flag de região, e outra para uma API REST gratuita focada em vagas de tecnologia. Outros mercados precisam do /add-portal, que gera e testa uma skill nova.
/apply <url> é o interessante. Roda oito etapas: analisa a vaga, pontua a aderência, redige um currículo e uma carta de apresentação em LaTeX sob medida, entrega os dois a um agente revisor separado, com contexto próprio, para pesquisar a empresa e criticar o rascunho, revisa, compila, inspeciona o PDF renderizado e então roda uma checagem ATS.
Por que compilar e olhar o PDF é o truque inteiro
Quem já gerou um documento LaTeX com um modelo de linguagem conhece o modo de falha. O fonte parece perfeito. O PDF tem um título órfão no pé da primeira página, a carta transbordou para uma segunda página com uma linha só, e uma lista caiu silenciosamente para outra fonte.
Este projeto fecha esse ciclo. O currículo precisa compilar com lualatex em exatamente duas páginas, sem títulos órfãos. A carta precisa compilar com xelatex em exatamente uma página, com a assinatura visível. O agente lê as páginas renderizadas e itera até as restrições valerem.
Quando o currículo passa do tamanho, ele não corta o emprego mais antigo. Pontua cada linha por relevância para esta vaga, unicidade dentro do documento e se a carta depende dela, e então remove a de menor total. É um detalhe pequeno e uma diferença grande: é o comportamento de alguém que de fato já enxugou um currículo para um cargo específico, não de alguém seguindo uma regra.
A checagem ATS é a parte que ninguém mais faz
Os sistemas de rastreamento de candidatos não leem o seu layout bonito. Leem a camada de texto embutida, e o LaTeX é famoso por produzir camadas de texto tecnicamente presentes e praticamente inúteis: fontes de ícone que renderizam como um símbolo de e-mail e extraem nada, ligaduras que quebram o casamento de palavras-chave, colunas que embaralham a ordem de leitura.
O framework extrai a camada de texto com pypdf ou pdftotext, verifica se os dados de contato aparecem como texto literal, checa mojibake e ordem de leitura, e então compara a cobertura de palavras-chave com a vaga. Se nenhuma das duas ferramentas estiver instalada, ele degrada para uma checagem visual de palavras-chave em vez de pular a etapa em silêncio.
É a diferença entre uma ferramenta que produz documentos e uma ferramenta que produz documentos capazes de sobreviver ao contato com um sistema de contratação.
A restrição honesta: ele se recusa a inventar
A regra declarada é nenhuma habilidade ou experiência fabricada. Palavras-chave que o perfil não sustenta são marcadas como lacunas em vez de enfiadas no texto. É uma posição ética e também prática: experiência inventada é desmascarada na entrevista, e o trabalho da ferramenta é te levar até ela.
Há também um filtro de idiomas. O /setup coleta cada idioma de trabalho e o nível; idioma não declarado é rejeição dura, e nível insuficiente é sinalizado em vez de rejeitado automaticamente. Quase toda ferramenta de emprego ignora isso por completo, e é assim que você acaba com uma candidatura que soa fluente para uma vaga que exige alemão em C1.
A armadilha de privacidade em que você não pode pisar
Essa é a parte que eu colocaria em negrito na página de download, e o autor coloca, mas merece repetição: o fork de um repositório público é sempre público. O GitHub não permite forks privados de repositórios públicos. E o /setup grava seu nome, seus contatos, seu histórico profissional e sua expectativa salarial em arquivos rastreados pelo git.
Faça o fork, rode o setup, dê push, e você acabou de publicar seu currículo e sua expectativa salarial na internet, com histórico de commits e tudo.
O caminho correto, documentado no guia de instalação do projeto, é criar um repositório privado e adicionar o original como remote upstream. Você tem o mesmo fluxo de atualização sem a exposição. Só faça fork se pretender contribuir com código.
Postura de segurança, dita sem rodeios
Vagas de emprego são tratadas como entrada não confiável: instruções embutidas não são executadas, links dentro delas não são seguidos. O autor faz questão de dizer que isso é defesa no nível da instrução, não um sandbox. Skills de portal rodam na sua máquina sem aprovação, então skills emprestadas de outros forks devem ser lidas linha por linha: veja para onde vão as requisições de rede, confira o manifesto do pacote em busca de dependências e scripts de ciclo de vida, rode os testes offline. Copiar a pasta é deliberadamente manual exatamente por isso.
A skill do LinkedIn vem com um aviso próprio: automação viola os termos da plataforma e deve ser usada com baixa frequência, para uso pessoal.
O custo do ciclo
Nada disso é de graça, e o autor diz isso. O Claude Code não tem plano gratuito; você precisa de assinatura ou crédito de API. A etapa de compilar e olhar queima tokens extras, porque o agente lê páginas renderizadas e itera — às vezes três ou quatro vezes num único currículo.
Se a troca vale a pena depende de quanto você acha que custa o seu tempo. Quatro ciclos de revisão num documento que você vai enviar uma vez é muita coisa. Quatro ciclos num documento que, de outro modo, teria um título órfão na margem de baixo é barato, porque esse título é a diferença entre «cuidadoso» e «desleixado» na primeira impressão de quem lê.
Há um segundo custo fácil de perder de vista: o trabalho no perfil. O /setup recompensa especificidade — projetos, ferramentas, resultados quantificados, o que você fez versus o que o seu time fez. Perfil raso produz a candidatura genérica que todo mundo produz nessa categoria. A ferramenta não consegue inventar o material que não tem, e o autor é incomumente direto ao dizer que o fator limitante está aqui, não no modelo.
O que ele não faz
Não consegue indicação para você, e é por indicação que a maioria das vagas é realmente ganha. Não negocia, e sobre salário só sabe o número que você digitou no setup. Não sabe que o gestor da vaga é um ex-colega, nem que a vaga está aberta há sete meses porque o time não consegue entrar num acordo sobre o cargo.
O que ele faz é remover a desculpa. A candidatura vai ser sob medida, o PDF vai compilar, a camada de texto vai ser interpretável e os requisitos de idioma vão ser respeitados. O que você faz com isso continua sendo a busca por emprego.
O que isso é, de verdade
Tire o embrulho de IA e sobra um sistema de build para candidaturas: fonte entra, artefato sai, com um estágio de verificação no meio. O modelo é o compilador. A inspeção do PDF e a checagem de texto ATS são os testes. O agente revisor é a revisão de código.
É esse enquadramento que o torna mais interessante do que a categoria dele. Ele não promete conseguir um emprego para você. Promete que o documento que você envia terá duas páginas, será legível por máquina, será honesto sobre suas lacunas e sob medida para a vaga — e vai te avisar quando essas promessas falharem.
Sessenta e nove candidaturas e vinte entrevistas é uma amostra decente. Não é prova. Mas é uma base de evidência melhor do que quase toda ferramenta deste espaço tem, e a pipeline que a produziu você pode ler.
Artigos relacionados
As cinco maiores editoras dos EUA usam IA em silêncio nas capas
A Wired revela que ao menos três das cinco maiores editoras dos EUA geram capas e textos com IA sem divulgar nem consultar os autores.
Character.AI pede falência e Disney oferece US$ 20 milhões
Character.AI pede falência e a Disney entra como stalking horse com US$ 20 milhões, só por ativos e licença de patentes. De uma Série A de US$ 150 milhões restam patentes.
XERJ: um buscador local para agentes de código que entrega os próprios números
O XERJ indexa o código localmente com tree-sitter para os agentes lerem menos arquivos: 2,7 vezes menos tokens que o grep, não os 40 do título. O mantenedor admite isso.
Pare de ensinar agentes a olhar para a tela: CLI-Anything dá uma linha de comando para cada software
Não é preciso ensinar agentes a olhar a tela. O CLI-Anything gera em sete estágios CLIs testados e documentados para GIMP, Blender ou LibreOffice, e o agente só precisa digitar.