JobSort.ai

Back

A tilted scale with four glowing blocks labeled 35, 30, 25, and 10. The beam dips toward the lower numbers, illustrating HackerRank ATS scoring weighted away from production experienceA tilted scale with four glowing blocks labeled 35, 30, 25, and 10. The beam dips toward the lower numbers, illustrating HackerRank ATS scoring weighted away from production experience

In 2021, Harvard Business School and Accenture surveyed more than 2,250 executives across the US, UK, and Germany. Their finding, in their own words: “A large majority (88%) of employers agree, telling us that qualified high-skills candidates are vetted out of the process because they do not match the exact criteria established by the job description.” The researchers estimated that more than 27 million people in the US alone fell into this category. These were people willing and able to work, consistently excluded before a human ever reviewed their application.

Those same companies through many surveys say they cannot find qualified engineers.

Last month, one of the platforms sitting at the center of that contradiction open-sourced its code. HackerRank, which is used by more than 2,500 companies including over 25% of the Fortune 100, published the repository that powers their AI resume screener. It is called hiring-agent. It is MIT licensed. It is running on GitHub right now.

We read every template.

What follows is what the rubric actually rewards, what it penalizes, and what it cannot see at all. Each section includes what you can do about it. The last two are different. No optimization exists for those.

The Contributor Outscores the Creator#

The evaluation template assigns “HIGH PRIORITY” to contributions made to well-known open source repositories, specifically projects with over 1,000 GitHub stars. The logic is straightforward: if a project has significant community adoption, a merged contribution to it signals real technical credibility.

The trap is in what happens when you built the popular repository yourself.

If your GitHub profile shows you as the author of a 1,000-star project, the rubric reclassifies that work as a self-project. Your open source score is then capped. Contributing to something popular is worth substantially more than creating something popular. The template’s instruction is explicit:

resume_evaluation_criteria.jinja
When GitHub data shows all projects are 'self_project' type, open source
score MUST be 10 points or less
text

The same rule appears a second time later in the same file, in case the model missed it the first time:

resume_evaluation_criteria.jinja
For candidates with only personal GitHub repositories, open source score
should NEVER exceed 10 points
text

Ten points, out of a possible thirty-five, the cap on just one of four weighted categories that make up the rubric (the full point breakdown is below).

The result is a scoring system where a single pull request merged into a framework you did not write outscores being the person who wrote the framework. This is not a subtle imbalance. It is encoded directly in the template’s priority instructions.

What you can do about it: if your strongest work is self-authored, add two or three meaningful contributions to external repositories above the star threshold. The rubric does not require large contributions. It requires that they exist and that the project meets the popularity criterion. A genuine PR to a well-known library moves your open source signal out of the self-project cap and into the category the rubric actually rewards.

Squashed Commits Read as Low Commits#

The GitHub enrichment layer pulls your repositories and enriches your evaluation with signals from your actual code history. It selects projects for evaluation using a commit count threshold. Projects where your author commit count falls below the minimum are classified as minimal involvement and excluded from the evaluation before scoring begins. They do not score low. They are not considered.

Somewhere in the process of building this screener, HackerRank decided what a meaningful GitHub contribution looks like and encoded it as a raw commit count. The threshold landed wherever it landed. Whether that took ten minutes of deliberation or ten days does not change what it does: it reads professional-grade commit hygiene as inactivity.

The template’s own language:

github_project_selection.jinja
**ABSOLUTE REQUIREMENT**: You must ONLY select projects where the
author_commit_count is 4 or higher. Projects with 1, 2, or 3 commits
indicate minimal involvement and should NEVER be selected.
text

Four commits. Not a soft signal weighed against other factors, but a hard filter applied before the model ever sees the project.

The issue stems from one of the most common practices in professional engineering: squashing commits before merging to main. When you develop a feature across a week of commits, then squash the branch into a single clean commit on merge, you are keeping the main branch readable and the history meaningful. You are doing what most senior engineers do by default.

The screener counts one commit on the main branch. A week of development reads as minimal involvement. The project is removed from your portfolio before evaluation starts.

What you can do about it: on personal and public repositories, make atomic commits directly to main rather than squashing feature branches. If you are starting a new public project, seed it with a few commits before you start squashing. Meet the number. It was not arrived at through careful research into what commit counts actually signal about a developer. It is a line drawn somewhere, and you can step over it. For existing repositories where the history is already squashed, the damage is done. Focus instead on making sure the README and project description clearly communicate scope and impact, since the evaluation model does read those.

65 Points for Free Time, 25 for Production Work#

Before the specific rules, the weights.

The rubric runs on a 100-point base scale, split across four categories. Work and production experience, meaning the systems you have shipped, maintained, and scaled in a professional context, gets less than a quarter of it.

CategoryPoints
Open source contributions35
Personal / self-directed projects30
Work and production experience25
Technical skills10
Base total100
Bonus (maximum)+20

120 is the highest the rubric allows, and it says so in those exact terms. There is no equivalent floor on the other side. Deductions are itemized per project and stack, and unlike the bonus’s explicit 20-point cap, the template never states a minimum.

Sixty-five points go to what you built in your spare time. Twenty-five go to what you were paid to build and held accountable for.

This is not a subtle design choice. A prolific open source contributor with limited professional experience can outscore a senior engineer with a decade of production systems under their name. The rubric does not weigh professional accountability, does not reward leading teams, and does not distinguish between a side project and a system processing real transactions for real users. The decade you spent shipping things in production is worth a quarter of the score. The weekend projects of someone who has not yet held a job are worth twice that.

