Skip to content

AI-powered platform that bridges students and employers through intelligent CV–Job matching, built with LangChain, ChromaDB, and FastAPI.

License

Notifications You must be signed in to change notification settings

Trinhvhao/TalentBridge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎯 TalentBridge

Nền Tảng Tìm Việc Thông Minh Cho Sinh Viên

Python FastAPI Google Gemini ChromaDB License

Briefcase

✨ Sử dụng AI để phân tích CV, gợi ý việc làm phù hợp và đánh giá chất lượng hồ sơ ✨


📋 Mục Lục

Phần Nội Dung
🎯 Giới Thiệu - Tổng quan về TalentBridge
🚀 Demo - Screenshots giao diện
Tính Năng Chính - 5 tính năng nổi bật
🛠️ Công Nghệ Sử Dụng - Tech stack & AI models
🏗️ Kiến Trúc Hệ Thống - System architecture
📦 Cài Đặt - Hướng dẫn cài đặt từng bước
🚀 Sử Dụng - Hướng dẫn sử dụng
📖 API Documentation - API endpoints
📚 Tài Liệu - Tài liệu kỹ thuật
🎓 Roadmap - Kế hoạch phát triển
🤝 Đóng Góp - Cách đóng góp cho project
📄 License - Giấy phép MIT

🎯 Giới Thiệu

TalentBridge là nền tảng tìm việc làm thông minh được xây dựng đặc biệt cho sinh viên Việt Nam.
Sử dụng sức mạnh của Google Gemini AISemantic Search, TalentBridge giúp sinh viên:


Phân tích CV tự động
Upload PDF và AI sẽ đọc, hiểu toàn bộ nội dung
Eye in Speech Bubble
Gợi ý việc làm phù hợp
Tìm công việc match với kỹ năng và kinh nghiệm

Đánh giá chất lượng CV
AI chấm điểm và đưa ra lời khuyên cải thiện

Phân tích thị trường
Thống kê xu hướng tuyển dụng và insights

🌟 Điểm Đặc Biệt

100% Tự Động AI Thông Minh Semantic Search
Không cần nhập tay thông tin CV Sử dụng Google Gemini 2.5 Flash Tìm việc theo nghĩa, không chỉ từ khóa
Tiếng Việt 3,237 Công Việc Open Source
Giao diện và nội dung hoàn toàn tiếng Việt Dữ liệu thực tế từ TopCV MIT License - Miễn phí sử dụng

🚀 Demo

🏠 Trang Chủ

Trang chủ TalentBridge Giao diện trang chủ thân thiện với người dùng


📄 Upload & Phân Tích CV

Upload CV Kéo thả file CV và xem kết quả phân tích tức thì


🤝 Gợi Ý Việc Làm (Job Matching)

Job Matching AI gợi ý công việc phù hợp theo kỹ năng, kinh nghiệm & mục tiêu nghề nghiệp


📊 Dashboard Analytics

Dashboard Biểu đồ phân tích thị trường việc làm với AI insights


✨ Tính Năng Chính

🤖 1. Phân Tích CV Thông Minh

graph LR
    A[📄 Upload PDF] --> B[🤖 AI Parse]
    B --> C[📊 Structured Data]
    C --> D[✅ Hiển thị thông tin]
    
    style A fill:#e1f5ff
    style B fill:#fff4e1
    style C fill:#e8f5e9
    style D fill:#f3e5f5
Loading

Quy trình tự động:

  • 📤 Upload PDF - Kéo thả hoặc chọn file CV
  • 🤖 AI Parse - Gemini AI tự động đọc và trích xuất thông tin
  • 📊 Structured Data - Chuyển đổi sang JSON với đầy đủ thông tin:
    • 👤 Thông tin cá nhân (tên, email, phone)
    • 💪 Kỹ năng (skills)
    • 🎓 Học vấn (education)
    • 💼 Kinh nghiệm (experience)
    • 🎯 Mục tiêu nghề nghiệp (career objective)

