Menu

Gerador de dados de currículo para testar ATS

Gerador de dados de currículo com trajetória profissional coerente, formação, competências e faixa salarial para testar parseamento e triagem em ATS.

Publicado em

  • recrutamento
  • currículo
  • dados de teste

Um gerador de dados de currículo tem um público estreito e exigente: quem testa sistemas de recrutamento. O problema desses sistemas é que eles não recebem um formulário limpo, e sim um arquivo enviado por alguém, com estrutura imprevisível. O parser precisa extrair cargos, empresas, datas, formação e competências de um texto que ninguém padronizou, e o resultado da extração alimenta busca, filtro e triagem. Neste texto, mostramos que tipo de amostra esse parser precisa para ser exercitado de verdade, quais regras de coerência uma trajetória profissional deve respeitar, como tratar as partes que costumam ficar de fora dos testes e quais cuidados de privacidade se aplicam a dado de candidato.

Por que um currículo é um dado difícil de testar?

Currículo é texto sem esquema. Duas pessoas com a mesma experiência escrevem de formas diferentes: a primeira lista o cargo antes da empresa, a segunda faz o contrário; uma usa mês e ano, outra usa apenas o ano; algumas declaram o período como intervalo, outras descrevem a duração em palavras.

Um parser que funciona em um formato falha em outro, e a falha é silenciosa. O cargo é extraído, mas a data não; a empresa fica com o nome do setor; o período de um emprego engole o seguinte. Nada disso gera exceção, e o erro aparece depois, como um candidato que não aparece em uma busca que deveria encontrá-lo.

É por isso que testar apenas com um currículo bem formatado não prova quase nada. O conjunto de teste precisa de variedade de estrutura, porque é a estrutura, e não o conteúdo, que quebra o parser.

Que regras uma trajetória profissional deve respeitar?

Uma trajetória plausível tem uma ordem cronológica e uma sequência de estados que se sucedem sem contradição. O primeiro item costuma ser o emprego atual, declarado com início e sem fim, ou com fim previsto. Os anteriores têm início e fim, e o fim de um deve ser anterior ou igual ao início do seguinte, sem sobreposição impossível.

Sobreposição, aliás, existe na vida real e não é erro. Trabalho simultâneo, consultoria paralela e atividade autônoma ao lado do emprego formal são comuns, e um validador que recusa qualquer sobreposição recusa gente de verdade. O que não faz sentido é uma sobreposição que resulta em três empregos de tempo integral no mesmo mês.

Também há os intervalos. Um período sem trabalho entre dois empregos é normal, e o sistema de triagem precisa lidar com ele sem tratar a pessoa como se o dado estivesse errado. Um caso de teste com um intervalo de vários meses exercita essa parte do código, que costuma ser a mais frágil.

A duração precisa ser calculada, e não copiada. Quem declara a duração em palavras costuma arredondar, e o sistema que soma o que o candidato escreveu chega a totais diferentes do que a soma dos intervalos. O resumo sobre regras de linha do tempo em histórico profissional detalha esses casos.

Como cargos e setores se relacionam?

Cargo e setor formam um par, e o par precisa fazer sentido. Um cargo de analista de dados em uma empresa de construção é possível, mas um diretor de enfermagem em uma empresa de software é o tipo de combinação que aparece quando o gerador sorteia cada campo de forma independente.

O efeito em teste é que a busca por relevância passa a devolver resultados absurdos. Recrutadores filtram por cargo e por área, e um conjunto de teste incoerente produz resultados que ninguém consegue avaliar, porque não dá para saber se a busca está errada ou se o dado é que está.

Há também a questão das variações de nomenclatura. O mesmo trabalho aparece como analista de suporte, analista de atendimento e especialista em suporte ao cliente, e o sistema precisa reconhecer que são a mesma família. Um conjunto de teste útil inclui as variações, e não apenas o título mais comum. O resumo sobre cargos por setor serve como ponto de partida, e a página sobre competências e níveis trata da parte seguinte.

O que a formação acrescenta ao teste?

A formação tem uma estrutura mais regular do que a trajetória profissional, e é justamente por isso que ela esconde defeitos. Quase todo currículo traz instituição, curso e período, e o parser acerta esses três campos com facilidade. O problema está nas variações.

A primeira é a ausência de conclusão. Muitos candidatos declaram curso em andamento, e o campo de conclusão fica vazio. A segunda é a nomenclatura do grau, que varia entre países e entre instituições: o que é uma licenciatura em um lugar pode ser um bacharelado em outro, e as abreviações não são universais. A terceira é a dupla formação, com duas graduações no mesmo período, que costuma confundir o agrupamento por data.

Há ainda o curso técnico, a pós-graduação e a formação complementar, que o sistema precisa classificar em níveis diferentes sem que a regra de classificação transforme um curso curto em diploma. O resumo sobre registros de formação e graus cobre essas variações.

O que testar em competências e faixa salarial?

Competências parecem o campo mais fácil e são o mais subjetivo. Uma lista de habilidades sem nível não permite filtrar, e uma lista com nível sem escala compartilhada não permite comparar. O sistema precisa de uma taxonomia, e o conjunto de teste precisa exercitar os casos ambíguos: a competência que aparece em duas categorias, a que o candidato declarou como avançada e o teste de código classifica como básica, a que está obsoleta e continua na lista.

