1

Como funciona o parsing de um ATS e por que currículos em duas colunas quebram o recrutamento

Quem já trabalhou com extração de dados em documentos sabe o pesadelo que é fazer parsing de PDF. Diferente de um HTML estruturado em DOM ou de um JSON, o PDF armazena instruções de renderização visual (coordenadas x, y no canvas).

A maioria dos sistemas de recrutamento (ATS — Applicant Tracking Systems, como Gupy, Workday, Greenhouse ou bibliotecas open source de parsing) processa o arquivo de texto em fluxo contínuo linear: da esquerda para a direita, de cima para baixo.

Quando um candidato usa um template bonito de duas colunas (muito comum no Canva), o layout visualmente fica limpo para o olho humano, mas o parser lê a linha inteira atravessando as duas colunas:

  • Coluna 1: Desenvolvedor Python Pleno | Coluna 2: Inglês Avançado
  • Linha seguinte: Empresa XYZ (2022 - 2024) | Linha seguinte: Docker, Kubernetes

O resultado bruto que o parser extrai vira algo como:
"Desenvolvedor Python Pleno Inglês Avançado Empresa XYZ (2022 - 2024) Docker, Kubernetes".

O extrator de entidades nomeadas (NER) e os classificadores de regex simplesmente não conseguem associar qual data pertence a qual cargo, o tempo de experiência do candidato é calculado errado e a pontuação de relevância da candidatura cai para o final da fila antes mesmo de um humano abrir o arquivo.

Outros três detalhes técnicos que quebram o parsing com frequência:

  1. Gráficos e barras de progresso (vetores): Se a habilidade em Python estiver numa barrinha gráfica de 80%, o parser ignora o vetor e considera zero menções à linguagem.
  2. Ícones no lugar de texto: Usar o glyph de telefone ou e-mail sem a palavra literal quebra parsers que buscam âncoras textuais.
  3. Exportação como imagem achatada: PDFs gerados sem camada de texto selecionável impedem qualquer busca sem OCR pesado.

Na engenharia do job.ia.br, a premissa central de geração de currículos foi justamente blindar o candidato contra essa quebra: gerar saídas em coluna única, hierarquia semântica pura e PDFs com texto nativo garantido para passar liso por qualquer parser de ATS.

Se você lida com parsing de documentos ou pipelines de processamento de texto de candidatos, como vocês tratam essas aberrações de layout por aí?

Carregando publicação patrocinada...