How theunstopabble/texfolio works
TexFolio is an AI-assisted LaTeX resume-building SaaS. The main journey is a user creating or editing resume content in the web app, saving it through the API, then previewing or generating a PDF; AI analysis and team sharing are related branches. The README documents additional AI, import, payment, organization, and compliance capabilities whose internal wiring is not fully shown in the sampled source, so those links are limited to documented responsibilities and visible route/service calls.
Main entry points: index.ts Domain models · App.tsx Web app and routes · resume.routes.ts Resume routes · ai.routes.ts AI routes
Components 30
Web experience
- Web app and routes
apps/web/src/App.tsx - Resume creation
apps/web/src/features/create-resume/useCreateResume.ts - Resume editor
apps/web/src/features/resume-editor/hooks/useResumeEditor.ts - Resume preview
apps/web/src/components/ResumePreview.tsx - Web API client
apps/web/src/services/api.ts - AI client
apps/web/src/services/ai.ts
API and domain
- Resume routes
apps/api/src/routes.hono/resume.routes.ts - AI routes
apps/api/src/routes.hono/ai.routes.ts - Payment routes
apps/api/src/routes.hono/payment.routes.ts - Resume service
apps/api/src/services/resume.service.ts - LaTeX PDF renderer
apps/api/src/services/pdf.service.ts - Payment service
apps/api/src/services/payment.service.ts - Analytics service
apps/api/src/services/analytics.service.ts
Persistence and jobs
- PDF job queue
apps/api/src/queues/pdf.queue.ts - Domain models
apps/api/src/models/index.ts - MongoDB
apps/api/src/config/database.ts - Redis and BullMQ
AI and integrations
- AI service
apps/api/src/services/ai.service.ts - Resume coach agent
apps/api/src/agents/resume-coach.agent.ts - LinkedIn import
apps/api/src/services/linkedin.service.ts - pdflatex runtime
- LLM providers
- Razorpay
- Brevo email
Teams and governance
- Organization routes
apps/api/src/routes.hono/organization.routes.ts - GDPR routes
apps/api/src/routes.hono/gdpr.routes.ts - Organization service
apps/api/src/services/organization.service.ts - Audit service
apps/api/src/services/audit.service.ts - Clerk identity
Other components
- Resume user
Connections 32
- Resume user → Web app and routes: uses
- Web app and routes → Resume creation: opens creation
- Web app and routes → Resume editor: opens editor
- Resume creation → Web API client: creates resume
- Resume editor → Web API client: loads and saves
- Resume editor → AI client: requests analysis
- Web API client → Resume routes: sends requests
- AI client → AI routes: sends requests
- Resume routes → Resume service: manages resumes
- Resume routes → PDF job queue: enqueues PDF job
- Resume routes → LaTeX PDF renderer: generates PDF
- Resume routes → Brevo email: sends resume email
- Resume service → Domain models: uses models
- Domain models → MongoDB: persists data
- PDF job queue → Redis and BullMQ: queues jobs
- LaTeX PDF renderer → pdflatex runtime: compiles LaTeX
- AI routes → AI service: requests AI tasks
- AI routes → Resume coach agent: runs coaching
- AI service → LLM providers: calls provider
- Resume coach agent → LLM providers: calls provider
- AI routes → LinkedIn import: imports profile
- Organization routes → Organization service: manages teams
- Organization routes → Audit service: records actions
- Organization routes → Resume service: retrieves team resumes
- Organization service → Domain models: uses models
- Audit service → Domain models: uses models
- Payment routes → Payment service: handles payment
- Payment routes → Razorpay: verifies webhook
- Payment routes → Domain models: updates subscription
- GDPR routes → Domain models: exports or deletes data
- Web app and routes → Clerk identity: authenticates user
- Web app and routes → Resume preview: renders resume