Tech stack:
- Next.js (frontend)
- Django REST Framework (backend)
- PostgreSQL
- Redis
- Celery
- Gemini API wrapper
CV Analyzer is a SaaS-style platform that helps users improve their resumes with AI-powered feedback. Users can upload a CV, get ATS-style analysis, rewrite suggestions, and keyword gap detection, then save and share improved versions.
- Analyze-only flow: Upload CV -> async analysis job -> polling result (not permanently stored by default).
- Save flow: User explicitly saves the analyzed CV to PostgreSQL with version history.
- Share flow: User generates a view-only share token and sends a public link.
- Analyze source choice:
CV fileorGitHub profile/repository URL. - AI output includes ATS score, strengths, weaknesses, missing keywords, rewritten summary, improved bullets, and next actions.
- Premium dashboard UI with dark/light mode.
- Resume builder with structured fields and one-click PDF export.
- CV/GitHub source analysis with async processing.
- Resume save/share and one-click PDF export.
- Premium dashboard with dark/light mode.
- Multiple PDF templates and style presets.
- Better CV parser for PDF/DOCX structured extraction.
- Usage analytics panel for users.
- Stripe billing + plan upgrades.
- Team workspace and shared resume libraries.
- Queue prioritization and AI usage cost controls.
- Built an AI-powered CV optimization SaaS using Next.js, Django REST Framework, PostgreSQL, Redis, and Celery.
- Designed asynchronous processing for resume analysis to avoid API timeouts and improve responsiveness.
- Implemented secure auth, resume CRUD/versioning, share links, and environment-based secret management.
- Containerized full stack with Docker and documented reproducible local setup for team onboarding.
- Keep all secrets in local
.envonly. .envis ignored by git and must not be pushed to GitHub.
- See
CONTRIBUTING.mdfor branch, commit, and PR standards.
- Backend admin:
https://backend-web-production-f301.up.railway.app/admin/auth/user/ - Frontend:
https://shamshods-cv-analyzer.up.railway.app/
-
Open Docker Desktop first (wait until engine is running).
-
Open
cmdand move to project folder:
cd /d D:\SaaS\CV_analyzer- Verify Docker engine:
docker version
docker context use desktop-linux- Create
.envfrom template (first time only):
copy .env.example .env- Fill required values in
.env:
DJANGO_SECRET_KEYPOSTGRES_DB,POSTGRES_USER,POSTGRES_PASSWORDDATABASE_URLGEMINI_API_KEY
- Build and start all services:
docker compose up -d --build- Run migrations:
docker compose exec web python manage.py migrate- Check status:
docker compose ps- Open:
- Frontend:
http://localhost:3000 - API health:
http://localhost:8000/api/health - Backend admin:
http://localhost:8000/admin
- Stop when needed:
docker compose downGET /api/healthPOST /api/auth/registerPOST /api/auth/loginPOST /api/auth/refreshPOST /api/analyzeGET /api/analyze/{job_id}POST /api/resumesGET /api/resumesGET /api/resumes/{id}PATCH /api/resumes/{id}DELETE /api/resumes/{id}POST /api/resumes/{id}/shareGET /api/resumes/{id}/exportGET /api/admin/metrics