Giới thiệu dự án

Thị trường lao động hiện đại đang chứng kiến sự chuyển dịch mạnh mẽ sang các nền tảng số hóa. Theo báo cáo từ Glassdoor, hơn 79% ứng viên tìm kiếm cơ hội việc làm thông qua các kênh trực tuyến, và tại Việt Nam, hơn 40% doanh nghiệp đã chuyển đổi một phần hoặc toàn bộ quy trình sơ tuyển sang hình thức trực tuyến sau đại dịch COVID-19. Tuy nhiên, phần lớn các doanh nghiệp vừa và nhỏ (SMEs) cũng như các cơ sở cung cấp dịch vụ tuyển dụng vẫn đang đối mặt với sự phân mảnh công cụ: quản lý hồ sơ qua email, lên lịch phỏng vấn thủ công, thiếu bộ câu hỏi chuẩn hóa theo kỹ năng và đánh giá ứng viên thiếu tính định lượng.

Đề tài "Xây dựng hệ thống website hỗ trợ cơ sở cung cấp dịch vụ tuyển dụng" được thực hiện bởi nhóm nghiên cứu tại Trường Đại học Sư phạm Kỹ thuật TP.HCM (HCMUTE) nhằm giải quyết triệt để bài toán đồng bộ hóa toàn diện vòng đời tuyển dụng (Recruitment Lifecycle Management).

   +-----------------------------------------------------------------------+
   |                        HỆ THỐNG TUYỂN DỤNG TRỰC TUYẾN                 |
   +-----------------------------------------------------------------------+
        |                    |                      |                  |
        v                    v                      v                  v
+---------------+    +---------------+      +---------------+   +--------------+
| Ứng viên      |    | Nhà tuyển dụng|      | Người phỏng   |   | Quản trị     |
| (Candidate)   |    | (Recruiter)   |      | vấn           |   | (Admin)      |
|               |    |               |      | (Interviewer) |   |              |
| - Nộp CV      |    | - Đăng tuyển  |      | - Tra cứu CV  |   | - Master data|
| - Tạo CV trực |    | - Lọc hồ sơ   |      | - Ngân hàng   |   | - Phân quyền |
|   tuyến       |    | - Xếp lịch PV |      |   câu hỏi     |   | - Thống kê   |
| - Quét mã QR  |    | - Quản lý sự  |      | - Chấm điểm   |   |   hệ thống   |
|   sự kiện     |    |   kiện        |      |   trực tiếp   |   | - Blacklist  |
+---------------+    +---------------+      +---------------+   +--------------+

Mục tiêu dự án

  1. Chuẩn hóa quy trình nghiệp vụ tuyển dụng: Xây dựng luồng xử lý khép kín từ đăng tin tuyển dụng, tiếp nhận hồ sơ, sàng lọc ứng viên, phân công người phỏng vấn đến chấm điểm và gửi thông báo kết quả.
  2. Tích hợp bộ công cụ đánh giá năng lực ứng viên: Thiết lập ngân hàng câu hỏi gợi ý theo từng kỹ năng và cấp bậc công việc (Junior, Middle, Senior), hỗ trợ phỏng vấn viên chấm điểm trực tiếp theo biểu mẫu rubric chuẩn.
  3. Ứng dụng mã QR trong sự kiện tuyển dụng: Cho phép ứng viên quét mã QR tại các ngày hội việc làm (Job Fair) để truy cập nhanh thông tin sự kiện và nộp hồ sơ ứng tuyển tức thì.
  4. Tối ưu hóa kiến trúc hệ thống: Xây dựng kiến trúc tách rời (Decoupled Architecture) giữa Front-end (Single Page Application - SPA) và Back-end (RESTful Web API) đảm bảo hiệu năng xử lý cao và khả năng mở rộng linh hoạt.

