№ 01
VinUni Career Platform là "hệ điều hành nghề nghiệp" AI-native dành riêng cho VinUniversity, kết nối sinh viên – cựu sinh viên – nhà tuyển dụng – nhà trường trên một nền tảng duy nhất. AI hỗ trợ thực chất ở mọi bước: tạo & tối ưu CV theo phong cách Canva, chấm điểm độ phù hợp CV–JD, luyện phỏng vấn có phản hồi, quản lý toàn bộ vòng đời tuyển dụng và đo lường kết quả việc làm sau tốt nghiệp.
VinUni Career Platform giải quyết bài toán xây dựng một hệ sinh thái nghề nghiệp thống nhất cho ba nhóm người dùng chính: sinh viên, doanh nghiệp tuyển dụng và nhà trường. Trong thực tế, các hoạt động như tạo hồ sơ nghề nghiệp, tìm kiếm cơ hội, nộp CV, quản lý ứng viên, xác minh doanh nghiệp, kiểm duyệt tin tuyển dụng và đo lường hiệu quả thường bị phân tán trên nhiều công cụ khác nhau. Điều này làm giảm khả năng theo dõi dữ liệu, tăng thao tác thủ công và khiến các bên khó phối hợp trên cùng một luồng thông tin đáng tin cậy.
Với sinh viên, vấn đề trọng tâm là thiếu một nơi tập trung để quản lý CV, khám phá việc làm phù hợp, ứng tuyển, theo dõi tiến trình tuyển dụng và luyện phỏng vấn dựa trên năng lực thật. Sinh viên cũng cần được bảo vệ quyền riêng tư, đặc biệt khi CV chứa thông tin cá nhân và dữ liệu học tập nhạy cảm.
Với doanh nghiệp, bài toán là làm sao đăng tuyển, tiếp cận ứng viên phù hợp, quản lý pipeline tuyển dụng và đánh giá tín hiệu phù hợp một cách hiệu quả hơn mà vẫn tuân thủ các yêu cầu về quyền riêng tư, minh bạch và công bằng. Doanh nghiệp cần dữ liệu có cấu trúc hơn thay vì chỉ nhận CV rời rạc.
Với nhà trường, bài toán nằm ở quản trị toàn bộ hệ sinh thái nghề nghiệp: xác minh sinh viên và doanh nghiệp, kiểm duyệt nội dung tuyển dụng, quản lý taxonomy ngành nghề/chuyên ngành, theo dõi hoạt động tuyển dụng và đảm bảo AI chỉ đóng vai trò hỗ trợ quyết định, không thay thế trách nhiệm của người duyệt.
Mục tiêu của dự án là tạo một nền tảng B2B2C có kiến trúc đủ nghiêm túc cho sản phẩm thật, nhưng vẫn phù hợp phạm vi MVP: có thể chạy local, có dữ liệu demo, có kiểm thử, có luồng người dùng chính và có AI hỗ trợ theo hướng an toàn, có kiểm soát.
Giải pháp hiện tại được tổ chức thành một ứng dụng full-stack gồm frontend Next.js và backend FastAPI. Frontend cung cấp giao diện theo vai trò, còn backend đóng vai trò modular monolith để gom các nghiệp vụ chính trong một codebase nhưng vẫn giữ ranh giới module rõ ràng. Cách tiếp cận này phù hợp với MVP vì triển khai nhanh hơn microservices, nhưng vẫn có nền tảng để tách module hoặc mở rộng hạ tầng sau này.
Hệ thống gồm bốn lớp chính:
HttpOnly và tự gắn token khi gọi backend.Luồng chuẩn là browser gọi Next.js BFF, BFF gắn Authorization và X-Identity-Id, sau đó FastAPI xác thực user, resolve active identity, kiểm tra RBAC rồi mới cho phép module nghiệp vụ xử lý.
Frontend dùng Next.js 16, React 19, TypeScript, Tailwind CSS, Radix UI và Phosphor Icons. Ứng dụng có hỗ trợ đa ngôn ngữ Việt/Anh và chia giao diện thành ba workspace chính.
Student workspace tập trung vào dashboard cá nhân, job discovery, CV center, applications, interviews, events, reviews và AI career coaching. Sinh viên có thể xem việc làm được gợi ý, quản lý CV, lưu việc làm, ứng tuyển và mở mô phỏng phỏng vấn AI dựa trên CV/JD.
Partner workspace hỗ trợ doanh nghiệp quản lý tin tuyển dụng, theo dõi ứng viên, xem pipeline, điều phối phỏng vấn, theo dõi analytics và sử dụng AI để phân tích JD hoặc so khớp hồ sơ.
University workspace hỗ trợ nhà trường duyệt registration, kiểm duyệt tin tuyển dụng, quản lý đối tác, cấu hình workflow, xem dashboard và dùng AI như một công cụ hỗ trợ review, không phải công cụ tự động quyết định cuối cùng.
Ngoài các workspace, frontend còn có landing page, login/register flow, identity selector, global search, notification center và AI assistant panel. Điều này cho thấy sản phẩm không chỉ là API backend mà đã có một trải nghiệm người dùng hoàn chỉnh ở mức MVP.
Backend dùng FastAPI, Pydantic 2, SQLAlchemy 2 và Alembic. Cấu trúc chính gồm:
app/bootstrap: application factory, middleware, exception handlers, route composition.app/shared: cấu hình, security, errors, schemas, events, IDs và tiện ích chung.app/modules: các module nghiệp vụ.app/ai: AI gateway, agents, safety, retrieval, extraction, interview.app/platform: database, cache, storage, search, workflow adapters.Các business module được định hướng theo bốn lớp:
api: HTTP contracts và route handlers.application: use cases, service logic, commands, queries.domain: business rules, không phụ thuộc framework.infrastructure: ORM models, repositories, adapters.Routes được gom tại một composition root duy nhất trong bootstrap/routes.py. Đây là điểm tốt về kiến trúc vì giúp kiểm soát API surface, tránh route rải rác khó quản lý.
Các module chính hiện có gồm:
Hệ thống không chỉ xác thực user mà còn xác định active identity theo tổ chức và vai trò. Một user có thể có nhiều identity, ví dụ thuộc nhiều organization hoặc portal khác nhau. Các API theo workspace yêu cầu X-Identity-Id, sau đó backend kiểm tra identity có thuộc user hiện tại không và có permission phù hợp không.
Refresh token có rotation và phát hiện reuse. Đây là một điểm quan trọng về bảo mật vì token cũ bị dùng lại sẽ bị từ chối. Trên frontend, token được lưu trong HttpOnly cookie, hạn chế việc browser-side JavaScript đọc trực tiếp token.
Luồng registration hỗ trợ cả sinh viên và doanh nghiệp. Sinh viên đăng ký bằng thông tin học tập như mã sinh viên, ngành, bậc học, năm nhập học và năm tốt nghiệp dự kiến. Doanh nghiệp đăng ký bằng hồ sơ pháp nhân, mã số thuế, thông tin đại diện, ngành nghề, logo và giấy phép kinh doanh.
Sau khi gửi hồ sơ, user chưa được vào workspace ngay mà rơi vào trạng thái chờ duyệt. University reviewer có thể xem review queue, đọc assessment, áp dụng verification policy và đưa ra quyết định. Thiết kế này phù hợp với bài toán thực tế của nền tảng trường đại học, nơi quyền truy cập cần được xác minh trước khi mở dữ liệu nghề nghiệp.
Doanh nghiệp có thể tạo job posting. Khi tạo job, backend phân tích mô tả công việc, trích xuất requirement, tạo embedding, chạy policy check và gán trạng thái APPROVED hoặc PENDING_APPROVAL. Nếu job đạt chính sách, hệ thống có thể tự động approve theo logic AI/deterministic policy; nếu không, job cần kiểm duyệt thủ công.
Sinh viên có thể tạo CV, hệ thống mask dữ liệu cá nhân và trích xuất kỹ năng. Khi ứng tuyển, backend kiểm tra job còn mở, CV thuộc đúng sinh viên, CV là primary CV, chưa từng apply, sau đó tính điểm phù hợp CV-job và ghi application tracking log. Việc có consent_to_unmask giúp bảo vệ quyền riêng tư của ứng viên khi doanh nghiệp xem pipeline.
AI subsystem được thiết kế độc lập với provider. Gateway hỗ trợ nhiều provider như NVIDIA, OpenRouter, OpenAI, Gemini, Groq và offline deterministic provider. Nếu không cấu hình API key thật, hệ thống vẫn chạy được bằng offline fallback. Đây là lựa chọn tốt cho demo, test và môi trường không có network/API key.
Hệ thống có specialist workforce gồm:
cv_extraction: trích xuất, chuẩn hóa và mask dữ liệu CV.profile_matching: so khớp CV với JD.jd_analysis: phân tích mô tả công việc và policy.moderation: phát hiện nội dung cần review hoặc prompt-injection.admin_review: tóm tắt bằng chứng và gợi ý không ràng buộc cho người duyệt.verification: kiểm tra độ đầy đủ của hồ sơ.career_coaching: tư vấn nghề nghiệp theo profile và kỹ năng mục tiêu.AI run được lưu theo tenant/org, có run_id, trạng thái QUEUED/RUNNING/DONE/FAILED/CANCELLED, kết quả, token accounting và SSE stream để frontend theo dõi tiến trình. Cách này tốt hơn gọi AI đồng bộ trực tiếp vì phù hợp với tác vụ dài, dễ audit và dễ mở rộng sang worker thật.
Một điểm nổi bật của dự án là mô phỏng phỏng vấn AI. Hệ thống tạo session phỏng vấn dựa trên CV và job, hỗ trợ hai chế độ chính:
Backend có planner để quyết định lượt hỏi tiếp theo, question generator để sinh câu hỏi, coverage state để theo dõi kỹ năng đã đánh giá, evaluation state để ghi nhận bằng chứng và report generator để tạo báo cáo cuối buổi. Nếu model lỗi hoặc output không đúng schema, hệ thống có fallback deterministic để vẫn tạo được câu hỏi/báo cáo ở mức tối thiểu.
Module documents hỗ trợ upload session, complete upload, scan callback, list metadata và signed download. File chỉ được download khi trạng thái scan phù hợp. Scan callback yêu cầu X-Internal-Service-Token và dùng constant-time comparison để kiểm tra token nội bộ.
Luồng này thể hiện hướng thiết kế production-oriented: không coi file upload là một thao tác đơn giản, mà có trạng thái, quyền sở hữu, scan status, signed URL và ranh giới service-to-service.
Hệ thống có search adapter dạng memory/OpenSearch/Elasticsearch, cache adapter memory/Redis, workflow dispatcher local/Celery/Temporal port và outbox foundation. Điều này giúp MVP chạy đơn giản ở local nhưng vẫn có đường nâng cấp lên hạ tầng phân tán.
AI usage được ghi lại với provider/model/token, application actions có audit log, và dashboards lấy dữ liệu theo vai trò. Đây là nền tảng cần thiết để theo dõi chi phí, debug hành vi AI và giải thích quyết định nghiệp vụ.
Repo hiện tại đã có đầy đủ setup local, seed data, demo accounts, backend API, frontend workspace và test suite. Các tài khoản demo gồm Student, Partner và University, mỗi tài khoản có route và dashboard riêng. Backend có Alembic migrations, script seed dữ liệu và OpenAPI contract.
Các luồng chính đã có implementation:
Repo có eval/README.md ghi lại các test case thủ công và tự động. Các evidence chính gồm:
Ngoài ra, backend còn có architecture tests để kiểm tra ranh giới module:
api/application/domain/infrastructure.Các kiểm thử này làm tăng tính khả thi vì chúng không chỉ kiểm tra endpoint mà còn bảo vệ cấu trúc kiến trúc khi codebase phát triển.
Modular monolith là lựa chọn hợp lý ở giai đoạn này. Dự án có nhiều nghiệp vụ liên quan chặt chẽ, nếu tách microservices quá sớm sẽ làm tăng chi phí vận hành, authentication, contract và deployment. Modular monolith cho phép nhóm phát triển nhanh, test toàn bộ luồng dễ hơn, nhưng vẫn giữ ranh giới module để sau này tách service nếu cần.
Offline AI provider giúp dự án luôn demo/test được ngay cả khi không có API key hoặc network. Đây là điểm rất quan trọng với sản phẩm AI trong môi trường học tập hoặc judging, vì không nên để toàn bộ demo phụ thuộc vào external provider.
Thiết kế RBAC theo identity/org phù hợp với mô hình B2B2C. Một user không chỉ có role đơn giản, mà luôn hoạt động trong ngữ cảnh một tổ chức. Đây là nền tảng tốt để mở rộng sang multi-tenant deployment.
AI được đặt ở vai trò hỗ trợ, có audit và human-review boundary. Điều này phù hợp với bài toán tuyển dụng và giáo dục, nơi quyết định tự động hoàn toàn có thể gây rủi ro về công bằng, quyền riêng tư và trách nhiệm giải trình.
Dù kiến trúc có định hướng production, dự án hiện vẫn là MVP. Một số giới hạn cần được nói rõ:
Những giới hạn này không làm giảm giá trị MVP, nhưng cần minh bạch khi trình bày để tránh mô tả sản phẩm như một hệ thống production-complete.
Trong ngắn hạn, nên tập trung hoàn thiện các điểm phục vụ demo, submission và trải nghiệm người dùng:
Trong trung hạn, nên nâng cấp các thành phần nền tảng để sẵn sàng cho pilot thật:
pgvector cho embedding persistence.Trong dài hạn, nền tảng có thể phát triển thành một career intelligence platform hoàn chỉnh:
VinUni Career Platform là một MVP có nền tảng kỹ thuật tương đối đầy đủ cho bài toán nghề nghiệp trong môi trường đại học. Điểm mạnh của dự án nằm ở việc không chỉ xây UI hoặc API đơn lẻ, mà đã ghép được các luồng nghiệp vụ chính: xác thực, phân quyền, đăng ký, kiểm duyệt, tuyển dụng, CV, ứng tuyển, tài liệu, dashboard và AI operations.
Giải pháp kỹ thuật phù hợp với giai đoạn hiện tại: modular monolith giúp phát triển nhanh nhưng vẫn giữ kỷ luật kiến trúc; Next.js BFF giúp bảo vệ token; RBAC theo identity/org phù hợp mô hình B2B2C; AI subsystem có provider fallback, audit và human-review boundary; test suite và evaluation evidence giúp chứng minh tính khả thi.
Tuy nhiên, để tiến tới production, dự án cần tiếp tục hoàn thiện workflow durability, scanner, pgvector/search persistence, model evaluation, load test, observability và các integration với dữ liệu thật của nhà trường/doanh nghiệp. Nói cách khác, hệ thống hiện đã đủ tốt để trình bày một MVP nghiêm túc và có khả năng mở rộng, nhưng vẫn cần một roadmap kỹ thuật rõ ràng trước khi vận hành ở quy mô thật.