0

Pitch: Fiz uma ferramenta open source para ajudar a adaptar o currículo às vagas de emprego

Fala, pessoal!

Quem já passou (ou está passando) pelo processo de procurar emprego sabe o quanto é cansativo adaptar o currículo para cada vaga.

Cada oportunidade pede coisas um pouco diferentes: algumas exigem certas tecnologias como obrigatórias, outras valorizam determinados projetos e muitas usam filtros automáticos (sistemas ATS) para triagem inicial.

Fazer essa adaptação na mão dá bastante trabalho: duplicar arquivo, reescrever pontos de experiência para focar na dor daquela vaga, ajustar formatação e torcer para o layout não quebrar. Além disso, existe sempre o cuidado de não copiar termos da vaga às cegas nem inventar qualificações que você não tem.

Para tentar resolver isso para mim mesmo, comecei a automatizar esse processo. Com o tempo, isso acabou virando um projeto aberto chamado Cveck.


Como começou e o que deu errado no início

No começo, eu mantinha meu currículo no Google Docs seguindo o modelo clássico de Harvard. Depois conheci o Typst (uma alternativa moderna e rápida ao LaTeX) e recriei meu currículo nele. A vantagem é que o currículo virou código puro: fácil de versionar no Git e compilado direto em PDF em milissegundos.

Com o currículo em código, pensei: por que não usar IA para analisar a vaga e adaptar o arquivo para mim?

Minha primeira tentativa foi criar skills para um agente de código com prompts em linguagem natural. A ideia era o agente ler a vaga, olhar meu perfil, alterar o código e compilar.

Mas isso trouxe alguns problemas práticos:

  • O agente precisava rodar comandos, ler saídas de erro no terminal e inspecionar arquivos.
  • Todo esse histórico acumulado era reenviado a cada resposta, fazendo uma única execução gastar mais de 1.500.000 tokens de entrada.
  • O fluxo entrava em loops desnecessários para resolver coisas simples.

Percebi que a maior parte do processo não precisava de uma IA "decidindo tudo livremente". O fluxo em si era bem previsível, e o que eu precisava era apenas organizar as etapas de forma estruturada.


A solução com LangGraph

Decidi refazer a lógica usando o LangGraph, que permite montar um fluxo passo a passo onde cada etapa faz apenas o que é necessário:

  1. Extrair requisitos da vaga: A IA lê a descrição da vaga e extrai apenas as competências técnicas e diferenciais exigidos.
  2. Comparar com meu perfil real: A ferramenta compara esses requisitos com um arquivo mestre onde coloco todo o meu histórico real (USER_PROFILE.md).
  3. Mapear o que falta (Gaps): Se a vaga pede algo que eu não sei, a ferramenta não inventa no currículo. Em vez disso, ela salva essa tecnologia em uma lista de estudos (GAPS.md) para eu aprender depois.
  4. Gerar o texto e compilar: A IA reescreve os pontos de experiência dando destaque ao que realmente faz sentido para a vaga, preenche o template em Typst e compila o PDF localmente no meu computador.
  5. Validar o resultado: Um script em Python lê o PDF gerado e calcula a aderência das palavras-chave da vaga, alertando inclusive se houver repetição exagerada de termos.

Separando o que era processamento local (compilação e contas matemáticas) do que realmente precisava de IA (compreensão de texto e redação), o consumo caiu de 1.5M para cerca de 25.000 tokens por execução (uma redução de mais de 98%).


Projeto aberto e colaborativo (MIT)

O projeto é 100% gratuito e open source sob licença MIT. Não existe nenhum produto pago ou serviço por trás dele.

Estado atual e como contribuir

No momento, o Cveck roda via terminal (CLI) e pode ser conectado a provedores na nuvem (como OpenAI, Anthropic, DeepSeek, Groq) ou rodar de forma 100% local e gratuita usando ferramentas como o Ollama.

Como ainda é uma ferramenta recente e usada pelo terminal, ela exige um pouco de familiaridade com código para configurar pela primeira vez. Meu objetivo é ir evoluindo isso com o tempo.

Quem tiver interesse em testar, dar feedback ou sugerir melhorias, fique à vontade! Seja sobre o currículo gerado, sobre o fluxo, novas ideias de templates ou melhorias no código.

Espero que o projeto ou o relato da experiência possa ser útil para alguém por aqui! :)

Carregando publicação patrocinada...