TopGit
GitHub Repo Review

Hiring Agent: An AI Resume Screening Agent in Python

interviewstreet/hiring-agent

Hiring Agent is an AI resume screening agent from HackerRank that runs a resume PDF through a scoring pipeline: it extracts structured data, pulls in GitHub activity, and returns category scores backed by evidence. You can run it fully local with Ollama or against Google Gemini, and it writes a CSV of evaluations when development mode is on.

HHiring Agent: An AI Resume Screening Agent in Python — open-source GitHub repository preview
Quick verdict

Reach for Hiring Agent if you want a self-hosted, explainable way to turn resumes into structured scores you control — it runs locally on Ollama, shows evidence and deductions per category, and folds in GitHub activity. Skip it, or keep a human firmly in the loop, if you'd treat the score as a hiring decision: any automated resume screener can absorb bias from its model and prompts, and this is a young project with no public accuracy or fairness track record.

Stars
★ 0
Forks
⑂ 0
Language
License
See repository
Topic
Updated
Jul 2026
Homepage
GitHub

The problem it solves

Screening a stack of resumes by hand is slow and inconsistent, and pasting each PDF into a chatbot loses structure and leaves no audit trail. Hiring Agent exists to make that first pass repeatable: it converts a resume PDF into structured JSON, scores it against fixed criteria, and records the evidence behind each number so a reviewer can see why a candidate landed where they did.

What is it?

Hiring Agent is an open-source (MIT) AI resume screening agent written in Python that runs a resume from PDF to score. It uses PyMuPDF to convert the PDF to Markdown-like text, calls an LLM per section with Jinja templates to build a JSON Resume object, enriches that with GitHub profile and repo signals, then runs an evaluator that assigns category scores — open_source, self_projects, production, and technical_skills — plus bonus points, deductions, and an explanation. It backs either local Ollama models or Google Gemini.

Why it's getting attention

Automated hiring is contentious, and an open-source take on it that you can read and run yourself is unusual — most resume-screening tools are closed SaaS. This one comes from HackerRank, runs fully local so resumes never leave your machine, and had picked up around 5,500 stars at the time of writing, which points to real interest in a transparent alternative.

How this repository's GitHub stars have grown over time. Source: star-history.com.View the star history

Key features

  • PDF-to-JSON extraction: PyMuPDF converts the resume to text, then an LLM fills a JSON Resume schema section by section (basics, work, education, skills, projects, awards)
  • GitHub enrichment: pulls the candidate's profile and repos and asks the LLM to pick exactly 7 projects above a minimum author-commit threshold
  • Category scoring in evaluator.py: open_source, self_projects, production, and technical_skills, each with bonus points and deductions
  • Evidence and explanations attached to each score, not just a bare number
  • Runs local via Ollama or hosted via Google Gemini, switched with one env var (LLM_PROVIDER)
  • Development mode caches intermediate JSON and appends every run to resume_evaluations.csv

Best use cases

  • Running a consistent first-pass screen over a batch of resumes for a technical role
  • Scoring engineering candidates partly on real GitHub activity instead of self-reported skills
  • Producing an explainable score with evidence a human recruiter can review and override
  • Keeping resume data on-premise by running the whole pipeline on local Ollama models

How to install / try

Clone the repo, create a Python 3.11+ virtualenv, and `pip install -r requirements.txt`. Then `cp .env.example .env` and set `LLM_PROVIDER` to `ollama` or `gemini`. For local runs, install Ollama, run `ollama serve`, and pull a model such as `ollama pull gemma3:4b`; for Gemini, set `GEMINI_API_KEY`. An optional `GITHUB_TOKEN` raises GitHub API rate limits.

How to use

Run the whole pipeline on one file: `python score.py /path/to/resume.pdf`. It extracts the PDF, fetches GitHub repos if it finds a profile in the resume, prints a readable report of category scores with evidence, and — when `DEVELOPMENT_MODE=True` in config.py — caches intermediate JSON under `cache/` and appends a row to `resume_evaluations.csv`. Batch processing beyond looping the CLI yourself is not clearly documented.

Strengths

  • Self-hostable end to end — with Ollama, no resume data leaves your machine
  • Scores come with evidence, bonus points, and deductions, so a number is traceable to a reason
  • Provider-agnostic: swap between local Ollama and Google Gemini with one env var
  • Uses real GitHub activity as a signal, not just the resume's own claims
  • MIT-licensed, readable Python, so you can inspect and change the scoring rules

Limitations & risks

  • Automated resume scoring can encode bias from the underlying LLM and its scoring prompts; a score should inform a human and never be the sole hiring decision — treat the 'fair' framing in the README as a goal, not a guarantee
  • Evaluation quality is only as good as the model behind it; a small local model like gemma3:1b will score very differently from Gemini, and there is no published accuracy or fairness benchmark
  • It needs an LLM backend you set up yourself — either a running Ollama install with a pulled model, or a Google Gemini API key
  • GitHub enrichment assumes the candidate lists a GitHub profile with public repos; strong candidates without one get no credit from that stage
  • Young project with a narrow CLI — batch runs, a stable API, and integration hooks aren't clearly documented
View on GitHub

Alternatives

Resume-Matcher — open-source tool that scores a resume against a specific job description rather than general criteriaLangChain — build your own resume-evaluation pipeline with full control over the prompts and scoring logicDify — assemble an LLM scoring workflow visually if you'd rather not write the orchestration by hand

Who should try it — and who should skip

Engineering hiring teams and recruiters who want a transparent, self-hosted first pass on technical resumes and are willing to keep a human making the actual call. It fits people comfortable running Python and a local LLM who value seeing the evidence behind a score. It's a poor fit if you want a turnkey ATS, need a proven-unbiased scorer, or plan to auto-reject candidates on the number alone.

Frequently asked questions

What is Hiring Agent?

Hiring Agent is an open-source AI resume screening agent from HackerRank that converts a resume PDF into structured data, enriches it with GitHub activity, and produces category scores with evidence. It runs on local Ollama models or Google Gemini.

Is automated resume scoring fair?

The README frames the evaluation as fair and explainable, and it does attach evidence and deductions to each score. But any LLM-based scorer can inherit bias from its model, so the output should support a human reviewer rather than replace one.

Do I need an API key to run it?

Not necessarily. You can run fully local with Ollama and a pulled model like gemma3:4b, or set GEMINI_API_KEY to use Google Gemini instead. A GitHub token is optional and only raises API rate limits.

How does it use GitHub data?

It extracts a GitHub username from the resume, fetches the profile and repositories, and asks the LLM to select exactly 7 projects above a minimum author-commit threshold, favoring meaningful contributions, then folds that into the score.

Source & attribution

Based on the official interviewstreet/hiring-agent GitHub repository, including its README and project metadata.

Back to TopGit