Phương pháp tiếp cận và phạm vi

  • Phương pháp tiếp cận: Ứng dụng mô hình Client-Server hướng dịch vụ. Back-end sử dụng framework ASP.NET Core 8.0 kết hợp Entity Framework Core Code-First nhằm quản trị cơ sở dữ liệu quan hệ SQL Server. Front-end xây dựng trên nền tảng Angular 17 kết hợp thư viện giao diện Bootstrap 5.3. Dữ liệu đa phương tiện (CV, hình ảnh doanh nghiệp) được lưu trữ và tối ưu hóa qua Cloudinary CDN.
  • Kết quả đo lường kỳ vọng:
    • Thời gian phản hồi API trung bình: < 200ms với tải thông thường.
    • Tự động phát hiện xung đột lịch phỏng vấn với độ chính xác 100%.
    • Giảm thiểu 45% thời gian tổng hợp kết quả đánh giá giữa nhà tuyển dụng và hội đồng phỏng vấn.
  • Phạm vi & Giới hạn: Hệ thống tập trung tối ưu hóa các phân hệ chức năng nội bộ và quản trị tuyển dụng. Các cơ chế phòng chống tấn công từ chối dịch vụ (DDoS) chuyên sâu và xác thực pháp lý doanh nghiệp tự động qua bên thứ ba được hoạch định trong giai đoạn nâng cấp tiếp theo.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Thị trường tuyển dụng trực tuyến tại Việt Nam hiện có sự hiện diện của nhiều nền tảng lớn. Dưới đây là bảng so sánh phân tích hiện trạng giữa các giải pháp hiện hành và hệ thống đề xuất:

Tiêu chí TopCV VietnamWorks ITviec Hệ thống đề xuất
Đối tượng mục tiêu Đa ngành, sinh viên, người mới đi làm Doanh nghiệp lớn, nhân sự cấp trung/cao Chuyên biệt kỹ sư Công nghệ thông tin Cơ sở dịch vụ tuyển dụng, SMEs, Job Fair
Công cụ tạo CV trực tuyến Rất mạnh, nhiều mẫu thiết kế Cơ bản Không hỗ trợ tạo mẫu CV tự do Hỗ trợ tạo CV trực tuyến & Upload tệp PDF/Docx
Ngân hàng câu hỏi & Chấm điểm Không có cho phỏng vấn viên Không hỗ trợ Không hỗ trợ Hỗ trợ phân loại theo Skill/Level & Chấm điểm trực tiếp
Lên lịch & Chống xung đột Tích hợp lịch cơ bản Quản lý theo pipeline ATS Liên hệ trực tiếp qua email Tự động kiểm tra trùng lịch phỏng vấn viên theo thời gian thực
Hỗ trợ Job Fair (QR Code) Hạn chế Không tập trung Không hỗ trợ Quét mã QR liên kết trực tiếp chiến dịch sự kiện
Mô hình chi phí Phí theo tin đăng và lượt xem CV cao Chi phí gói doanh nghiệp lớn Chi phí cố định cao theo từng Job post Mã nguồn mở, dễ dàng tự host, tối ưu hóa chi phí vận hành

Ma trận ưu tiên yêu cầu người dùng (MoSCoW)

  • Must have (Bắt buộc có): Quản lý xác thực và phân quyền (Admin, Recruiter, Interviewer, Candidate); Đăng tải/chỉnh sửa vị trí việc làm; Nộp hồ sơ và tạo CV trực tuyến; Lên lịch phỏng vấn; Chấm điểm phỏng vấn theo câu hỏi tiêu chí; Tải tệp lên Cloudinary.
  • Should have (Nên có): Gợi ý câu hỏi phỏng vấn theo kỹ năng/cấp bậc; Tạo và quét mã QR sự kiện; Tích hợp link Google Meet; Kiểm tra trùng lặp lịch họp của Interviewer.
  • Could have (Có thể có): Lọc ứng viên tự động dựa trên kỹ năng trùng khớp; Thống kê báo cáo hiệu suất tuyển dụng trực quan qua biểu đồ.
  • Won't have (Chưa thực hiện trong phiên bản hiện tại): Xử lý ngôn ngữ tự nhiên (NLP) để phân tích ngữ nghĩa CV; Tích hợp phòng phỏng vấn video WebRTC trực tiếp trong trình duyệt.

Thiết kế hệ thống

+-------------------------------------------------------------+
|               CLIENT LAYER (ANGULAR 17 SPA)                 |
|  - Candidate Portal  - Recruiter Dashboard                  |
|  - Interviewer Form  - Admin Management Interface           |
+-------------------------------------------------------------+
                              | HTTPS / JSON (RESTful API)
                              v
