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.pyand LLM API wrappers - Jinja2 3.1.6 — Renders prompt templates stored in
prompts/templates/ - python-dotenv 1.0.1 — Loads runtime configuration from
.envfiles
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:
- Clone the repository and navigate to the project directory:
git clone https://github.com/interviewstreet/hiring-agent
cd hiring-agent
- Create and activate a Python virtual environment:
python -m venv .venv
source .venv/bin/activate
On Windows systems, use .venv\Scripts\activate instead.
- Install the pinned dependencies:
pip install -r requirements.txt
- 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 toollamaorgeminiDEFAULT_MODEL— Specifies the model name (e.g.,gemma3:4b)GEMINI_API_KEY— Required when using Google Gemini backendGITHUB_TOKEN— Enables GitHub profile enrichment ingithub.py
Integration with Source Files
The dependencies wire directly into specific modules:
pymupdf_rag.pyimports PyMuPDF and pymupdf4llm to convert resume PDFs to markdowngithub.pyuses therequestslibrary to fetch candidate repositoriesmodels.pyrelies on Pydantic for schema validation of extracted resume datascore.pyorchestrates the pipeline using Jinja2 templates fromprompts/templates/
Summary
- Python 3.11+ is mandatory as specified in
.python-version - Install nine pinned packages via
requirements.txtincluding PyMuPDF, Ollama, and Pydantic - Configure runtime settings by copying
.env.exampleto.env - Execute the pipeline with
python score.py /path/to/resume.pdfafter 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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →