Fiz engenharia reversa de sistemas ATS e documentei tudo em 33 páginas — por que seu currículo nunca passa da triagem.
Você aplica pra 50 vagas, tem a stack perfeita, mas recebe silêncio absoluto.
O problema não é seu código.
É o parser que lê seu currículo antes de qualquer humano ver.
O problema
Sistemas como Gupy, Workday, Greenhouse e Lever não leem currículos como pessoas.
Eles fazem parsing do arquivo, extraem entidades (nome, datas, skills) e atribuem um score baseado em densidade de keywords, vetores semânticos e heurísticas estatísticas.
Seu currículo é tratado como um payload que precisa ser perfeitamente interpretado pelo pipeline de triagem.
E a maioria falha silenciosamente.
O que descobri
Passei as últimas semanas estudando como esses sistemas funcionam.
Não li artigos de coach — li código-fonte.
OpenCATS (open source), documentação de APIs, testes com parsers reais, análise de NLP (BERT, Word2Vec), regex patterns e tokenização.
Abaixo estão alguns bugs que eliminam candidatos qualificados sem que eles saibam.
1. UTF-8 BOM quebra parsers silenciosamente
ERROR: Unable to parse candidate resume
TOKEN: undefined
Se você salvou o .docx com BOM (Byte Order Mark), alguns parsers legados simplesmente falham.
Sem erro. Sem log. Sem aviso.
Você nem sabe que foi rejeitado.
2. “React” ≠ “ReactJS” ≠ “React.js”
São três tokens diferentes para sistemas baseados em regex.
Se a vaga pede “React” e você escreveu “ReactJS”, o match pode ser zero em ATS legados.
3. Layout de duas colunas causa text interleaving
O parser lê linha por linha, da esquerda pra direita.
Se você tem sidebar, o texto das colunas é concatenado de forma alternada:
“Desenvolvedor Python Telefone: (11) 99999-9999
com 5 anos Email: dev@example.com de experiência…”
O NLP não entende nada disso.
4. PDF com fontes não embarcadas falha em OCR
Se a fonte não está embarcada, o sistema usa uma fallback.
Resultado: caracteres trocados, texto corrompido e keywords perdidas.
5. A última linha do resumo “vaza” pra experiência
Parsers baseados em regex cortam seções procurando padrões como “Experience” ou “Experiência”.
Se a keyword que você precisa está na transição entre seções, ela pode ser associada ao bloco errado.
Isso se chama context bleed — e pode ser explorado.
6. Metadados vazios no core.xml
O parser lê os metadados do .docx antes do corpo do texto.
Se dc:title, dc:keywords e dc:description estão vazios, você perde peso algorítmico logo na primeira fase.
Stack de análise
Usei parsers open source como OpenCATS (Ruby + regex), ferramentas de NLP como spaCy e NLTK para Named Entity Recognition, embeddings com Word2Vec, análise de tokens, normalização UTF-8 e regex patterns.
As plataformas analisadas incluíram Gupy, Workday e Greenhouse, a partir de documentação pública e comportamento observado.
O que eu fiz
Compilei tudo em um manual técnico de 33 páginas.
Não é curso.
Não é motivacional.
É documentação de engenharia reversa.
O material cobre:
– Como parsers legacy (regex), modernos (NLP) e híbridos (LLM) funcionam
– Data scraping de keywords a partir de vagas reais
– Metadata injection editando o core.xml do .docx
– Context bleed entre seções
– Normalização de tokens e encoding UTF-8 sem BOM
– Fórmula XYZ para bullets com impacto quantificável
– Diferenças regionais entre Brasil, EUA e Europa
– A/B testing de currículos
Bônus
Incluí um Prompt Mestre v1.0: um pipeline de 10 fases para IA (ChatGPT, Claude, Gemini).
Você cola o prompt, passa 10 vagas + seu currículo atual e recebe o output otimizado em texto, LaTeX e metadados prontos.
Também inclui um template LaTeX profissional, baseado no awesome-cv, com encoding correto, fontes embarcadas e layout ATS-friendly.
Custos
R$ 0,00.
Porque conhecimento técnico não deveria custar R$ 997.
O problema não é falta de curso.
É falta de documentação.
E documentação deveria ser open source.
Links
PDF completo:
https://github.com/caiquegaspar/ats-engineer/releases
Repositório:
https://github.com/caiquegaspar/ats-engineer
Site:
https://ats-engineer.pages.dev
O que aprendi
ATS não são uma coisa só. Existem sistemas legacy, ML-based e híbridos.
Parsing quebra com detalhes bobos: hífen errado, BOM, fontes, aspas tipográficas.
Keywords sem contexto valem pouco. Cluster semântico pesa mais.
E o principal: o problema não é você. É a API.
Exemplo prático
Antes:
Desenvolvedor Full Stack
Experiência com React, Node, Docker
Depois:
Desenvolvedor Full Stack | React | Node.js | Docker
Resumo com contexto, tecnologias em inglês, datas normalizadas e impacto quantificado.
Conclusão
Você debugga exceções no seu código.
Mas está enviando currículos que lançam NullPointerException no parser do recrutador.
Talvez esteja na hora de debugar isso também.
v1.0.0 — Initial Release
✓ Engenharia reversa completa
✓ 33 páginas de documentação técnica
✓ Prompt Mestre v1.0 + Template LaTeX
Feedback é bem-vindo nos comentários ou no repositório.

Top comments (0)