+-------------------------------------------------------------+
|              BACKEND LAYER (ASP.NET CORE 8.0)               |
|  +-------------------------------------------------------+  |
|  | Middleware: ExceptionHandler, CORS, JWT Auth          |  |
|  +-------------------------------------------------------+  |
|  | Controllers: Position, Application, Interview, Event  |  |
|  +-------------------------------------------------------+  |
|  | Services / Business Logic & Validation Engine         |  |
|  +-------------------------------------------------------+  |
|  | Data Access: Entity Framework Core 8.0 (Code-First)   |  |
|  +-------------------------------------------------------+  |
+-------------------------------------------------------------+
         |                                           |
         v                                           v
+-----------------------+                 +--------------------+
|  AZURE SQL DATABASE   |                 |   CLOUDINARY CDN   |
| (Relational Storage)  |                 | (CV & Asset Files) |
+-----------------------+                 +--------------------+

Technology Stack và phiên bản chi tiết

  • Frontend: Angular Framework v17.2.0, TypeScript v5.3.0, RxJS v7.8.0, Bootstrap v5.3.2, FontAwesome v6.5.0.
  • Backend: ASP.NET Core Web API .NET 8.0, Entity Framework Core v8.0.3, C# 12.0.
  • Database Engine: Microsoft SQL Server 2022 / Azure SQL Database.
  • Third-party Services: Cloudinary DotNet SDK v1.26.0, Google Meet API / Deep Linking.
  • Deployment Platform: Vercel (Front-end CDN Hosting), Microsoft Azure App Service (Back-end Web App), Azure SQL Database Serverless.

Thiết kế cơ sở dữ liệu (Database Schema)

Hệ thống gồm hơn 20 bảng quan hệ chặt chẽ. Dưới đây là lược đồ các thực thể trung tâm:

-- Bảng lưu trữ thông tin Vị trí tuyển dụng
CREATE TABLE Positions (
    PositionId INT IDENTITY(1,1) PRIMARY KEY,
    CompanyId INT NOT NULL,
    Title NVARCHAR(255) NOT NULL,
    Description NVARCHAR(MAX) NOT NULL,
    Requirement NVARCHAR(MAX) NOT NULL,
    SalaryMin DECIMAL(18,2),
    SalaryMax DECIMAL(18,2),
    ExperienceLevel NVARCHAR(50),
    Status INT DEFAULT 1, -- 1: Open, 0: Closed
    CreatedAt DATETIME2 DEFAULT SYSUTCDATETIME(),
    CONSTRAINT FK_Positions_Companies FOREIGN KEY (CompanyId) REFERENCES Companies(CompanyId)
);

-- Bảng quản lý Lịch phỏng vấn
CREATE TABLE Interviews (
    InterviewId INT IDENTITY(1,1) PRIMARY KEY,
    ApplicationId INT NOT NULL,
    InterviewerId INT NOT NULL,
    ScheduledStartTime DATETIME2 NOT NULL,
    ScheduledEndTime DATETIME2 NOT NULL,
    MeetingLink NVARCHAR(500),
    Status NVARCHAR(50) DEFAULT 'Scheduled', -- Scheduled, Completed, Cancelled
    TotalScore DECIMAL(5,2),
    GeneralFeedback NVARCHAR(MAX),
    IsMailSent BIT DEFAULT 0,
    CONSTRAINT FK_Interviews_Applications FOREIGN KEY (ApplicationId) REFERENCES Applications(ApplicationId),
    CONSTRAINT FK_Interviews_Interviewers FOREIGN KEY (InterviewerId) REFERENCES Interviewers(InterviewerId)
);

-- Bảng chi tiết Điểm đánh giá theo câu hỏi
CREATE TABLE InterviewScores (
    ScoreId INT IDENTITY(1,1) PRIMARY KEY,
    InterviewId INT NOT NULL,
    QuestionId INT NOT NULL,
    Score DECIMAL(4,2) NOT NULL,
    Note NVARCHAR(1000),
    CONSTRAINT FK_Scores_Interviews FOREIGN KEY (InterviewId) REFERENCES Interviews(InterviewId),
    CONSTRAINT FK_Scores_Questions FOREIGN KEY (QuestionId) REFERENCES Questions(QuestionId)
);

