How thefelixiam/tailoredcv works
TailoredCV combines a public portfolio with an authenticated admin workflow for maintaining a master profile, analyzing job descriptions, matching real profile evidence, and producing job-specific CVs and PDFs. The graph follows the README’s documented workflow and sampled module responsibilities; several page/action implementations and storage internals were not sampled, so uncertain wiring is omitted.
Main entry points: actions.ts Job actions · route.ts PDF download route · profiles.ts Profile storage · db.ts SQLite
Components 26
Account access
- Login UI
src/app/(admin)/login/page.tsx - Login actions
src/app/(admin)/login/actions.ts - Session handling
src/lib/session.ts - Authentication
src/lib/auth.ts
Job tailoring
- Job management
src/app/(admin)/jobs/page.tsx - Job actions
src/app/(admin)/jobs/actions.ts - Job storage
src/lib/jobs/store.ts - Job description parser
src/lib/jobs/parser.ts - Ollama analysis
src/lib/jobs/ollamaParser.ts - Ollama service
- Profile-job matcher
src/lib/matching/engine.ts - Skill taxonomy
src/lib/skills/taxonomy.ts
CV output
- CV editor
src/components/CvEditor.tsx - CV variant storage
src/lib/cv/store.ts - CV rendering
src/components/cv/CvRenderer.tsx - CV templates
src/lib/cv/templates.ts - PDF download route
src/app/api/cv/[id]/pdf/route.ts - Headless browser
- Print page
src/app/(admin)/cv/[id]/print/page.tsx
Public portfolio
- Public portfolio
src/app/page.tsx - Portfolio view
src/lib/portfolio.ts
Profile and storage
- Profile editor
src/components/ProfileForm.tsx - Profile actions
src/app/(admin)/profile/actions.ts - Profile storage
src/lib/profiles.ts - SQLite
src/lib/db.ts
Other components
- User
Connections 34
- User → Login UI: opens
- Login UI → Login actions: submits credentials
- Login actions → Authentication: verifies and creates session
- Authentication → SQLite: reads and writes
- User → Profile editor: edits profile
- Profile editor → Profile actions: saves profile
- Profile actions → Profile storage: persists profile
- Profile storage → SQLite: reads and writes
- User → Job management: submits job description
- Job management → Job actions: requests job analysis
- Job actions → Job description parser: parses description
- Job description parser → Skill taxonomy: resolves skill spellings
- Job actions → Ollama analysis: may analyze
- Ollama analysis → Ollama service: requests analysis
- Ollama analysis → Job description parser: falls back to
- Job actions → Job storage: stores job
- Job storage → SQLite: reads and writes
- Job actions → Profile storage: loads profile
- Job actions → Profile-job matcher: scores profile against job
- Profile-job matcher → Skill taxonomy: normalizes skills
- User → CV editor: reviews and tailors CV
- CV editor → CV variant storage: saves variant
- CV variant storage → SQLite: reads and writes
- User → PDF download route: downloads PDF
- PDF download route → Authentication: checks session
- PDF download route → CV variant storage: loads CV variant
- PDF download route → Job storage: loads job title
- PDF download route → Headless browser: renders print page
- Headless browser → Print page: opens page
- Print page → CV rendering: renders CV
- CV rendering → CV templates: selects template
- User → Public portfolio: visits
- Public portfolio → Portfolio view: loads portfolio view
- Portfolio view → Profile storage: reads profile