If you have ever uploaded a resume to an applicant tracking system and wondered why a human never saw it, you already understand the black-box problem of AI hiring. Most resume-scoring tools hide their logic behind SaaS dashboards and polite rejection emails. HackerRank took a different route. Its Hiring Agent is open source, which means anyone can crack it open, trace the code, and see exactly how an LLM turns a PDF and a GitHub link into a number. One developer did exactly that. What they found is not a polished recruiting framework. It is a mirror showing us how easily automation codifies personal opinions.

Under the Hood

The pipeline is deceptively simple. A candidate’s PDF resume is converted to Markdown, then parsed into a rigid JSON structure with fields for work history, skills, education, and side projects. Python scripts shuttle the data from one stage to the next, but the actual thinking happens inside a chain of prompts. Each section gets its own prompt. The LLM reads the structured data, applies scoring rules written in plain English, and returns a grade.

This architecture matters. The heavy lifting is not happening in clever algorithms or training loops. It is happening in the wording of the prompts. Change a few adjectives in the instruction set, and the same engineer goes from a strong hire to a weak candidate. That makes the tool fragile. It also makes it honest. Most AI hiring vendors would never let you see the prompts. HackerRank’s prototype exposes the truth that resume scoring has always been about the rubric, not the code.

The Tyranny of the 35 Percent

The most striking bias hides in the scoring rubric. Open source contributions account for 35 percent of the total score. That is an enormous weight. To put it in perspective, a candidate’s entire work history, education, and skill set must compete with one slice of their extracurricular coding life for the other 65 percent.

The rules are even stricter than the weighting suggests. Personal GitHub repositories do not count. Maintaining your own library, no matter how useful, scores zero. The tool only rewards contributions to other people’s projects. The candidate must be a committer on someone else’s codebase to earn those points.

That preference carries real demographic weight. Engineers who maintain their own tools often do so because they solved a problem no one else was solving. They might also hold jobs that forbid external contribution, work in regions with fewer large open-source communities, or simply have family obligations that make unpaid coding after hours impossible. By writing the prompt this way, the tool does not measure raw engineering ability. It measures participation in a specific coding culture, then calls it objectivity.

When the Instructions Don't Land

The rubric also tries to reward startup experience. The prompt explicitly suggests giving extra points to founders and early-stage engineers. That sounds reasonable in theory. Startup veterans often wear many hats and ship under pressure. So the tester tried an experiment. They took a single resume and changed nothing except the most recent job title, running it through the agent three times with three different labels: Senior Java Engineer, Founding Engineer, and Co-founder / CTO.

The scores barely moved. The LLM essentially ignored the instruction.

This is one of the most important findings from the entire audit. It proves that a prompt rule is only a suggestion. Large language models are trained on vast corpora of text that contain their own stubborn biases about what signals quality. If the model’s training data associates prestige with certain titles, company names, or keywords rather than the phrase “founding engineer,” your carefully written instruction may simply bounce off. The prompt tells the model to care about startup titles, but the model has its own ideas, and it wins. That gap between human intent and machine behavior is dangerous when the output is a hiring score.

Points Without Purpose

Beyond the major weightings, the rubric is full of oddly specific micro-rules that feel less like data-driven decisions and more like someone’s late-night brainstorming session.

Um perfil no LinkedIn vale exatamente um ponto. Não a qualidade do perfil. Nem o número de recomendações ou a profundidade do histórico profissional. Simplesmente ter uma URL no currículo adiciona um único ponto ao total. Enquanto isso, ser um participante do Google Summer of Code vale cinco pontos. E se um candidato tiver repositórios forkados no GitHub, o agente ignora qualquer fork com menos de cinco forks próprios.

Cada uma dessas regras faz um julgamento de valor explícito disfarçado de um coeficiente silencioso. Por que a presença no LinkedIn vale um ponto, afinal? Isso sinaliza que um candidato sabe como preencher uma rede social, não que ele saiba projetar um sistema distribuído. Por que o GSoC vale cinco vezes mais que um link do LinkedIn? Talvez porque o autor do prompt respeite o programa. Esse respeito agora é uma política de contratação. E por que traçar a linha em cinco forks? Uma ferramenta com dez usuários pode resolver um problema de nicho crítico. Sob este sistema, ela poderia muito bem não existir.

Esses números não surgem de uma análise de regressão. Eles foram escolhidos por indivíduos. Uma pessoa decidiu que a participação em open source vale mais do que um terço do valor de um engenheiro. Outra pessoa decidiu que um perfil no LinkedIn vale 1 ponto. Quando você automatiza esses palpites, você lhes confere a autoridade de um software.

Todo Prompt é um Preconceito

A parte mais difícil de construir um agente de pontuação de currículos não é analisar PDFs ou chamar uma API. É decidir o que importa. Cada palavra em um prompt de pontuação é um julgamento de valor sobre o que faz um bom engenheiro. Projetos paralelos devem ter mais peso que o trabalho principal? O código público deve importar mais do que o trabalho em empresas privadas? Um perfil em rede social deve importar de alguma forma? Não existem respostas matematicamente corretas para essas perguntas. Existem apenas preferências culturais.

Quando uma equipe de recrutamento faz isso manualmente, pelo menos os vieses são distribuídos entre muitos revisores que podem discordar, calibrar e aprender. Quando um LLM faz isso, os vieses de um engenheiro de prompt se cristalizam em uma função repetível que roda em escala. A ferramenta não elimina a subjetividade. Ela a arquiva.

Use-o como um Espelho, não como um Filtro

O Hiring Agent da HackerRank é melhor compreendido como um protótipo. Parece um primeiro rascunho, que é exatamente o que é. Ele oferece uma visão inicial fascinante de como as ferramentas de contratação por IA são construídas, mas carece da calibração, testes e da diversidade de opiniões de uma organização de recrutamento real.

Se você está construindo tecnologia de contratação, estude-a cuidadosamente. Ela mostra o quão rápido regras arbitrárias se transformam em um controle de acesso automatizado. Se você é um candidato, lembre-se de que esses sistemas não são oráculos. Eles são planilhas disfarçadas de linguagem natural, e carregam as suposições de quem escreveu os prompts.

Até que essas ferramentas sejam testadas quanto ao viés tão rigorosamente quanto os engenheiros que elas julgam, elas devem informar a conversa humana, não substituí-la.