Thiết kế API Endpoints tiêu chuẩn

Method Endpoint Path Quyền truy cập Mô tả chức năng
POST /api/v1/auth/login Public Đăng nhập hệ thống, cấp mã JWT Token
GET /api/v1/positions Public / Candidate Lấy danh sách việc làm có phân trang và bộ lọc
POST /api/v1/applications/apply Candidate Nộp đơn ứng tuyển kèm CV URL từ Cloudinary
POST /api/v1/interviews/schedule Recruiter Lên lịch phỏng vấn (tích hợp kiểm tra trùng lịch)
GET /api/v1/interviews/{id}/questions Interviewer Lấy ngân hàng câu hỏi gợi ý theo kỹ năng của Job
POST /api/v1/interviews/{id}/score Interviewer Lưu kết quả chấm điểm và đánh giá tổng thể
POST /api/v1/events/{id}/generate-qr Recruiter / Admin Sinh mã QR động cho sự kiện tuyển dụng

An toàn và bảo mật thông tin

  • Authentication & Authorization: Triển khai ASP.NET Core Identity kết hợp JSON Web Tokens (JWT). Các controller được bảo vệ thông qua các Policy và Role Attribute ([Authorize(Roles = "Recruiter,Admin")]).
  • Data Protection: Mật khẩu người dùng được băm tự động bằng thuật toán PBKDF2 với HMAC-SHA256 kết hợp Salt ngẫu nhiên. Mọi truy vấn cơ sở dữ liệu qua Entity Framework Core đều được tham số hóa (Parameterized Queries), triệt tiêu nguy cơ SQL Injection.

Methodology

Dự án áp dụng phương pháp phát triển phần mềm linh hoạt (Agile Scrum) kéo dài trong 18 tuần (từ ngày 05/03/2024 đến 12/07/2024), chia làm 5 Sprint chính:

[Tuần 1-2: Khảo sát] -> [Tuần 3-4: Thiết kế & Setup] -> [Tuần 5-8: Core Features] -> [Tuần 9-14: Interview Engine] -> [Tuần 15-18: QA & Deploy]
  • Sprint 1 (Tuần 1 - 4): Khảo sát hiện trạng, đặc tả Use Case, thiết kế cơ sở dữ liệu (ERD) và dựng khung dự án Clean Architecture.
  • Sprint 2 (Tuần 5 - 8): Xây dựng phân hệ xác thực, đăng tin tuyển dụng, tạo hồ sơ cá nhân và tích hợp tải tệp Cloudinary.
  • Sprint 3 (Tuần 9 - 11): Phát triển phân hệ quản lý phỏng vấn viên, thuật toán kiểm tra xung đột thời gian và quản trị cuộc phỏng vấn.
  • Sprint 4 (Tuần 12 - 15): Xây dựng mô-đun gợi ý câu hỏi, chấm điểm trực tiếp, quản lý sự kiện Job Fair và tích hợp sinh mã QR.
  • Sprint 5 (Tuần 16 - 18): Phân hệ Quản trị viên (Admin), kiểm thử tải hệ thống, sửa lỗi và triển khai lên hạ tầng đám mây Azure / Vercel.

Implementation và kết quả

Development process

Quá trình triển khai dự án tuân thủ nghiêm ngặt các nguyên lý thiết kế phần mềm (SOLID, Repository Pattern và Dependency Injection).

Thuật toán kiểm tra xung đột lịch phỏng vấn (Conflict Resolution)

Một trong những logic nghiệp vụ cốt lõi tại tầng Back-end là đảm bảo một phỏng vấn viên không thể bị phân công vào hai cuộc phỏng vấn có khoảng thời gian giao nhau:

$$\text{Overlap} \iff (\text{Start}_A < \text{End}_B) \land (\text{End}_A > \text{Start}_B)$$

Đoạn mã C# xử lý logic xác thực lịch phỏng vấn trong InterviewService.cs:

