How senseofhumor/restless works
RESTLESS is a resume and job-application assistant: users upload or enter resume information, have it parsed and saved, tailor it to jobs, and format or download the result. The repository combines a Next.js interface and API, Firebase-backed records and files, and a Python service for parsing and document conversion. The README describes broader LLM screening and matching ambitions; the sampled source confirms parsing and rendering paths but does not establish every model or screening integration. Some API and UI wiring is unsampled, so uncertain links are omitted.
Main entry points: route.js Resume upload API · conversions.py Format rendering · main.py Python API · resumeDB.js Resume records
Components 25
Web experience
- Next.js UI
src/app
Resume processing
- Resume upload API
src/app/api/resumes/upload/route.js - Resume sections API
src/app/api/resumes/[section]/route.js - Resume status API
src/app/api/resumeParsingStatus/[resumeId]/route.js - Resume generation API
src/app/api/resumes/generate/route.js - Resume format API
src/app/api/resumes/format/route.js - Resume download API
src/app/api/resumes/download/[formattedResumeId]/route.js - Processing state
src/lib/resumeStore.js - Python API
python/main.py - Resume parsing
python/llm_library.py - Document conversion
python/docxtopdf.py - Format rendering
python/conversions.py - Default renderer
python/render_default.py - Academic renderer
python/render_academic.py - Two-column renderer
python/render_two_col.py - Cover-letter renderer
python/render_coverletter.py
Job tools
- Job APIs
src/app/api/jobs - Job advice API
src/app/api/jobs/advice/route.js
Persistence
- Firebase setup
src/db_lib/firebase_config.js - Resume records
src/db_lib/resumeDB.js - Resume files
src/db_lib/fileDB.js - Job records
src/db_lib/jobInfoDB.js - Advice records
src/db_lib/adviceDB.js
Other components
- User
- Clerk auth
Connections 31
- User → Next.js UI: uses
- Next.js UI → Resume upload API: uploads resume
- Resume upload API → Clerk auth: authenticates
src/app/api/resumes/upload/route.js - Resume sections API → Clerk auth: authenticates
src/app/api/resumes/[section]/route.js - Resume upload API → Resume files: stores file
src/app/api/resumes/upload/route.js - Resume upload API → Resume records: reads and saves
src/app/api/resumes/upload/route.js - Resume upload API → Processing state: tracks processing
src/app/api/resumes/upload/route.js - Resume upload API → Python API: sends file
src/app/api/resumes/upload/route.js - Resume sections API → Resume records: reads resume
src/app/api/resumes/[section]/route.js - Resume sections API → Python API: sends text
src/app/api/resumes/[section]/route.js - Resume status API → Processing state: checks status
src/app/api/resumeParsingStatus/[resumeId]/route.js - Python API → Resume parsing: parses resume
python/main.py - Python API → Document conversion: converts DOCX
python/main.py - Python API → Format rendering: formats resume
python/main.py - Format rendering → Default renderer: renders
python/conversions.py - Format rendering → Academic renderer: renders
python/conversions.py - Format rendering → Two-column renderer: renders
python/conversions.py - Format rendering → Cover-letter renderer: renders
python/conversions.py - Resume generation API → Job records: loads job resume
src/app/api/resumes/generate/route.js - Resume generation API → Resume records: loads resume
src/app/api/resumes/generate/route.js - Resume format API → Job records: loads generated resume
src/app/api/resumes/format/route.js - Resume format API → Processing state: tracks formatting
src/app/api/resumes/format/route.js - Resume download API → Processing state: checks formatted file
src/app/api/resumes/download/[formattedResumeId]/route.js - Job advice API → Job records: loads job context
src/app/api/jobs/advice/route.js - Job advice API → Resume records: loads resume
src/app/api/jobs/advice/route.js - Job advice API → Advice records: saves advice
src/app/api/jobs/advice/route.js - Resume records → Firebase setup: uses Firestore
src/db_lib/resumeDB.js - Resume files → Firebase setup: uses storage
src/db_lib/fileDB.js - Job records → Firebase setup: uses Firestore
src/db_lib/jobInfoDB.js - Advice records → Firebase setup: uses Firestore
src/db_lib/adviceDB.js - Job APIs → Job records: manages job data
src/app/api/jobs/submit/route.js