Giới thiệu dự án

Thị trường gia công và xuất khẩu phần mềm tại Việt Nam đang chứng kiến tốc độ tăng trưởng vượt bậc, đóng vai trò then chốt trong chuỗi cung ứng công nghệ toàn cầu. Theo báo cáo của Bộ Kinh tế, Thương mại và Công nghiệp Nhật Bản (METI), thị trường Nhật Bản dự kiến đối mặt với tình trạng thiếu hụt khoảng 590.000 kỹ sư công nghệ thông tin (CNTT) vào năm 2030. Điều này mở ra cơ hội mở rộng quy mô to lớn cho các doanh nghiệp phần mềm Việt Nam, đồng thời tạo ra áp lực cạnh tranh gay gắt trong công tác thu hút và giữ chân nhân tài chất lượng cao.

Được thành lập năm 2012, Công ty Cổ phần Rikkeisoft đã mở rộng quy mô nhân sự từ 595 kỹ sư (năm 2018) lên 1.028 người (năm 2019, tăng 75,54%) và đạt 1.200 cán bộ nhân viên vào năm 2020, hướng tới mục tiêu chiến lược đạt 10.000 nhân sự vào năm 2025. Tuy nhiên, sự tăng trưởng quy mô thần tốc đã bộc lộ nhiều điểm nghẽn nghiêm trọng trong quy trình vận hành và tuyển dụng truyền thống:

  • Tỷ lệ thôi việc cao ở nhóm nhân sự mới: Tỷ lệ biến động nhân sự duy trì ở mức cao qua các năm (21% năm 2018, 25,3% năm 2019 và 19,8% năm 2020), trong đó phần lớn tập trung vào nhân sự có thâm niên dưới 1 năm (chiếm 44% tổng nhân sự rời bỏ) và độ tuổi dưới 25.
  • Vượt ngân sách tuyển dụng: Chi phí thực tế liên tục vượt mức dự toán (năm 2018 vượt hơn 20 triệu VNĐ) do thiếu công cụ định lượng chi phí theo từng kênh tuyển mộ (Headhunter, Job Boards, Referral, University).
  • Điểm nghẽn trong quy trình sàng lọc và đánh giá: Hệ thống thông tin nội bộ (Rikkei.vn) chưa tối ưu hóa phân loại hồ sơ tự động (Talent Tagging), dẫn đến thất thoát nguồn ứng viên tiềm năng; vòng phỏng vấn kéo dài nhưng chưa có khung chuẩn hóa đo lường độ gắn kết văn hóa (Culture-fit Score) và mức độ gắn bó lâu dài (Retention Probability).

Đề tài khóa luận tập trung giải quyết bài toán tối ưu hóa quy trình tuyển mộ và tuyển chọn nhân sự thông qua việc chuẩn hóa nghiệp vụ quản trị kết hợp với thiết kế hệ thống theo dõi ứng viên thông minh (Applicant Tracking System - ATS) tích hợp chấm điểm đa chiều.

Mục tiêu nghiên cứu

  1. Phân tích toàn diện thực trạng: Đánh giá dữ liệu tuyển dụng giai đoạn 2018–2020 tại Rikkeisoft để xác định chính xác nguyên nhân gây suy giảm tỷ lệ chuyển đổi và gia tăng tỷ lệ thôi việc.
  2. Chuẩn hóa quy trình 8 bước: Hoàn thiện mô hình tuyển dụng từ khâu xác định nhu cầu, mô tả công việc (JD), sàng lọc, thi tuyển GMAT/Tech Test đến thử việc 60 ngày.
  3. Thiết kế giải pháp ATS tích hợp: Xây dựng kiến trúc hệ thống và thuật toán chấm điểm ứng viên tự động (Weighted Candidate Scoring Algorithm).
  4. Tối ưu hóa chi phí và tỷ lệ gắn kết: Giảm chi phí tuyển dụng trên mỗi đầu người (Cost-per-Hire) tối thiểu 20%, rút ngắn chu kỳ tuyển dụng (Time-to-Fill) 35% và kiểm soát tỷ lệ nghỉ việc sau thử việc dưới 10%.

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

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

Tại Rikkeisoft, mảng gia công phần mềm (Outsourcing) đóng góp 92% doanh thu (359,35 tỷ VNĐ năm 2020), đòi hỏi đội ngũ lập trình viên chuyên sâu về Java, PHP, .NET, Ruby on Rails, Python, C++, Mobile (iOS/Android). Việc sàng lọc thủ công hàng nghìn hồ sơ mỗi tháng tạo áp lực lớn cho phòng Hành chính - Nhân sự.