This one is structural. You cannot retroactively manufacture years of public commit history. Acknowledging that is more useful than pretending a resume tweak closes the gap.

What is controllable on the production side: the rubric does reward how production experience is framed. Scale matters. Systems with quantifiable scope score higher than generic role descriptions. Startup experience carries bonus weight in the evaluation criteria. Outcomes expressed in measurable terms perform better than responsibilities listed as duties. This will not close the structural gap, but it gets you everything the rubric will actually give you for the career you actually had.

What the Rubric Cannot See#

This section covers three blind spots in the pipeline. One of them you can still fix. The other two you cannot.

If It’s Not on GitHub, It Doesn’t Exist#

The GitHub enrichment step, which feeds a significant share of the open source and project scoring, runs through a single extraction module that pulls exclusively from GitHub.

If your open source work lives on GitLab, Bitbucket, a self-hosted Gitea instance, or any platform other than GitHub, the enrichment layer has no mechanism to find it. The module does not attempt other platforms. It extracts a GitHub username from the resume profiles field, queries the GitHub API, and processes what it finds. Nothing else is queried.

This is not a failure to handle an edge case. It is an architectural decision that treats GitHub as the only signal worth reading. All meaningful engineering work happens on one platform, owned by Microsoft, and anything else does not count. That is the assumption baked into the code.

For engineers whose work lives on GitLab, a private server, or anywhere else, the most heavily weighted scoring categories have no data to work with.

What you can do about it: mirror your most significant repositories to GitHub. The mirrored repository does not need to be actively maintained there. It needs to exist, have a README that accurately describes the project, and show enough commit activity to clear the threshold in the project selection template. This is a one-time action with a permanent effect on what the enrichment layer can score.

What Doesn’t Fit the Six Categories#

The pipeline extracts resume content into exactly six structured categories: basics, work, education, skills, projects, and awards. These are the only sections the extraction templates are built to read. Anything outside them is not misclassified. It is dropped before the scoring model ever sees it.

If your resume includes a section for patents, the field for it exists in the system’s data model. It sits there alongside work history and education, pre-declared and empty. No template is called to fill it. No extraction pass covers it. The slot stays empty while the evaluation runs without it. Publications, conference talks, certifications, security clearances. None of these map to the six sections the pipeline is actually built to read. An engineer with three published patents and a top-secret clearance does not score poorly on open source. They score as though those sections were never there, because to the pipeline that matters, they were not.

There is no resume formatting that routes a patent into a category the rubric can score. The system has a slot for it and never fills it.

The dead link problem works the same way. The rubric applies point deductions for projects that do not have active links. It cannot tell the difference between a link that was never finished and one that simply outlived its infrastructure. Maybe the startup shut down five years after you left. Maybe the Heroku deployment spun down when the free tier ended. Maybe the domain lapsed on a project that shipped and ran in production for three years. All of these produce the same deduction as a broken link on an unfinished weekend project. The system can check whether a URL responds. It cannot know the history of why it does not.

Confirmed, and it is worse than a single deduction. The template scores a dead link twice, through two separate mechanisms. Under PROJECT LINK REQUIREMENTS:

resume_evaluation_criteria.jinja
**INACTIVE LINKS**: Projects with broken links should receive 20-30%
lower scores
text

Under DEDUCTIONS, a second pass on the same project:

resume_evaluation_criteria.jinja
-1 to -2 points for each project with broken or inactive links
text

The same lapsed domain or spun-down Heroku instance gets penalized on both passes.

No optimization closes the last two of these gaps. The patents section will continue to be ignored because the system has a slot for it and never fills it. The dead link deduction will continue to fire because the system cannot tell a discontinued project from an unfinished one.

The Score You Can’t Optimize Past#

Even working through every section above does not close it.

If your career has been built in professional production environments, proprietary systems, closed-source enterprise products, or internal tooling that never touched a public repository, you still hit a structural gap in the two largest scoring categories. Open source and self-project history worth 65 points cannot be retroactively manufactured, and the weighting unfairly punishes your experience regardless of how good that experience actually was.

This is where mass applying stops making sense.

Unless you work through every optimization above, your score on this rubric settles around 80 out of 120, and 80 does not clear most companies’ ATS cutoff. Sending that score to more companies running the same rubric does not fix it. It replicates the same outcome at higher volume. HackerRank alone runs across more than 2,500 companies. A single flaw in how your profile maps to their scoring model is not one rejection. It is a pattern that shows up everywhere that model is deployed, every time, until something about the profile or the targeting changes.

More applications is not the answer to a structural problem. Better targeting is. In the age of ATS, mass-applying was never the answer. You need applications catered specifically to you to get across that line.

Better Targeting Is a Product#

The only lever left after the optimization ceiling is which jobs you apply to in the first place. A candidate who is a strong fit for a specific role can absorb the scoring gap that the open source weighting creates. A candidate who is a marginal fit cannot. The checklist above gets you as close to the ceiling as the rubric will allow. After that, the question is whether the role is close enough to your actual profile that the gap stops mattering.

That is exactly the question JobSort is built to answer. Not a tool to beat the rubric, and not a tool for applying faster or more often. A tool that tells you, before you submit anything, which roles you are close enough to that this entire checklist stops being necessary.

Article from: Hidden Workers: Untapped Talent, Harvard Business School Project on Managing the Future of Work and Accenture, September 2021

How HackerRank's Screener Values Your Career
https://jobsort.ai/blog/how-hackerranks-screener-values-your-career
Author JobSort.ai
Published at June 24, 2026