📊 2. Đánh Giá Chất Lượng CV

3 Điểm Số Chính:

🎯 Quality Score 💼 Market Fit Score ✅ Completeness Score
Chất lượng tổng thể (0-10) Phù hợp với thị trường (0-10) Đầy đủ thông tin (0-10)

Phân Tích Chi Tiết:

  • Điểm Mạnh - Những gì bạn làm tốt
  • ⚠️ Điểm Yếu - Những gì cần cải thiện
  • 💡 Gợi Ý - Lời khuyên cụ thể từ AI để nâng cao chất lượng CV

🎯 3. Tìm Việc Phù Hợp (Semantic Matching)

Công nghệ Semantic Search:

CV của bạn → [AI Embedding] → Vector 768 chiều
                                    ↓
                            [ChromaDB Search]
                                    ↓
                        3,237 công việc → Top 5 matched
                                    ↓
                        [Gemini AI Ranking] → Score 0-100%

Tính năng nổi bật:

  • 🔍 Semantic Search - Tìm kiếm theo nghĩa với ChromaDB
  • 🎯 AI Ranking - Gemini AI xếp hạng độ phù hợp (0-100%)
  • 🎛️ Smart Filters:
    • 📍 Địa điểm (Hà Nội, HCM, Đà Nẵng...)
    • 💰 Mức lương (10-50 triệu)
    • 📅 Kinh nghiệm (0-5+ năm)
    • 💼 Loại công việc (Full-time, Part-time, Remote)
  • 💬 Giải Thích AI - "Tại sao công việc này phù hợp với bạn?"

📈 4. Dashboard Analytics

6 Biểu Đồ Thống Kê:

📊 Top Vị Trí 🏢 Top Công Ty 📍 Phân Bố Địa Điểm
💼 Loại Công Việc 📅 Yêu Cầu Kinh Nghiệm 💰 Phân Bổ Mức Lương

Tính năng:

  • 🤖 AI Insights - Phân tích xu hướng và gợi ý cho sinh viên
  • 📊 Interactive Charts - Chart.js với animation mượt mà
  • ⚡ Real-time Data - Dữ liệu cập nhật từ database

🔍 5. Tìm Kiếm & Lọc Việc Làm

  • 3,237 Công Việc thực tế từ TopCV
  • 🔍 Tìm Kiếm Nâng Cao - Theo từ khóa, địa điểm, mức lương
  • 📄 Pagination - 20 jobs/page
  • 🔀 Sort - Theo mới nhất, lương cao, deadline

🛠️ Công Nghệ Sử Dụng

Backend Stack

Công Nghệ Phiên Bản Mục Đích
Python 3.12+ Ngôn ngữ chính
FastAPI Latest Web framework (async)
Uvicorn Latest ASGI server
Gemini 2.5 Flash LLM - Parse, Analyze, Rank
ChromaDB Latest Vector database
SQLite 3.x Relational database
LangChain Latest RAG framework
Pydantic V2 Data validation

Frontend Stack

Công Nghệ Mục Đích
JavaScript Logic (Vanilla JS)
Chart.js Biểu đồ thống kê
PDF.js Preview PDF
Bootstrap UI components

AI Models

🤖 Gemini 2.5 Flash (gemini-2.5-flash)

  • ✅ Parse CV từ PDF → JSON
  • ✅ Phân tích chất lượng CV
  • ✅ Ranking jobs (score 0-100%)
  • ✅ Giải thích "Tại sao phù hợp"
  • ✅ Phân tích biểu đồ dashboard

🔍 Gemini Embedding (text-embedding-004)

  • ✅ Tạo vector 768 chiều
  • ✅ Semantic search jobs
  • ✅ Cosine similarity matching

🏗️ Kiến Trúc Hệ Thống