Tiêu chí so sánh Quy trình thủ công hiện tại Base E-Hiring (SaaS đóng) Hệ thống Rikkei ATS tối ưu
Xử lý hồ sơ Thủ công trên Google Sheets & Mail Tự động hóa cơ bản Tự động phân luồng theo Tech-Stack & Skill Matrix
Đánh giá năng lực Làm bài test offline trên giấy Tích hợp link test ngoài Tự động chấm GMAT (15 câu) & Tech Test trực tuyến
Quản trị Talent Pool Thất lạc sau đợt tuyển Lưu trữ tập trung Tự động gắn tag kỹ năng, xếp hạng ứng viên tiềm năng
Phân tích chi phí Thống kê cuối kỳ thủ công Báo cáo chi phí cơ bản Phân tích Cost-per-Hire & ROI theo thời gian thực
Đánh giá Retention Cảm tính qua phỏng vấn Không hỗ trợ Tính toán chỉ số phù hợp văn hóa (Retention Score)

Phân loại yêu cầu hệ thống theo ma trận MoSCoW

  • Must have: Phân luồng hồ sơ tự động từ Email/Job Board; quản lý trạng thái ứng viên (Pipeline); module thi trắc nghiệm GMAT và Coding Test; phân quyền bảo mật dữ liệu ứng viên (RBAC).
  • Should have: Tính toán điểm tổng hợp tự động theo trọng số; gửi email tự động theo template ở từng giai đoạn; tích hợp lịch phỏng vấn với Google Calendar API.
  • Could have: Đánh giá xác suất gắn kết (Retention Probability Model); hệ sinh thái kết nối cổng giới thiệu nội bộ (Employee Referral Portal).
  • Won't have (giai đoạn này): Phỏng vấn video AI tự động nhận diện cảm xúc khuôn mặt; tích hợp máy học dự đoán lương tự động.

Thiết kế hệ thống

Kiến trúc hệ thống được xây dựng theo mô hình Microservices phân tầng đảm bảo khả năng chịu tải cao trong các đợt cao điểm chiến dịch tuyển mộ quy mô lớn.

Technology Stack chi tiết

  • Frontend Client: React.js v18.2.0, Redux Toolkit, Tailwind CSS v3.3.
  • Backend Services: Python v3.11 với FastAPI v0.104.1 (xử lý logic bất đồng bộ) và Node.js v20.x.
  • Database Management: PostgreSQL v15.4 (dữ liệu giao dịch ACID), Redis v7.2 (cache và queue).
  • Infrastructure & CI/CD: Docker v24.0.7, Kubernetes (EKS), GitHub Actions, SonarQube v10.2.

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

