Prioritize resumes and GitHub activity for human review
Imagine having to choose which of tens of thousands of resumes to read first. This tool extracts information from PDF resumes and analyzes GitHub activity to score and rank applications. While humans make the final hiring decision, it reduces the burden of the initial screening step by filtering out lower-ranked candidates.
The reality of HackerRank intern hiring and this tool's role
Because it is difficult for humans to read all of this volume, the process excludes only applicants whose resume scores fall below a baseline and sends the rest to human review. The baseline is intentionally set very low, so most applicants pass this automatic filter. Although AI interview tools have recently been released, meaning candidates are no longer evaluated solely on resumes, this tool is still used to improve efficiency in the initial screening stage.
How resume and GitHub data are analyzed
The tool first converts PDF resumes into text and uses an LLM to extract basic information, experience, education, skills, projects, and awards into structured data. It finds the GitHub profile included in the resume, retrieves that user's repositories, and has the LLM select seven projects with meaningful contributions. It then applies evaluation criteria for the specified job role to calculate scores, justifications, bonus points, and deductions for each item. All processes are handled through Ollama running locally or cloud-based Gemini and OpenAI models.
Defining evaluation criteria by job role
Evaluation criteria are managed in folder units called 'Roles'. Each role defines score weights and caps in a role.json file and contains specific evaluation instructions in a criteria.jinja template. To add a new job role, you create the folder structure using the --init-role command and then modify the evaluation criteria and prompts to fit the position. This allows the same resume to receive different scores depending on the job role.
Execution environment and model selection
Python 3.11 or higher is required, and dependencies are installed via pip. You must choose one LLM backend: Ollama running locally, or cloud APIs for Gemini or OpenAI. The default setting is the gemma4:latest model running locally, allowing testing without a cloud API key. However, actual HackerRank intern evaluations use top-tier Gemini models, and this repository includes only demo settings. Setting GITHUB_TOKEN can increase GitHub API call limits.
What you must know before using it
This tool is not an ATS (Applicant Tracking System) and is not directly used in HackerRank's public hiring screening. It is also not a product sold to HackerRank customers. Due to LLM non-determinism, scores may vary across multiple runs for the same resume, and a security vulnerability has been noted where hidden text in PDFs can be used to inflate scores. Therefore, the tool's scores are for reference only and should not be used as the sole basis for final hiring decisions. It is released under the MIT license, allowing free modification and use.