Dependencies for Running the Hiring-Agent Project: Complete Setup Guide

The Hiring-Agent project requires Python 3.11 or newer and nine pinned Python packages—including PyMuPDF, Ollama, and Pydantic—defined in requirements.txt, plus environment variables configured via .env.example to run the resume scoring pipeline.

The interviewstreet/hiring-agent repository is a Python-based resume evaluation pipeline that extracts structured data from PDFs and scores candidates using local or cloud-based LLMs. Understanding the dependencies for running the hiring-agent project ensures you can install the correct versions of libraries for PDF parsing, API communication, and model interaction.

Core Runtime Requirements

The application is built as a pure Python 3.11+ application with strict version pinning to ensure reproducible behavior across environments.

Python Version

The project requires Python 3.11 or newer, as specified in the .python-version file at the repository root. This version ensures compatibility with the type hints and async features used throughout the codebase.

Dependency Management

All production and development dependencies are centralized in requirements.txt at the repository root. You must install these using pip before executing any pipeline scripts.

Production Dependencies Explained

The requirements.txt file pins nine critical packages that handle document processing, LLM communication, and data validation:

  • PyMuPDF 1.26.3 — Parses PDF files and extracts text/structure in pymupdf_rag.py
  • pymupdf4llm 0.0.27 — Converts PDF content into LLM-compatible prompts and markdown
  • ollama 0.5.1 — Client library for connecting to local Ollama LLM servers
  • google-generativeai 0.4.0 — Official SDK for Google Gemini API integration (optional backend)
  • pydantic 2.11.7 — Defines data schemas and validation for the JSON-Resume model in models.py
  • requests 2.32.4 — HTTP client powering GitHub profile fetching in github.py and LLM API wrappers
  • Jinja2 3.1.6 — Renders prompt templates stored in prompts/templates/
  • python-dotenv 1.0.1 — Loads runtime configuration from .env files

Development Dependencies

  • black 25.9.0 — Code formatter for maintaining consistent style across the codebase (development convenience only)

Installation Guide

Follow these steps to install all dependencies for running the hiring-agent project locally:

  1. Clone the repository and navigate to the project directory:
git clone https://github.com/interviewstreet/hiring-agent
cd hiring-agent
  1. Create and activate a Python virtual environment:
python -m venv .venv
source .venv/bin/activate

On Windows systems, use .venv\Scripts\activate instead.

  1. Install the pinned dependencies:
pip install -r requirements.txt
  1. Configure environment variables:
cp .env.example .env

Edit the .env file to set LLM_PROVIDER=ollama (or gemini), DEFAULT_MODEL=gemma3:4b, and other required variables.

Configuration Requirements

Beyond Python packages, the application requires specific environment variables defined in .env.example. Critical variables include:

  • LLM_PROVIDER — Set to ollama or gemini
  • DEFAULT_MODEL — Specifies the model name (e.g., gemma3:4b)
  • GEMINI_API_KEY — Required when using Google Gemini backend
  • GITHUB_TOKEN — Enables GitHub profile enrichment in github.py

Integration with Source Files

The dependencies wire directly into specific modules:

  • pymupdf_rag.py imports PyMuPDF and pymupdf4llm to convert resume PDFs to markdown
  • github.py uses the requests library to fetch candidate repositories
  • models.py relies on Pydantic for schema validation of extracted resume data
  • score.py orchestrates the pipeline using Jinja2 templates from prompts/templates/

Summary

  • Python 3.11+ is mandatory as specified in .python-version
  • Install nine pinned packages via requirements.txt including PyMuPDF, Ollama, and Pydantic
  • Configure runtime settings by copying .env.example to .env
  • Execute the pipeline with python score.py /path/to/resume.pdf after dependencies are installed

Frequently Asked Questions

What Python version does hiring-agent require?

The project requires Python 3.11 or newer, as defined in the .python-version file. This ensures compatibility with modern type hints and library features used in the codebase.

Is Ollama required or can I use other LLM providers?

Ollama is optional. The ollama package (0.5.1) supports local model hosting, but you can alternatively use google-generativeai (0.4.0) for Gemini by setting LLM_PROVIDER=gemini in your .env file.

Why does the project need both PyMuPDF and pymupdf4llm?

PyMuPDF (1.26.3) handles low-level PDF text extraction, while pymupdf4llm (0.0.27) provides higher-level utilities specifically for converting PDF content into LLM-ready prompts and structured markdown formats.

Where are the prompt templates stored and what renders them?

Prompt templates live in prompts/templates/ and are rendered using Jinja2 (3.1.6), allowing dynamic injection of candidate data before sending to the LLM backend.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →