An AI-powered personalized career recommendation platform built using a monorepo architecture, consisting of Frontend (React/Vite), Backend (FastAPI), and AI-Core services (PhoBERT, vi-SBERT, NeuMF).
| Item | Information |
|---|---|
| Team Code | C2SE.17 |
| Project Title | CareerVerse - Career Development Ecosystem Powered by AI Agents |
| Mentor | Nguyen Hai Minh |
| No. | Full Name |
|---|---|
| 1 | Pham Tung Duong |
| 2 | Le Thanh Thien |
| 3 | Nguyen Cong Thinh |
| 4 | Tran Chi Tho |
| 5 | Pham Hoang Thuong |
- Introduction
- Core Features
- System Architecture
- Technology Stack
- Project Structure
- Subscription Plans
- Installation Guide
- Environment Configuration
- Payment Testing Guide
CareerVerse analyzes user personality traits through RIASEC and Big Five assessments, combined with essay analysis, to provide personalized career recommendations.
The platform integrates multiple AI techniques:
- Text analysis using PhoBERT and vi-SBERT (768-dimensional embeddings)
- Vector similarity search powered by pgvector
- Career ranking using NeuMF/MLP (Neural Matrix Factorization)
- Real-time recommendation optimization using Thompson Sampling
- AI-powered career assistant and mock interviews through Google Gemini API
-
Combines four signals:
- Embedding Similarity (20%)
- RIASEC Matching (45%)
- Big Five Matching (10%)
- NeuMF Prediction (25%)
-
Thompson Sampling continuously learns from user feedback
-
Database containing over 900 occupations based on the O*NET standard
- Interview questions generated by Gemini AI
- Multi-dimensional answer evaluation
- Detailed strengths, weaknesses, and improvement suggestions
- Real-time Speech-to-Text and Text-to-Speech
- Powered by Faster-Whisper and Edge TTS
- Technical Knowledge
- Communication Skills
- Logical Thinking
- Experience
- Professional Attitude
-
Upload CVs in PDF, DOCX, JPG, or PNG format
-
Automatic skill extraction
-
Compare current skills against target career requirements
-
Categorize skill gaps into:
- Critical
- Important
- Nice-to-have
-
Recommend courses from Coursera, Udemy, and edX
- Generate learning paths based on identified skill gaps
- Progress tracking
- Email reminders
- Integration with a catalog of over 1,000 courses
- Semantic similarity-based mentor matching
- RIASEC compatibility scoring
- Real-time chat using WebSocket
- Automatic crawling from VietnamWorks, ITViec, and TopCV every six hours
- Industry demand trend analysis
- Salary statistics by experience level
Frontend (React + Vite)
│
│ HTTP / WebSocket
▼
Backend (FastAPI - Port 8000)
│
├── PostgreSQL + pgvector ← Primary storage & vector search
├── Neo4j ← Career-Skill Knowledge Graph
├── Redis ← Session caching
│
│ Internal HTTP Call
▼
AI-Core Service (FastAPI - Port 9000)
│
├── PhoBERT / vi-SBERT ← NLP & Embeddings
├── NeuMF MLP ← Collaborative Filtering
└── Thompson Sampling ← Bandit Optimization
- React 18 + TypeScript — UI Framework
- Vite — Build Tool
- Tailwind CSS — Styling
- React Router — Routing
- React Query — Data Fetching & Caching
- Axios — HTTP Client
- FastAPI — Web Framework
- SQLAlchemy + psycopg — ORM & PostgreSQL Driver
- Pydantic — Data Validation
- APScheduler — Background Job Scheduling
- Redis — Caching
- JWT — Authentication
- PostgreSQL 14+ with pgvector — 768-dimensional Vector Storage
- Neo4j 5 — Career-Skill Relationship Graph
- Redis — Session & Runtime Cache
- PyTorch — Deep Learning (NeuMF)
- HuggingFace Transformers — PhoBERT, vi-SBERT
- FAISS — Vector Similarity Search
- scikit-learn — Classical Machine Learning Algorithms
- Faster-Whisper — Real-Time Speech-to-Text
- Edge TTS — Natural Text-to-Speech
- Google Gemini API — Chatbot, Interview Question Generation, Answer Analysis
- Cloudflare R2 — CV File Storage
- VNPay / ZaloPay — Payment Gateways
- Docker & Docker Compose — Containerization
- Uvicorn — ASGI Server
AI-Based-Career-Recommendation-System/
├── apps/
│ ├── backend/
│ └── frontend/
├── packages/
│ └── ai-core/
├── db/
├── docker-compose.yml
└── README.md
- Authentication
- User Management
- Assessments
- Career Catalog
- AI Recommendation Engine
- Skill Gap Analysis
- Mock Interview
- Learning Path
- Mentor Matching
- AI Chatbot
- Real-time Chat
- Course Catalog
- Job Market Data
- Payments
- Subscription Management
- PDF Reports
- Analytics
- Content Management
- Market Trends
| Feature | Free | Basic (99,000 VND) | Premium (199,000 VND) | Pro (299,000 VND) |
|---|---|---|---|---|
| Assessments per Month | 5 | 20 | Unlimited | Unlimited |
| Career Recommendations | 1 | 5/month | Full Access | Full Access |
| Learning Roadmaps | Level 1 | Levels 1–2 | Full Access | Full Access |
| AI Chatbot | — | — | — | 24/7 |
| Voice Interview | — | — | — | ✓ |
| PDF Export | — | — | — | ✓ |
| RIASEC + Big Five Analysis | — | ✓ | ✓ | ✓ |
| Software | Version | Verification |
|---|---|---|
| Docker Desktop | Latest | docker --version |
| Python | 3.11+ | python --version |
| Node.js | 18+ | node --version |
- 8GB RAM (16GB Recommended)
- 10GB Free Storage
cd AI-Based-Career-Recommendation-System
docker compose --env-file apps/backend/.env up -d
docker compose psdocker compose exec -T postgres psql -U postgres -d postgres -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='career_ai';"
docker compose exec -T postgres psql -U postgres -d postgres -c "DROP DATABASE IF EXISTS career_ai;"
docker compose exec -T postgres psql -U postgres -d postgres -c "CREATE DATABASE career_ai;"
docker compose cp db/backup/dev_snapshot_utf8.sql postgres:/tmp/dev_snapshot_utf8.sql
docker compose exec -T postgres psql -U postgres -d career_ai -v ON_ERROR_STOP=1 -f /tmp/dev_snapshot_utf8.sql
docker compose exec redis redis-cli ping
curl http://localhost:7474cd packages/ai-core
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
pip install -e .
uvicorn src.api.main:app --reload --port 9000cd apps/backend
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
pip install -e ../../packages/ai-core
pip install sentence-transformers>=2.7.0 neo4j>=5.0.0
pip install beautifulsoup4 lxml fake-useragent
pip install PyPDF2==3.0.1 edge-tts
uvicorn app.main:app --reload --port 8000cd apps/frontend
npm install
npm run dev| Service | URL |
|---|---|
| Main Application | http://localhost:5173 |
| Backend API Docs | http://localhost:8000/docs |
| AI-Core API Docs | http://localhost:9000/docs |
| Neo4j Browser | http://localhost:7474 |
| PostgreSQL | localhost:5433 |
Create a .env file inside apps/backend/:
DATABASE_URL=postgresql://postgres:123456@localhost:5433/career_ai
AI_CORE_BASE=http://localhost:9000
ALLOWED_ORIGINS=http://localhost:5173
SECRET_KEY=your_secret_key
VNPAY_TMN_CODE=your_vnpay_tmn_code
VNPAY_HASH_SECRET=your_vnpay_hash_secret
ZALOPAY_APP_ID=your_zalopay_app_id
ZALOPAY_KEY1=your_zalopay_key1
ZALOPAY_KEY2=your_zalopay_key2
GEMINI_API_KEY=your_gemini_api_keyThe platform integrates VNPay and ZaloPay in Sandbox mode.
| Field | Value |
|---|---|
| Bank | NCB |
| Card Number | 9704198526191432198 |
| Cardholder Name | NGUYEN VAN A |
| Issue Date | 07/15 |
| OTP | 123456 |
| Field | Value |
|---|---|
| Card Number | 4111111111111111 |
| Cardholder Name | NGUYEN VAN A |
| Expiry Date | 06/26 |
| CVV | 123 |
For questions or support, please contact:
Email: tranchitho160704@gmail.com