┌─────────────────────────────────────────────────────────────┐
│                        FRONTEND                             │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐   │
│  │  index   │  │cv-analysis│  │  jobs    │  │dashboard │   │
│  │  .html   │  │   .html   │  │_new.html │  │  .html   │   │
│  └────┬─────┘  └─────┬─────┘  └────┬─────┘  └────┬─────┘   │
│       │              │              │             │         │
│       └──────────────┴──────────────┴─────────────┘         │
│                          │                                  │
│                    Fetch API (HTTP)                         │
└──────────────────────────┼──────────────────────────────────┘
                           │
┌──────────────────────────▼──────────────────────────────────┐
│                    FASTAPI BACKEND                          │
│  ┌────────────────────────────────────────────────────┐     │
│  │  api/main.py - 15+ REST API Endpoints             │     │
│  │  • POST /upload-cv                                 │     │
│  │  • GET /cv/{cv_id}/insights                        │     │
│  │  • POST /match (Semantic Matching)                 │     │
│  │  • GET /jobs, /jobs/{job_id}                       │     │
│  │  • GET /jobs/analytics                             │     │
│  └────┬───────────────────────────┬────────────────┬──┘     │
│       │                           │                │        │
│  ┌────▼─────┐  ┌─────────────────▼──┐  ┌─────────▼──────┐ │
│  │ AI       │  │ LangChain         │  │ Database       │ │
│  │ Analysis │  │ Utils             │  │ Utils          │ │
│  │          │  │ (RAG + Matching)  │  │                │ │
│  └────┬─────┘  └─────────┬─────────┘  └────┬───────────┘ │
└───────┼──────────────────┼─────────────────┼──────────────┘
        │                  │                 │
┌───────▼──────┐  ┌────────▼────────┐  ┌────▼──────────────┐
│ Google       │  │ ChromaDB        │  │ SQLite            │
│ Gemini AI    │  │ Vector Store    │  │ cv_job_matching.db│
│              │  │                 │  │                   │
│ • Parse CV   │  │ • 3,237 jobs    │  │ • cv_store        │
│ • Analyze    │  │ • 768-dim       │  │ • job_store       │
│ • Rank       │  │   embeddings    │  │ • cv_insights     │
│ • Explain    │  │ • Semantic      │  │ • match_logs      │
│              │  │   search        │  │ • applications    │
└──────────────┘  └─────────────────┘  └───────────────────┘

📦 Cài Đặt

Yêu Cầu Hệ Thống

🐍 Python 💾 RAM 💿 Storage
3.12+ 4GB (khuyến nghị 8GB) 2GB

Bước 1️⃣: Clone Repository

git clone https://github.com/Trinhvhao/TalentBridge.git
cd TalentBridge

Bước 2️⃣: Tạo Virtual Environment

# Windows
python -m venv rag_env
rag_env\Scripts\activate

# Linux/Mac
python3 -m venv rag_env
source rag_env/bin/activate

Bước 3️⃣: Cài Đặt Dependencies

pip install -r requirements.txt

Bước 4️⃣: Setup API Keys

Tạo file .env trong thư mục gốc:

# 3 API keys để tránh quota limit (150 requests/day thay vì 50)
GOOGLE_API_KEY_1=AIzaSy...
GOOGLE_API_KEY_2=AIzaSy...
GOOGLE_API_KEY_3=AIzaSy...

🔑 Lấy API Key:

  1. Truy cập https://aistudio.google.com/apikey
  2. Tạo 3 API keys (miễn phí)
  3. Copy vào file .env

Bước 5️⃣: Chạy Server

python main.py

✅ Output:

============================================================
🚀 TalentBridge - Nền Tảng Tìm Việc Thông Minh
============================================================
📍 Server đang khởi động...
🌐 URL: http://localhost:9990
📚 API Docs: http://localhost:9990/docs
============================================================
INFO:     Uvicorn running on http://0.0.0.0:9990
✅ Preloading completed
INFO:     Application startup complete.

Bước 6️⃣: Truy Cập Ứng Dụng

🌐 Frontend 📚 API Docs 🔌 API Base
frontend/index.html http://localhost:9990/docs http://localhost:9990

🚀 Sử Dụng

1️⃣ Upload & Phân Tích CV

