How devbjack/bismillah-fix-resume-reviewer works
Resume Reviewer is a local HR application for extracting job requirements, reviewing them, batch-scoring resume PDFs, and inspecting ranked applicants with requirement probabilities and evidence. HR uploads a job PDF, confirms extracted must-have/nice-to-have requirements, then uploads resumes; a background worker extracts text, retrieves relevant passages, asks a local LLM for match probabilities, scores applicants, and saves results for review and export. The graph follows documented capabilities and indexed imports; unsampled API, extraction, and UI internals are represented at their source paths without asserting unshown call details.
Main entry points: api.ts Typed API client · main.py Runtime wiring · api.py HTTP API · JobPage.tsx Job workspace
Components 24
HR interface
- Job listing
frontend/src/pages/JobsPage.tsx - Job workspace
frontend/src/pages/JobPage.tsx - Requirements and upload
frontend/src/components/SetupView.tsx - Requirements editor
frontend/src/components/RequirementsEditor.tsx - Resume upload
frontend/src/components/ResumeUpload.tsx - File drop
frontend/src/components/FileDrop.tsx - Applicant ranking
frontend/src/components/ApplicantList.tsx - Job analytics
frontend/src/components/Overview.tsx - Evidence review
frontend/src/components/ApplicantReview.tsx - Typed API client
frontend/src/api.ts
Application entry
- HTTP API
backend/app/api.py - Runtime wiring
backend/app/main.py
Review workflow
- Scoring worker
backend/app/worker.py - PDF text extraction
backend/app/pdf_text.py - Requirement extraction
backend/app/req_extract.py - Resume review pipeline
backend/app/pipeline.py - Section chunking
backend/app/chunker.py - Hybrid retrieval
backend/app/retriever.py - LLM decision
backend/app/decider.py - Weighted scoring
backend/app/scorer.py
Job data
- SQLite store
backend/app/store.py
Other components
- HR user
- Local Ollama
- Embedding model
Connections 37
- HR user → Job listing: manages jobs
frontend/src/pages/JobsPage.tsx - HR user → Requirements and upload: configures review
README.md - HR user → Resume upload: uploads resumes
README.md - Job listing → Typed API client: lists and creates
frontend/src/pages/JobsPage.tsx - Job workspace → Typed API client: loads job data
frontend/src/pages/JobPage.tsx - Job workspace → Applicant ranking: renders ranking
frontend/src/pages/JobPage.tsx - Job workspace → Evidence review: renders details
frontend/src/pages/JobPage.tsx - Job workspace → Job analytics: renders analytics
frontend/src/pages/JobPage.tsx - Job workspace → Requirements and upload: renders setup
frontend/src/pages/JobPage.tsx - Requirements and upload → Requirements editor: edits requirements
frontend/src/components/SetupView.tsx - Requirements and upload → Resume upload: uploads resumes
frontend/src/components/SetupView.tsx - Resume upload → File drop: accepts files
frontend/src/components/ResumeUpload.tsx - Requirements editor → Typed API client: saves requirements
frontend/src/components/RequirementsEditor.tsx - Resume upload → Typed API client: sends resumes
frontend/src/components/ResumeUpload.tsx - Applicant ranking → Typed API client: loads applicants
frontend/src/components/ApplicantList.tsx - Job analytics → Typed API client: loads summary
frontend/src/components/Overview.tsx - Evidence review → Typed API client: loads evidence
frontend/src/components/ApplicantReview.tsx - Typed API client → HTTP API: requests data
frontend/src/api.ts - Runtime wiring → HTTP API: creates app
backend/app/main.py - Runtime wiring → Scoring worker: starts worker
backend/app/main.py - Runtime wiring → SQLite store: creates store
backend/app/main.py - Runtime wiring → LLM decision: configures Ollama
backend/app/main.py - Runtime wiring → Requirement extraction: configures extraction
backend/app/main.py - Runtime wiring → Embedding model: loads model
backend/app/main.py - HTTP API → SQLite store: manages job data
backend/app/api.py - HTTP API → Scoring worker: queues scoring
backend/app/api.py - HTTP API → PDF text extraction: extracts job text
backend/app/api.py - HTTP API → Requirement extraction: extracts requirements
backend/app/api.py - Scoring worker → SQLite store: loads and saves
backend/app/worker.py - Scoring worker → PDF text extraction: extracts resume text
backend/app/worker.py - Scoring worker → Resume review pipeline: reviews resume
backend/app/worker.py - Resume review pipeline → Section chunking: chunks text
backend/app/pipeline.py - Resume review pipeline → Hybrid retrieval: ranks passages
backend/app/pipeline.py - Resume review pipeline → LLM decision: evaluates evidence
backend/app/pipeline.py - Resume review pipeline → Weighted scoring: calculates score
backend/app/pipeline.py - LLM decision → Local Ollama: queries local model
README.md - Hybrid retrieval → Embedding model: embeds passages
README.md