How devkano98/resumeforge works
ResumeForge is a local-first resume synthesis application: users manage a master LaTeX resume, connect and index GitHub repositories, then submit a job description to generate and download a tailored resume while following live progress. Its domain stages include fact extraction, project evidence retrieval, generation, and PDF rendering; the UI also supports project browsing, template adaptation, history, and replay. The graph reflects documented capabilities and sampled route, parser, search, and UI behavior. Generation-service wiring beyond those excerpts is shown only where supported by the documented workflow.
Main entry points: resume_generator.rs Resume generation · mod.rs API router · templates.rs Template endpoints · resumes.rs Resume endpoints
Components 28
Web client
- App navigation
frontend/js/app.js - Progress canvas
frontend/js/canvas.js - API client
frontend/js/api.js
HTTP and live API
- API router
src/routes/mod.rs - Resume endpoints
src/routes/resumes.rs - Live events
src/routes/live.rs - GitHub endpoints
src/routes/github.rs - Project endpoints
src/routes/projects.rs - Template endpoints
src/routes/templates.rs
Resume domain services
- Resume generation
src/services/resume_generator.rs - Generation queue
src/services/generation_queue.rs - Master fact parser
src/services/master_parser.rs - Project evidence search
src/services/project_search.rs - Repository indexer
src/services/github_indexer.rs - Template adaptation
src/services/template_adapt.rs - AI process runner
src/services/pty_runner.rs - LaTeX rendering
src/services/latex.rs - PDF handling
src/services/pdf.rs - Event broadcast
src/services/event_bus.rs
Local persistence
- SQLite data
src/db/mod.rs - Resume records
src/db/resumes.rs - Project records
src/db/projects.rs - Repository records
src/db/repositories.rs - Template records
src/db/templates.rs
External integrations
- GitHub
- Antigravity CLI
- TeX engine
Other components
- Resume user
Connections 38
- Resume user → App navigation: uses
- App navigation → API client: requests
- App navigation → Progress canvas: shows progress
- API client → API router: sends requests
- API router → Resume endpoints: dispatches
- API router → Live events: dispatches
- API router → GitHub endpoints: dispatches
- API router → Project endpoints: dispatches
- API router → Template endpoints: dispatches
- Resume endpoints → Resume generation: starts generation
- Resume endpoints → Resume records: reads and writes
- Resume generation → Generation queue: enqueues work
- Resume generation → Master fact parser: extracts facts
- Resume generation → Project evidence search: ranks evidence
- Resume generation → AI process runner: requests generation
- Resume generation → LaTeX rendering: renders resume
- Resume generation → Event broadcast: publishes progress
- Resume generation → Resume records: saves result
- Project evidence search → Project records: reads projects
- Repository indexer → Project records: stores evidence
- GitHub endpoints → Repository indexer: syncs repositories
- GitHub endpoints → Repository records: reads and writes
- Repository indexer → GitHub: fetches repositories
- Template endpoints → Template records: reads and writes
- Template endpoints → Template adaptation: adapts template
- Template endpoints → Master fact parser: parses facts
- Master fact parser → Template records: reads template
- Live events → Event broadcast: streams updates
- Progress canvas → API client: opens live stream
- AI process runner → Antigravity CLI: runs process
- LaTeX rendering → TeX engine: compiles TeX
- LaTeX rendering → PDF handling: produces PDF
- PDF handling → Resume endpoints: serves artifacts
- Resume records → SQLite data: queries
- Project records → SQLite data: queries
- Repository records → SQLite data: queries
- Template records → SQLite data: queries
- Project endpoints → Project records: lists projects