PathFinder analyzes your codebase, git commits, and optional supporting documents (research papers, job descriptions) to generate a personalized interview preparation guide — a prep.md that reflects what you actually built.
The output is a structured interview flow: a grounded candidate intro, verified Q&A organized by topic, coaching notes written from the interviewer's perspective, and natural conversational transitions between topics.
This project creates a personalized interview prep guide from your code and commit history. It generates a natural introduction, simulates realistic interview questions based on your actual work, verifies every technical claim against your repository, refines the content for clarity and flow, and compiles everything into a clean prep.md with coaching notes and organized sections.
Ingestion → Scope → Preprocessing → Intro Generator → Question Tree → Content Optimizer → Prep Renderer
Ingestion takes a GitHub URL or zip archive, records the candidate's scope of work (full repo, specific commits, or topic), and optionally copies a research paper, job description, and custom instructions.
Scope filters the repository to what the candidate actually touched — commit history by author, a named topic, or the full codebase — and builds a per-file purpose map for downstream grounding.
Preprocessing packs the scoped code into structured XML using repomix and converts supporting documents to Markdown, so all the LLM calls downstream get consistent input.
Intro Generator produces the candidate intro, project profile, and topic directions. It runs a 4-stage hybrid leak detection pipeline across all public-facing text and iteratively refines anything that exposes implementation identifiers.
Question Tree runs the stateful interview simulation. After each turn it evaluates which topics can naturally be raised next based on what the candidate has revealed. It tracks intent level progression per topic and verifies citations before accepting any answer.
Content Optimizer applies four optimization passes with semantic equivalence guards. If the guard rejects a rewrite, the original verified text is kept and the rejection is logged.
Prep Renderer takes the flat optimized node list, groups it into typed sections, and assembles the final document with profile cards, coaching blockquotes, and transitions.
- Python 3.10+
- Node.js & Repomix (
npm install -g repomix) — required for code packing - API Key:
GEMINI_API_KEYorDEEPSEEK_API_KEYset in your environment
pip install -r requirements.txt
npm install -g repomixRun the TUI:
python3 orchestrator.pyOr run headless (useful for scripting or testing):
python3 orchestrator.py --headlessIf a run was interrupted partway through, resume it without re-running completed stages:
import orchestrator
orchestrator.resume_pipeline("<run_id>")# Unit tests
python3 -m pytest tests/
# Docstring and comment audit
python3 scripts/comment_audit.py
# Static analysis
pylint modules/ orchestrator.py tui_app.py- More LLM providers.
- A web UI.
- Faster runs.
- Deeper code analysis.