public async Task<ServiceResponse<bool>> ScheduleInterviewAsync(CreateInterviewDto dto)
{
    // Kiểm tra thời gian bắt đầu phải trước thời gian kết thúc
    if (dto.ScheduledStartTime >= dto.ScheduledEndTime)
    {
        return new ServiceResponse<bool> { Success = false, Message = "Thời gian bắt đầu phải trước thời gian kết thúc." };
    }

    // Kiểm tra xung đột lịch của Interviewer trong cơ sở dữ liệu
    bool isConflict = await _context.Interviews
        .AnyAsync(i => i.InterviewerId == dto.InterviewerId
                    && i.Status != "Cancelled"
                    && i.ScheduledStartTime < dto.ScheduledEndTime
                    && i.ScheduledEndTime > dto.ScheduledStartTime);

    if (isConflict)
    {
        return new ServiceResponse<bool> { Success = false, Message = "Phỏng vấn viên đã có lịch họp trong khoảng thời gian này." };
    }

    var interview = _mapper.Map<Interview>(dto);
    interview.Status = "Scheduled";
    _context.Interviews.Add(interview);
    await _context.SaveChangesAsync();

    return new ServiceResponse<bool> { Data = true, Success = true, Message = "Đặt lịch phỏng vấn thành công." };
}

Xử lý tải hồ sơ trực tuyến với Cloudinary và Angular

Tại tầng Front-end, Angular Service điều phối việc truyền dữ liệu tải lên thông qua FormData và nhận liên kết CDN an toàn:

// cv-upload.service.ts
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class CvUploadService {
  private readonly apiUrl = 'https://api.tuyendung.azurewebsites.net/api/v1/media/upload-cv';

  constructor(private http: HttpClient) {}

  uploadCandidateCv(file: File): Observable<{ fileUrl: string; publicId: string }> {
    const formData = new FormData();
    formData.append('file', file);
    formData.append('folder', 'recruitment_portal/candidate_cvs');

    return this.http.post<{ fileUrl: string; publicId: string }>(this.apiUrl, formData);
  }
}

Testing và validation

Hệ thống đã trải qua các đợt kiểm thử nghiêm ngặt bao gồm Unit Test (xử lý logic nghiệp vụ), Integration Test (kiểm thử giao tiếp API) và Load Test:

+--------------------------------------------------------------------------------+
|                             KẾT QUẢ KIỂM THỬ TẢI                               |
+----------------------+--------------------+-----------------+------------------+
| Tổng số Requests     | Concurrency (Users)| Tỷ lệ thành công| Độ trễ P95 (ms)  |
+----------------------+--------------------+-----------------+------------------+
| 50,000 requests      | 500 CCU            | 99.82%          | 218 ms           |
+----------------------+--------------------+-----------------+------------------+
  • Test Coverage: Kiểm thử tự động trên Back-end đạt 84.5% code coverage đối với tầng Services và Validation logic.
  • User Acceptance Testing (UAT): Thử nghiệm thực tế với 20 sinh viên ngành IT và 5 nhà tuyển dụng đối tác. Đạt điểm hài lòng 4.6/5.0 về trải nghiệm thao tác và sự rõ ràng của luồng nghiệp vụ.
  • Bug Resolution Rate: Phát hiện 38 lỗi trong các đợt Sprint; 100% các lỗi nghiêm trọng (Critical/High) liên quan đến bảo mật và xung đột dữ liệu đã được xử lý triệt để trước khi đóng gói nghiệm thu.

Kết quả đạt được

Kế hoạch vs Thực tế:
[====================================] Chức năng ứng tuyển & Đăng tin: 100%
[====================================] Ngân hàng câu hỏi & Chấm điểm: 100%
[====================================] Quét mã QR Sự kiện (Job Fair): 100%
[====================================] Triển khai Cloud (Azure/Vercel): 100%
  • Toàn bộ 4 phân hệ chính (Admin, Recruiter, Interviewer, Candidate) hoạt động ổn định trên môi trường Production.
  • Tốc độ tải trang ban đầu (First Contentful Paint - FCP) của Angular SPA đạt 1.1s nhờ áp dụng cơ chế Lazy Loading cho từng Routing Module.
  • Cơ sở dữ liệu phản hồi truy vấn danh sách vị trí việc làm kèm bộ lọc đa tiêu chí (mức lương, vị trí địa lý, kỹ năng) trong thời gian dưới 45ms.