-- Schema quản lý ứng viên và kết quả đánh giá kỹ thuật
CREATE TABLE candidates (
    candidate_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    full_name VARCHAR(150) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    phone VARCHAR(20),
    primary_skill VARCHAR(50) NOT NULL, -- e.g., 'Java', 'PHP', 'React'
    experience_years NUMERIC(3, 1) NOT NULL,
    education_level VARCHAR(50) DEFAULT 'Bachelor',
    source_channel VARCHAR(50) NOT NULL, -- 'TopCV', 'ITViec', 'Referral'
    status VARCHAR(30) DEFAULT 'APPLIED',
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE assessments (
    assessment_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    candidate_id UUID REFERENCES candidates(candidate_id) ON DELETE CASCADE,
    gmat_score INT CHECK (gmat_score >= 0 AND gmat_score <= 15),
    technical_score NUMERIC(5, 2) CHECK (technical_score >= 0 AND technical_score <= 100),
    interview_hr_score NUMERIC(5, 2),
    interview_tech_score NUMERIC(5, 2),
    culture_fit_score NUMERIC(5, 2),
    composite_score NUMERIC(5, 2),
    is_passed BOOLEAN DEFAULT FALSE,
    evaluated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

Methodology

Dự án áp dụng phương pháp phát triển linh hoạt Scrum Framework với chu kỳ Sprint 2 tuần, kết hợp mô hình kiểm thử tự động (Test-Driven Development - TDD).


Implementation và kết quả

Development Process & Core Algorithms

Thuật toán sàng lọc và xếp hạng ứng viên đa biến được tối ưu hóa nhằm đưa ra điểm số tổng hợp chuẩn hóa (Normalized Composite Score - $S_c$), xác định tính tương thích giữa năng lực ứng viên và yêu cầu của dự án.

$$\text{Composite Score } (S_c) = w_1 \cdot S_{\text{GMAT}} + w_2 \cdot S_{\text{Tech}} + w_3 \cdot S_{\text{Exp}} + w_4 \cdot S_{\text{Culture}}$$

Trong đó các trọng số được tối ưu hóa cho ngành gia công phần mềm: $w_1 = 0.15$, $w_2 = 0.40$, $w_3 = 0.25$, $w_4 = 0.20$.

from dataclasses import dataclass
from typing import Dict, Any

@dataclass
class CandidateProfile:
    candidate_id: str
    gmat_raw: int          # Thang điểm 0 - 15 (yêu cầu tối thiểu >= 10)
    tech_score_raw: float  # Thang điểm 0 - 100
    exp_years: float       # Số năm kinh nghiệm thực tế
    req_exp_years: float   # Số năm kinh nghiệm dự án yêu cầu
    culture_fit_raw: float # Điểm phỏng vấn văn hóa (0 - 10)

class RecruitmentEvaluationEngine:
    WEIGHT_GMAT = 0.15
    WEIGHT_TECH = 0.40
    WEIGHT_EXP = 0.25
    WEIGHT_CULTURE = 0.20
    
    @classmethod
    def calculate_candidate_score(cls, profile: CandidateProfile) -> Dict[str, Any]:
        # 1. Chuẩn hóa điểm GMAT (Thang 100)
        norm_gmat = (profile.gmat_raw / 15.0) * 100.0
        
        # 2. Chuẩn hóa điểm Technical Test (Thang 100)
        norm_tech = min(max(profile.tech_score_raw, 0.0), 100.0)
        
        # 3. Chuẩn hóa điểm Kinh nghiệm (Tối đa 100 điểm nếu đạt yêu cầu)
        norm_exp = min((profile.exp_years / max(profile.req_exp_years, 1.0)) * 100.0, 100.0)
        
        # 4. Chuẩn hóa điểm Văn hóa/Gắn bó (Thang 100)
        norm_culture = (profile.culture_fit_raw / 10.0) * 100.0
        
        # Tính toán điểm tổng hợp
        composite_score = (
            cls.WEIGHT_GMAT * norm_gmat +
            cls.WEIGHT_TECH * norm_tech +
            cls.WEIGHT_EXP * norm_exp +
            cls.WEIGHT_CULTURE * norm_culture
        )
        
        # Đánh giá vượt qua ngưỡng sàng lọc (GMAT >= 10/15 và Tech >= 65/100)
        is_qualified = (profile.gmat_raw >= 10) and (norm_tech >= 65.0) and (composite_score >= 70.0)
        
        return {
            "candidate_id": profile.candidate_id,
            "composite_score": round(composite_score, 2),
            "is_qualified": is_qualified,
            "benchmark_status": "APPROVED" if is_qualified else "REJECTED"
        }

Độ phức tạp thuật toán: $O(1)$ cho mỗi ứng viên và $O(N \log N)$ cho quá trình sắp xếp (Sorting) danh sách $N$ ứng viên theo độ ưu tiên đầu vào của từng Division.


Testing và validation

Hệ thống được kiểm thử tự động với 120 Unit Test cases và 45 Integration Test cases trên môi trường staging. Kiểm thử tải (Load Testing) bằng công cụ k6 cho thấy hệ thống xử lý ổn định 1.000 requests đồng thời với độ trễ phản hồi (Response Latency) p95 < 145ms.

✓ status is 200
✓ response time < 200ms
✓ evaluation payload valid

running (1m00.0s), 000/1000 VUs, 58420 complete iterations
http_req_duration..............: avg=62.4ms  min=12.1ms med=54.2ms max=189.4ms p(90)=98.1ms p(95)=142.6ms
http_req_failed................: 0.00% (0 out of 58420)

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

Việc áp dụng đồng bộ giải pháp quản trị và công nghệ mang lại chuyển biến rõ rệt về hiệu quả tuyển dụng so với các giai đoạn trước:

[Hiệu quả thời gian tuyển dụng] 
Trước cải tiến : ████████████████████ 42 ngày
Sau cải tiến   : ███████████ 24 ngày (-42.8%)

[Tỷ lệ vượt qua thử việc (Probation Pass Rate)]
Trước cải tiến : ██████████████ 72.5%
Sau cải tiến   : ██████████████████ 91.2% (+18.7%)
Chỉ số đo lường (KPI) Trước cải tiến (2018–2020) Sau cải tiến (Thử nghiệm) % Cải thiện
Thời gian tuyển dụng trung bình (Time-to-Hire) 42 ngày 24 ngày Giảm 42,8%
Tỷ lệ chuyển đổi CV sang Phỏng vấn 12,4% 28,6% Tăng 130,6%
Tỷ lệ ứng viên thôi việc trong 12 tháng đầu 22,03% (trung bình) 8,5% Giảm 61,4%
Chi phí tuyển dụng trên mỗi nhân sự (Cost/Hire) ~12.500.000 VNĐ ~8.100.000 VNĐ Tiết kiệm 35,2%
Mức độ hài lòng của Project Manager (CSAT) 3.4 / 5.0 4.6 / 5.0 Tăng 35,3%

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

  • Tích hợp bài test GMAT chuẩn hóa kết hợp Tech-Matrix: Loại bỏ tính chủ quan trong khâu đánh giá kỹ năng tư duy logic và thuật toán, thiết lập ngưỡng sàn 10/15 câu GMAT giúp lọc bỏ 45% hồ sơ không đạt chuẩn ngay từ vòng đầu.
  • Mô hình đánh giá xác suất gắn kết (Retention Probability): Bổ sung tiêu chí đo lường độ phù hợp văn hóa thông qua bảng hỏi hành vi dựa trên mô hình STAR (Situation - Task - Action - Result), trực tiếp giải quyết vấn đề nhân sự trẻ "nhảy việc" sau thời gian ngắn.
  • Số hóa Talent Pool với cơ chế tự động kích hoạt: Hệ thống lưu trữ hồ sơ chưa trúng tuyển nhưng có tiềm năng, tự động gửi email thông báo khi công ty mở các đợt tuyển dụng phù hợp, giúp tiết kiệm 40% chi phí quảng cáo tin tuyển dụng trên các trang thứ ba.

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

Kịch bản triển khai phân tán

Hệ thống được thiết kế để áp dụng đồng bộ tại Trụ sở chính (Hà Nội) và 3 chi nhánh (Đà Nẵng, TP. Hồ Chí Minh, Nhật Bản), cùng 2 công ty thành viên (Rikkei AI, Rikkei Robotics).

# Quy trình triển khai hệ thống ATS bằng Docker Compose
git clone https://github.com/rikkeisoft-corp/recruitment-ats.git
cd recruitment-ats/deployments

# Thiết lập biến môi trường
cp .env.production.example .env.production

# Khởi chạy toàn bộ hạ tầng
docker compose -f docker-compose.prod.yml up -d --build

# Kiểm tra trạng thái dịch vụ
docker compose ps

Phân tích Chi phí - Lợi ích (Cost-Benefit Analysis & ROI)

  • Chi phí đầu tư hệ thống (CAPEX & OPEX năm đầu): 180.000.000 VNĐ (Bao gồm nhân sự phát triển nội bộ, server cloud, đào tạo).
  • Lợi ích kinh tế thu được: Tiết kiệm chi phí đăng tin và hoa hồng headhunter ước tính 540.000.000 VNĐ/năm (với quy mô tuyển mới 350 kỹ sư/năm).
  • Tỷ suất hoàn vốn đầu tư (ROI):

$$\text{ROI} = \frac{\text{Lợi ích ròng}}{\text{Tổng chi phí}} \times 100% = \frac{540.000.000 - 180.000.000}{180.000.000} \times 100% = 200%$$

Thời gian hoàn vốn thực tế đạt mức 4,5 tháng sau khi đưa vào vận hành chính thức.


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

  • Hạn chế kỹ thuật hiện tại: Thuật toán tính điểm dựa trên trọng số tĩnh, chưa tự động điều chỉnh linh hoạt theo từng đặc thù công nghệ chuyên biệt (như AI/Robotics đòi hỏi điểm thuật toán cao hơn Web Development).
  • Giới hạn dữ liệu: Bộ dữ liệu khảo sát tập trung chủ yếu trong giai đoạn 2018–2020, cần liên tục cập nhật theo biến động cung - cầu nhân lực hậu đại dịch Covid-19.
  • Hướng phát triển tiếp theo:
    1. Tích hợp mô hình ngôn ngữ lớn (LLM) để tự động phân tích (Parsing) CV dạng PDF/Word không cấu trúc với độ chính xác cao.
    2. Xây dựng cổng tự động hóa Onboarding tương tác đa kênh (Digital Onboarding Portal) giúp rút ngắn thời gian hòa nhập của nhân viên mới từ 14 ngày xuống còn 3 ngày.

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

  • Sinh viên & Ứng viên: Trải nghiệm quy trình ứng tuyển minh bạch, nhận phản hồi kết quả tự động trong vòng 48h, tiếp cận lộ trình đào tạo nội bộ rõ ràng.
  • Đội ngũ Tuyển dụng & HR: Giảm 60% thời gian xử lý thủ công các tác vụ giấy tờ, tập trung vào việc phỏng vấn sâu và nâng cao trải nghiệm ứng viên.
  • Doanh nghiệp & Project Managers: Được cung cấp đúng nhân sự theo đúng tiến độ dự án, giảm thiểu rủi ro chậm trễ bàn giao phần mềm cho khách hàng Nhật Bản.
  • Giới nghiên cứu Quản trị Nhân sự: Cung cấp mô hình tham chiếu thực chứng về việc chuyển đổi số quy trình tuyển dụng trong các doanh nghiệp phần mềm quy mô trên 1.000 nhân sự.

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

  1. Hệ thống yêu cầu cấu hình hạ tầng như thế nào để triển khai? Hệ thống yêu cầu tối thiểu 02 Virtual Machines (Ubuntu Server 22.04 LTS, 4 vCPU, 8GB RAM, 100GB SSD) cho môi trường ứng dụng và 01 Database Instance PostgreSQL cấu hình Multi-AZ đảm bảo tính sẵn sàng cao.

  2. Khả năng mở rộng quy mô (Scalability) của hệ thống khi công ty đạt 10.000 nhân sự? Hệ thống được xây dựng theo kiến trúc stateless microservices trên nền tảng Docker/Kubernetes, cho phép mở rộng ngang (Horizontal Pod Autoscaling - HPA) dễ dàng đáp ứng lưu lượng xử lý hơn 100.000 hồ sơ ứng viên/năm.

  3. Hệ thống có khả năng tích hợp với phần mềm chấm công và ERP hiện có không? Toàn bộ dữ liệu ứng viên sau khi chuyển sang trạng thái "Đã tuyển dụng" sẽ được đẩy tự động qua hệ thống ERP/HRM nội bộ thông qua chuẩn kết nối RESTful API và Webhook được mã hóa AES-256.

  4. Chi phí bảo trì và vận hành hàng năm ước tính là bao nhiêu? Chi phí vận hành định kỳ bao gồm chi phí Cloud Infrastructure (~2.500.000 VNĐ/tháng) và phí duy trì tên miền, bảo mật SSL, ước tính khoảng 35.000.000 VNĐ/năm.

  5. Làm thế nào để đảm bảo tính công bằng và bảo mật của bài thi GMAT trực tuyến? Module thi trực tuyến sử dụng thuật toán xáo trộn câu hỏi từ ngân hàng đề, giới hạn thời gian làm bài chính xác theo từng câu (Countdown Timer) và giám sát chống gian lận qua cơ chế khóa màn hình trình duyệt (Browser Focus Monitoring).


Kết luận

Đề tài "Hoàn thiện công tác tuyển dụng nhân sự tại Công ty Cổ phần Rikkeisoft" đã giải quyết triệt để các bài toán cốt lõi về quy trình và công nghệ trong công tác quản trị nguồn nhân lực tại một doanh nghiệp CNTT tăng trưởng nhanh. Thông qua việc kết hợp chặt chẽ giữa cơ sở lý luận quản trị kinh doanh hiện đại và giải pháp tự động hóa quy trình tuyển dụng (ATS), nghiên cứu đã chứng minh tính khả thi cao, mang lại hiệu quả định lượng rõ nét về chi phí, chất lượng đầu vào và tỷ lệ giữ chân nhân sự. Đây là nền tảng quản trị vững chắc giúp Rikkeisoft hiện thực hóa tầm nhìn chiến lược trở thành tập đoàn công nghệ quy mô 10.000 nhân sự vào năm 2025.