How btseytlin/hr-breaker works
HR-Breaker turns resume material and a job posting into a tailored, validated PDF, through either the web UI or CLI. The main path parses the job, generates an optimized resume, runs filters and reviewer feedback through an iteration loop, then renders and stores the result. The product also supports multi-document profiles and job-matched synthesis. The README documents these capabilities; some subsystem links below are therefore documented rather than verified from sampled implementation.
Main entry points: server.py Web API · orchestration.py Optimization loop · profile_store.py Profile archive · profile_retrieval.py Profile ranking and synthesis
Components 22
User entry
- Web UI
src/hr_breaker/static/js/app.js - Command line
src/hr_breaker/cli.py - Web API
src/hr_breaker/server.py
Optimization and validation
- Optimization loop
src/hr_breaker/orchestration.py - Job parser
src/hr_breaker/agents/job_parser.py - Resume optimizer
src/hr_breaker/agents/optimizer.py - Filter registry
src/hr_breaker/filters/registry.py - Keyword validation
src/hr_breaker/filters/keyword_matcher.py - Visual and ATS review
src/hr_breaker/filters/llm_checker.py - Combined reviewer
src/hr_breaker/agents/combined_reviewer.py
Profiles and retrieval
- Profile archive
src/hr_breaker/services/profile_store.py - Profile documents
src/hr_breaker/models/profile.py - Document extraction
src/hr_breaker/services/extraction_worker.py - Profile ranking and synthesis
src/hr_breaker/services/profile_retrieval.py - Lexical, vector, snippets, merger
src/hr_breaker/services/retrieval
Document services
- Job posting scraper
src/hr_breaker/services/job_scraper.py - PDF input parser
src/hr_breaker/services/pdf_parser.py - Resume renderer
src/hr_breaker/services/renderer.py - Generated PDF storage
src/hr_breaker/services/pdf_storage.py - LLM providers
src/hr_breaker/services/llm_providers.py
Other components
- Resume user
- LLM service
Connections 26
- Resume user → Web UI: submits resume
README.md - Resume user → Command line: submits inputs
README.md - Web UI → Web API: calls API
- Command line → Optimization loop: starts optimization
- Web API → Optimization loop: starts optimization
src/hr_breaker/server.py - Web API → Profile archive: manages profiles
src/hr_breaker/server.py - Web API → Generated PDF storage: lists PDFs
src/hr_breaker/server.py - Web API → Job posting scraper: fetches job URL
- Optimization loop → Job parser: parses job text
src/hr_breaker/orchestration.py - Optimization loop → Resume optimizer: generates resume
src/hr_breaker/orchestration.py - Optimization loop → Filter registry: loads filters
src/hr_breaker/orchestration.py - Filter registry → Keyword validation: registers filter
src/hr_breaker/filters/registry.py - Filter registry → Visual and ATS review: registers filter
src/hr_breaker/filters/registry.py - Visual and ATS review → Combined reviewer: requests review
src/hr_breaker/filters/llm_checker.py - Optimization loop → Resume renderer: renders PDF
src/hr_breaker/orchestration.py - Resume renderer → Generated PDF storage: stores output
- Resume optimizer → LLM providers: uses configured model
- LLM providers → LLM service: sends model requests
- Profile archive → Profile documents: stores documents
src/hr_breaker/services/profile_store.py - Profile archive → PDF input parser: parses PDF input
src/hr_breaker/services/profile_store.py - Profile archive → Document extraction: extracts document data
src/hr_breaker/services/profile_store.py - Web API → Document extraction: queues extraction
src/hr_breaker/server.py - Profile ranking and synthesis → Lexical, vector, snippets, merger: delegates scoring and synthesis
src/hr_breaker/services/profile_retrieval.py - Profile ranking and synthesis → Keyword validation: checks keywords
src/hr_breaker/services/profile_retrieval.py - Web API → Profile ranking and synthesis: ranks profile documents
src/hr_breaker/server.py - Profile ranking and synthesis → Optimization loop: supplies synthesized source