A faixa salarial tem uma armadilha de unidade. O valor precisa de moeda e de periodicidade, e a mesma quantia mensal e anual produz números diferentes por um fator de doze. Um sistema que armazena apenas o número perde a informação e passa a comparar alface com pedra. Vale testar também a conversão entre moedas, a faixa declarada como intervalo e o campo vazio, que é o caso mais comum de todos.

O resumo sobre salário, moeda e periodicidade aprofunda o tema, e o gerador de currículo desta página produz os registros usados nesses cenários.

Como testar o parseamento de arquivo?

O teste mais valioso de um sistema de recrutamento é o parseamento do arquivo enviado, e ele exige amostras em formatos diferentes. Um currículo em documento de texto com estrutura simples, um em formato paginado com duas colunas, um com cabeçalho e rodapé repetidos e um exportado de um modelo pronto exercitam caminhos distintos do mesmo parser.

Vale incluir arquivos com tabela, com caixa de texto, com imagem de texto e com acentuação, porque cada um desses elementos derruba uma classe de extrator. Um currículo escaneado como imagem testa o caminho de reconhecimento óptico, que costuma ser o mais frágil de todos.

A verificação também importa. Em vez de conferir se o arquivo foi aceito, confira se os campos extraídos correspondem ao que estava no arquivo. Um parser que não extrai nada e não gera erro passa em muitos testes superficiais. O resumo sobre amostras para o parser de currículo organiza esse conjunto.

Que cuidados de privacidade se aplicam?

Currículo é dado pessoal. Contém trajetória, formação, contato e, em muitos casos, informação sensível. Copiar currículos reais para o ambiente de teste é o erro mais comum nesse domínio, e a prática correta é usar registros sintéticos, que não pertencem a ninguém.

Além disso, a retenção precisa de regra. Um currículo enviado para uma vaga tem prazo de guarda, e o sistema deve descartá-lo quando o prazo termina. Um teste que verifica esse descarte é tão importante quanto o teste que verifica a extração. O resumo sobre retenção de dados em recrutamento trata dessas obrigações.

Vale lembrar também que a triagem automatizada é área sensível, e o conjunto de teste não deve ser construído de forma a reforçar viés. Um gerador que só produz um tipo de trajetória produz um sistema que só funciona para um tipo de candidato.

Como testar busca e filtro com esses registros?

Depois que o parser extrai os campos, o sistema precisa permitir que alguém encontre a pessoa certa. É aí que a qualidade do conjunto de teste aparece de novo, porque busca e filtro só podem ser avaliados contra um resultado esperado.

Monte uma amostra em que você sabe, de antemão, quantas pessoas deveriam aparecer em cada filtro. Quantos têm experiência em uma determinada tecnologia, quantos moram em uma região específica, quantos têm formação superior, quantos aceitariam trabalhar de forma remota. Com esses números anotados, o teste compara o que a busca devolve com o que deveria devolver.

Esse arranjo encontra uma classe de defeito que passa despercebida em teste manual: o filtro que ignora acentuação em um caso e não em outro, a busca que exige correspondência exata de cargo, a ordenação que muda entre a primeira e a segunda página de resultados. Nenhum desses problemas aparece quando alguém testa olhando a tela.

Vale incluir também o caso de currículo incompleto, em que o parser não conseguiu extrair um dos campos. O sistema deve excluir a pessoa dos resultados ou mostrá-la com a informação faltando? A decisão é de produto, e o teste existe para verificar se a implementação corresponde a ela.

Como variar idioma e localização nos registros?

Um sistema de recrutamento que opera em mais de um país recebe currículos em mais de um idioma, e isso afeta tanto o parser quanto a busca. Um currículo em português com o cabeçalho de formação em inglês é comum, e o extrator precisa lidar com as duas coisas no mesmo arquivo.

O conjunto de teste deve incluir nomes com acentuação, com caracteres não latinos e com sobrenomes compostos, além de cidades e instituições cujo nome tem grafia variável. A busca por nome é um caso especialmente traiçoeiro, porque a normalização que remove acentuação para comparar pode fazer dois nomes distintos colidirem.

As datas são o outro ponto de variação. Alguns currículos declaram o período como intervalo, outros apenas o ano de início e de término, e outros escrevem o mês por extenso. O sistema precisa converter tudo para uma representação única antes de calcular duração, e o teste deve cobrir cada uma dessas formas com o mesmo resultado esperado.

Por fim, teste a ordenação em idiomas diferentes. Ordenar nomes em português é uma coisa e ordenar nomes em turco é outra, porque as letras com e sem acento ocupam posições próprias no alfabeto local. Uma lista ordenada por regra genérica parece aleatória para quem lê no idioma do candidato.

Limites: currículo sintético não é candidato

Os registros produzidos são dados sintéticos, criados para exercitar software de recrutamento. Eles não pertencem a nenhuma pessoa, não correspondem a candidatos reais e não devem ser apresentados como se fossem currículos de gente de verdade em demonstração, em relatório ou em material comercial.

O uso pretendido é testar: verificar extração de campos, exercitar regras de linha do tempo, cobrir variações de nomenclatura, validar filtros de busca e conferir o comportamento do sistema diante de arquivo mal formado. Para completar a bateria com as telas do fluxo, a lista de casos de teste do formulário de candidatura cobre a parte que fica entre o cadastro e a triagem.

Continue lendo

Ferramentas populares e artigos de uso