概要
Hiring Agent は履歴書 PDF を解析し、大規模言語モデルを用いて構造化データを抽出し、GitHub のシグナルと組み合わせて、公平で解釈可能なスコアを出力します。完全にローカルで実行(Ollama)または Google Gemini の使用をサポートしています。
README プレビュー
# Hiring Agent\n\nResume-to-Score pipeline that extracts structured data from PDFs, enriches with GitHub signals, and outputs a fair, explainable evaluation.\n\n\n \n \n \n \n \n \n \n \n \n\n\n---\n\n## Contents\n\n- [Overview](#overview)\n- [Architecture](#architecture)\n- [Installation and Setup](#installation-and-setup)\n - [Prerequisites](#prerequisites)\n - [Quick setup with pip](#quick-setup-with-pip)\n - [Ollama models](#ollama-models)\n- [Configuration](#configuration)\n- [How it works](#how-it-works)\n- [CLI usage](#cli-usage)\n- [Directory layout](#directory-layout)\n- [Provider details](#provider-details)\n- [Contributing](#contributing)\n- [License](#license)\n\n---\n\n## Overview\n\nHiring Agent parses a resume PDF to Markdown, extracts sectioned JSON using a local or hosted LLM, augments the data with GitHub profile and repository signals, then produces an objective evaluation with category scores, evidence, bonus points, and deductions. You can run fully local with Ollama or use Google Gemini.\n\n---\n\n## Architecture\n\n\n\n\n\n**Flow**\n\n1. `pymupdf_rag.py` converts PDF pages to Markdown-like text.\n2. `pdf.py` calls the LLM per section using Jinja templates under `prompts/templates`.\n3. `github.py` fetches profile and repos, classifies projects, and asks the LLM to select the top 7.\n4. `evaluator.py` runs a strict-scored evaluation with fairness constraints.\n5. `score.py` orchestrates everything end to end and writes CSV when development mode is on.\n\n\n\n\n**Key modules**\n\n- `models.py`\n Pydantic schemas and LLM provider interfaces.\n\n- `llm_utils.py`\n Provider initialization and response cleanup.\n\n- `transform.py`\n Normalization from loose LLM JSON to JSON Resume style.\n\n- `prompts/`\n All Jinja templates for extraction and scoring.\n\n\n\n\n\n---\n\n## Installation and Setup\n\n### Prerequisites\n\n- **Python 3.11+**\n\n The repository pins `.python-version` to 3.11.13.\n\n- **One LLM backend** (either of