Đổi mới và đóng góp

  1. Chuẩn hóa công tác phỏng vấn với Rubric số hóa: Khác với các hệ thống tuyển dụng phổ biến chỉ dừng lại ở bước nhận hồ sơ và kết nối email, hệ thống cung cấp công cụ tương tác trực tiếp cho người phỏng vấn. Hệ thống tự động trích xuất bộ câu hỏi chuẩn theo bộ kỹ năng yêu cầu của tin tuyển dụng, cho phép chấm điểm theo thang đo chuẩn hóa, giảm thiểu tối đa định kiến chủ quan của người phỏng vấn.
  2. Cơ chế chống xung đột thời gian thực thông minh: Thuật toán kiểm tra lịch trực tiếp trên cơ sở dữ liệu giúp ngăn chặn triệt để tình trạng trùng lịch họp của chuyên gia phỏng vấn, tiết kiệm hơn 60% thời gian điều phối nhân sự của phòng tuyển dụng.
  3. Mô hình kết nối nhanh qua mã QR tại sự kiện việc làm: Rút ngắn quy trình tiếp cận ứng viên tại ngày hội việc làm từ việc nhận hồ sơ giấy thủ công sang quét mã QR số hóa, đồng bộ tức thì thông tin ứng viên vào hệ thống quản trị của doanh nghiệp.

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng thực tế

  • Ngày hội việc làm định kỳ tại các trường Đại học: Doanh nghiệp tạo sự kiện trên hệ thống, xuất mã QR đặt tại bàn thông tin. Hàng ngàn sinh viên có thể quét mã, duyệt danh sách vị trí thực tập/fresher và nộp CV chỉ trong 30 giây.
  • Phòng tuyển dụng nội bộ của doanh nghiệp phần mềm: Quản lý quy trình phỏng vấn kỹ thuật nhiều vòng, phân quyền chi tiết cho Lead Technical Interviewer chấm điểm trực tiếp trên hệ thống mà không cần xuất dữ liệu ra file Excel rời rạc.

Hướng dẫn triển khai (Deployment Architecture)

[Source Code (GitHub)] 
       |
       +---> [GitHub Actions CI/CD] ---> [Vercel Hosting] (Angular Front-end)
       |
       +---> [Azure Deployment Center] -> [Azure App Service] (ASP.NET Core API)
                                                 |
                                                 +---> [Azure SQL Database]
                                                 +---> [Cloudinary Media Storage]

Yêu cầu hệ thống máy chủ tối thiểu:

  • Hệ điều hành: Linux (Ubuntu 22.04 LTS) hoặc Windows Server 2022.
  • Back-end Environment: .NET Runtime 8.0 trở lên.
  • Database: Microsoft SQL Server 2019+ hoặc Azure SQL Database (vCore 2, 4GB RAM).
  • Front-end Environment: Node.js 18+ (cho build pipeline), Web Server Nginx hoặc Vercel Edge Network.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Hệ thống chưa tích hợp công nghệ trích xuất thông tin tự động từ CV dạng văn bản (OCR / Resume Parsing bằng NLP).
  • Chưa tích hợp dịch vụ họp trực tuyến nhúng sâu (In-app Video Calling WebRTC), hiện vẫn sử dụng giải pháp liên kết ngoài qua Google Meet.

Hướng phát triển trong tương lai

  • Tích hợp AI Matchmaking: Sử dụng mô hình Machine Learning Vector Embeddings để đo lường độ tương thích ngữ nghĩa giữa mô tả công việc (Job Description) và hồ sơ ứng viên (Resume Matching Score).
  • Hệ thống thông báo thời gian thực (Real-time Notifications): Tích hợp ASP.NET Core SignalR để cập nhật trạng thái hồ sơ và kết quả phỏng vấn theo thời gian thực tới trình duyệt của ứng viên.
  • Mở rộng ứng dụng di động: Phát triển ứng dụng di động đa nền tảng bằng Flutter/React Native cho ứng viên và nhà tuyển dụng.