# Mở trang cv-analysis.html
1. Kéo thả file CV.pdf vào khung upload
2. Click "Upload CV"
3. Xem thông tin được AI parse tự động
4. Click "Phân Tích CV" để xem điểm số
5. Click "Gợi Ý Cải Thiện" để nhận lời khuyên

2️⃣ Tìm Việc Phù Hợp

# Sau khi upload CV
1. Click "Tìm Việc Phù Hợp"
2. Chọn filters (location, salary, experience)
3. Xem top 5 jobs matched với % phù hợp
4. Đọc "Tại sao phù hợp" do AI giải thích
5. Click "Xem Chi Tiết" hoặc "Ứng Tuyển"

3️⃣ Xem Dashboard

# Mở dashboard.html
1. Xem 6 biểu đồ thống kê thị trường
2. Click "Phân Tích AI" trên mỗi biểu đồ
3. Đọc insights và gợi ý từ AI

📖 API Documentation

📚 Swagger UI

Truy cập http://localhost:9990/docs để xem API documentation đầy đủ

Endpoints Chính

Method Endpoint Mô Tả
POST /upload-cv Upload và parse CV
GET /cvs Lấy danh sách CVs
GET /cv/{cv_id}/insights Phân tích CV
POST /cv/improve Gợi ý cải thiện CV
POST /match ⭐ Tìm việc phù hợp (Semantic)
POST /jobs/search Tìm kiếm jobs theo từ khóa
GET /jobs Lấy danh sách jobs
GET /jobs/{job_id} Chi tiết job
GET /jobs/analytics Thống kê thị trường
POST /jobs/analytics/insights AI phân tích biểu đồ

📘 Chi tiết: Xem docs/API_ENDPOINTS_GUIDE.md


📚 Tài Liệu

📘 API Guide 📗 Project Docs
API Endpoints Guide Project Documentation
Hướng dẫn chi tiết tất cả API endpoints Tài liệu kỹ thuật đầy đủ

🎓 Roadmap

🔜 Upcoming Features

  • 🔐 Authentication - Login/Register với JWT
  • 💬 Chatbot Tư Vấn - AI chatbot tư vấn nghề nghiệp
  • 🎯 Recommendation System - Gợi ý jobs dựa trên lịch sử
  • 📧 Email Notifications - Thông báo jobs mới phù hợp

🚀 Future Plans

  • 📱 Mobile App - React Native app
  • ☁️ Deploy Cloud - AWS/GCP deployment
  • 🌍 Multi-language - English support
  • 📊 Advanced Analytics - Salary prediction, career path

🤝 Đóng Góp

Contributions, issues và feature requests đều được chào đón!

1️⃣ Fork repository
2️⃣ Tạo branch (git checkout -b feature/AmazingFeature)
3️⃣ Commit changes (git commit -m 'Add some AmazingFeature')
4️⃣ Push to branch (git push origin feature/AmazingFeature)
5️⃣ Mở Pull Request

💖 Contributors


📄 License

Distributed under the MIT License. See LICENSE for more information.

License: MIT


👨‍💻 Tác Giả

Trịnh Văn Hào

GitHub Email


⭐ Nếu bạn thấy project hữu ích, hãy cho một star nhé!


🙏 Acknowledgments


Google Gemini AI

Powerful LLM for CV parsing & analysis

FastAPI

High-performance async web framework

ChromaDB

Vector database for semantic search

LangChain

RAG framework for AI applications

TopCV

Job data source (3,237 jobs)

Chart.js

Beautiful interactive charts

📞 Liên Hệ & Hỗ Trợ


Email
haotrinh142@gmail.com

GitHub
@Trinhvhao

Report Bug
Issues

New Feature
Request

Made with ❤️ by Trịnh Văn Hào

⭐ Star this repo if you find it helpful!

GitHub stars GitHub forks GitHub watchers

About

AI-powered platform that bridges students and employers through intelligent CV–Job matching, built with LangChain, ChromaDB, and FastAPI.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published