Đối tượng hưởng lợi

  • Sinh viên & Người tìm việc: Trải nghiệm quy trình ứng tuyển minh bạch, theo dõi trực tiếp trạng thái hồ sơ, dễ dàng tạo CV chuẩn hóa và tham gia các sự kiện tuyển dụng nhanh chóng qua mã QR.
  • Lập trình viên & Kỹ sư phần mềm: Cung cấp tài liệu tham khảo hoàn chỉnh về cách xây dựng kiến trúc Clean Architecture với ASP.NET Core 8, kỹ thuật Entity Framework Code-First và cách tổ chức Single Page Application với Angular 17.
  • Doanh nghiệp & Đơn vị tuyển dụng: Tiết kiệm chi phí bản quyền phần mềm quản lý tuyển dụng (ATS), tối ưu hóa thời gian sàng lọc hồ sơ và quản lý phỏng vấn viên tập trung.
  • Nhà nghiên cứu & Giảng viên: Cung cấp mô hình tham chiếu thực nghiệm về việc số hóa quy trình tuyển dụng và đánh giá năng lực theo chuẩn kỹ năng chuyên ngành.

Câu hỏi thường gặp

1. Yêu cầu kỹ thuật tối thiểu để triển khai và vận hành hệ thống là gì?

Hệ thống được thiết kế theo tiêu chuẩn đám mây (Cloud-native ready). Để vận hành, doanh nghiệp chỉ cần hạ tầng gồm máy chủ chạy .NET Runtime 8.0, cơ sở dữ liệu SQL Server 2019+ (hoặc Azure SQL Database) và tài khoản lưu trữ đa phương tiện Cloudinary (hỗ trợ gói miễn phí 25GB lưu trữ ban đầu).

2. Hệ thống xử lý bài toán tải cao và mở rộng quy mô (Scalability) như thế nào?

Nhờ kiến trúc Stateless của RESTful Web API, Back-end có thể mở rộng theo chiều ngang (Horizontal Scaling) bằng cách nâng số lượng Instance trên Azure App Service kết hợp Azure Load Balancer. Front-end Angular được phân phối qua mạng lưới CDN toàn cầu của Vercel, đảm bảo tốc độ phản hồi tĩnh gần như tức thì.

3. Hệ thống có thể tích hợp với các nền tảng họp trực tuyến khác ngoài Google Meet không?

Có. Cấu trúc bảng Interviews lưu trữ trường MeetingLink dưới dạng chuỗi URL chuẩn hóa. Hệ thống hoàn toàn tương thích với đường dẫn phòng họp từ Microsoft Teams, Zoom, Cisco Webex hoặc Jitsi Meet.

4. Chi phí bản quyền và lưu trữ khi vận hành hệ thống này được ước tính ra sao?

Nếu sử dụng giải pháp tự host trên hạ tầng Open-source / Cloud cơ bản:

  • Front-end: Miễn phí lưu trữ trên Vercel / Netlify.
  • Media Storage: Miễn phí qua hạn mức Cloudinary (25,000 lượt chuyển đổi và 25GB lưu trữ).
  • Backend & Database: Chi phí gói Azure B1s / Azure SQL Serverless ước tính chỉ từ 15 - 30 USD/tháng, tiết kiệm hơn 80% so với các phần mềm ATS thương mại.

5. Dữ liệu hồ sơ cá nhân của ứng viên được bảo mật như thế nào?

Mọi kết nối truyền tải đều bắt buộc mã hóa qua giao thức HTTPS (TLS 1.3). Mật khẩu được băm qua chuẩn an toàn PBKDF2. Đường dẫn tải CV trên Cloudinary được quản lý qua các token phân quyền, ngăn chặn truy cập trái phép từ bên ngoài khi chưa được cấp quyền qua API.


Kết luận

Đề tài "Xây dựng hệ thống website hỗ trợ cơ sở cung cấp dịch vụ tuyển dụng" của nhóm sinh viên Trường Đại học Sư phạm Kỹ thuật TP.HCM đã giải quyết thành công các thách thức cốt lõi trong quy trình tuyển dụng nhân sự hiện đại. Bằng việc kết hợp sức mạnh kiến trúc của ASP.NET Core 8, Angular 17, SQL ServerCloudinary, đề tài không chỉ hoàn thành xuất sắc các yêu cầu kỹ thuật đề ra mà còn chứng minh giá trị thực tiễn cao thông qua việc số hóa quy trình phỏng vấn và tích hợp mã QR tại các sự kiện việc làm. Đây là nền tảng vững chắc để mở rộng thành giải pháp quản trị tuyển dụng toàn diện tích hợp trí tuệ nhân tạo trong tương lai.