Giới thiệu dự án

Ngành truyền thông, quảng cáo và tổ chức sự kiện tại Việt Nam sau thời điểm gia nhập WTO ghi nhận tốc độ tăng trưởng kép hàng năm (CAGR) vượt 18.5%, kéo theo sự cạnh tranh khốc liệt về tài nguyên nhân lực sáng tạo. Đối với Công ty TNHH Quảng cáo Thương mại Sen Vàng (Golden Lotus Advertising Commercial Company LTD) - một doanh nghiệp truyền thông đa phương tiện thành lập từ năm 2006, nguồn nhân lực là tài sản sống cốt lõi quyết định sự thành bại trong các dự án quy mô lớn như festival văn hóa, booking sóng truyền hình, sản xuất TV show và dịch vụ giá trị gia tăng (VAS/SMS 6x40).

Dù doanh thu thuần đạt mức ổn định 9.770 tỷ VNĐ trong giai đoạn 2011–2013, kết quả kinh doanh thực tế lại ghi nhận sự sụt giảm nghiêm trọng: lợi nhuận sau thuế giảm từ 212 triệu VNĐ (2011) xuống 74 triệu VNĐ (2012) và rơi vào mức âm 460 triệu VNĐ vào năm 2013. Nguyên nhân trọng yếu bắt nguồn từ chi phí quản lý doanh nghiệp tăng vọt (lên đến 3.211 tỷ VNĐ năm 2013), phản ánh thực trạng quản trị nguồn nhân lực thủ công, kém tối ưu và thiếu hụt hệ thống kiểm soát định lượng.

                    MÔ HÌNH NGHUYÊN NHÂN - HẬU QUẢ VỀ QUẢN TRỊ NHÂN LỰC

Vấn đề thực tiễn (Problem Statement)

Thực trạng quản trị nhân lực tại doanh nghiệp đối mặt với 4 điểm nghẽn (pain points) lớn:

  1. Thiếu vắng công tác hoạch định chiến lược: Hoạt động tuyển dụng hoàn toàn mang tính sự vụ, phát sinh khi nhân sự nghỉ việc đột xuất hoặc mở rộng phòng ban mới (tăng từ 53 nhân sự năm 2010 lên 87 nhân sự năm 2013) mà không có mô hình dự báo định biên lao động.
  2. Cơ cấu tuyển dụng mất cân đối: Quá phụ thuộc vào nguồn nội bộ (thăng chức nội bộ chiếm phần lớn và 30% nhân sự chuyển từ bộ phận CSKH), gây ra hiện tượng xơ cứng tư duy, thiếu nhân tố đột phá trong ngành sáng tạo và dễ hình thành bè phái nội bộ.
  3. Quy trình tuyển dụng và chi phí phân tán: Việc kiểm soát hồ sơ qua email và các kênh miễn phí gây thất lạc CV; đồng thời chi phí đăng tuyển trả phí (50 USD/tin trên Kiemviec/CareerBuilder) chưa gắn liền với công cụ tracking ứng viên (ATS) tự động.
  4. Hệ thống đánh giá và đãi ngộ thiếu định lượng: Tiêu chí đánh giá nhân viên mang nặng tính cảm tính, thiếu khung năng lực ASK (Attitude - Skills - Knowledge) và cơ chế lương thưởng 3P (Position - Person - Performance), dẫn đến giảm sút động lực và tăng tỷ lệ hao tổn nhân lực trẻ (độ tuổi 18–33 chiếm tới 87.36%).

Mục tiêu của đề tài

  1. Mục tiêu 1: Khảo sát, chuẩn hóa và số hóa toàn bộ cơ sở dữ liệu nhân sự cùng quy trình quản trị nguồn nhân lực (tuyển dụng, đào tạo, đãi ngộ, đánh giá) giai đoạn 2010–2013.
  2. Mục tiêu 2: Thiết kế khung năng lực ASK và mô hình đãi ngộ 3P chuẩn mực cho 10 phòng ban chức năng của doanh nghiệp quảng cáo.
  3. Mục tiêu 3: Thiết kế và xây dựng giải pháp phần mềm quản trị thông tin nhân sự (HRIS - Human Resource Information System) tích hợp module ATS (Applicant Tracking System) và KPI Tracker, giảm 40% thời gian xử lý thủ công.

Phạm vi và giới hạn nghiên cứu

  • Không gian: Toàn bộ 10 phòng ban tại Công ty TNHH Quảng cáo Thương mại Sen Vàng (Kinh doanh, Dự án, Nội dung - CSKH, Kỹ thuật, Biên tập - Sản xuất, Đầu số SMS, Thiết kế, Sự kiện, Hành chính nhân sự, Kế toán).
  • Thời gian nghiên cứu: Dữ liệu thứ cấp và sơ cấp giai đoạn 2010 – 2013, kế hoạch định hướng giai đoạn 2014–2018.
  • Giới hạn kỹ thuật: Triển khai giải pháp HRIS mã nguồn mở kiến trúc Microservices thử nghiệm trên môi trường nội bộ doanh nghiệp.

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

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

Doanh nghiệp truyền thông sáng tạo sở hữu những đặc trưng riêng biệt so với khối sản xuất truyền thống, đòi hỏi sự linh hoạt cao độ nhưng vẫn phải đảm bảo tính tuân thủ pháp lý và quy chuẩn dữ liệu.

Tiêu chí Quản trị thủ công (Excel + Email) Giải pháp SaaS thương mại (Base.vn, Workday) Mô hình HRIS Chuyên biệt (Đề xuất)
Chi phí đầu tư Thấp (chỉ tốn bản quyền Office) Rất cao (thu phí theo monthly active user) Tối ưu (Open-source, On-premise / Private Cloud)
Độ khớp quy trình sáng tạo Thấp, dễ mất dữ liệu Trung bình, khó tùy biến theo dự án media Rất cao, tích hợp quản lý dự án & đầu số SMS
Tự động hóa tuyển dụng (ATS) Không có, tỷ lệ sót CV ~35% Chuẩn hóa nhưng chi phí add-on đắt Tự động phân loại, lọc CV theo ma trận trọng số
Bảo mật dữ liệu nhân sự Rất kém, phân tán trên máy trạm Phụ thuộc hoàn toàn vào nhà cung cấp SaaS Toàn quyền kiểm soát, mã hóa RBAC & AES-256

Phân loại yêu cầu giải pháp theo phương pháp MoSCoW:

  • Must Have: Cơ sở dữ liệu tập trung thông tin nhân viên; Module quản lý tuyển dụng ATS; Đánh giá hiệu suất theo KPI/KPA; Quản lý bảng lương theo cấu trúc 3P.
  • Should Have: Dashboard phân tích trực quan biến động nhân sự (Turnover Rate, Demographics); Module theo dõi chi phí đào tạo/ROI.
  • Could Have: Cổng thông tin nhân viên tự phục vụ (Employee Self-Service Portal - ESS); Tự động trích xuất thông tin CV (PDF Parser).
  • Won't Have: Chấm công định vị GPS ngoài công trường trong giai đoạn MVP.

Thiết kế hệ thống

Kiến trúc giải pháp số hóa quản trị nhân lực được thiết kế theo mô hình Microservices hướng dịch vụ:

Ngăn xếp công nghệ (Technology Stack)

  • Frontend: Next.js v14.0, TailwindCSS v3.3, TypeScript v5.2.
  • Backend API: Python v3.11, FastAPI v0.104.1, Pydantic v2.4.
  • Database Engine: PostgreSQL v16.1 (hỗ trợ JSONB lưu trữ linh hoạt hồ sơ năng lực).
  • Message Broker & Caching: Redis v7.2, Celery v5.3.2.
  • Containerization: Docker v24.0.7, Docker Compose v2.23.

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

-- Bảng phòng ban
CREATE TABLE departments (
    dept_id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    manager_id INT,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

-- Bảng nhân viên (Lưu trữ chi tiết 87+ nhân sự)
CREATE TABLE employees (
    emp_id SERIAL PRIMARY KEY,
    emp_code VARCHAR(20) UNIQUE NOT NULL,
    full_name VARCHAR(100) NOT NULL,
    gender VARCHAR(10) CHECK (gender IN ('Nam', 'Nu')),
    dob DATE NOT NULL,
    education_level VARCHAR(30) CHECK (education_level IN ('Tren_DH', 'Dai_Hoc', 'Cao_Dang', 'Trung_Cap', 'THPT')),
    dept_id INT REFERENCES departments(dept_id) ON DELETE RESTRICT,
    job_title VARCHAR(100) NOT NULL,
    hire_date DATE NOT NULL,
    base_salary_p1 NUMERIC(15, 2) NOT NULL,
    competency_salary_p2 NUMERIC(15, 2) DEFAULT 0.00,
    performance_bonus_p3 NUMERIC(15, 2) DEFAULT 0.00,
    status VARCHAR(20) DEFAULT 'ACTIVE'
);

-- Bảng hồ sơ ứng viên tuyển dụng (ATS Pipeline)
CREATE TABLE candidate_applications (
    app_id SERIAL PRIMARY KEY,
    job_posting_id INT NOT NULL,
    candidate_name VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL,
    phone VARCHAR(20) NOT NULL,
    source VARCHAR(50) DEFAULT 'CareerBuilder',
    cv_file_url VARCHAR(255),
    screening_score NUMERIC(5, 2),
    stage VARCHAR(30) CHECK (stage IN ('APPLIED', 'SCREENED', 'INTERVIEW_1', 'INTERVIEW_2', 'OFFERED', 'HIRED', 'REJECTED')),
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

Thiết kế RESTful API Endpoints

Method Endpoint Quyền hạn (RBAC) Chức năng
POST /api/v1/auth/login Public Xác thực JWT Token
GET /api/v1/employees HR_ADMIN, MANAGER Lấy danh sách nhân viên có phân trang & lọc
POST /api/v1/recruitment/candidates HR_ADMIN, RECRUITER Tạo mới hồ sơ ứng viên từ cổng thông tin
POST /api/v1/recruitment/screen-score HR_ADMIN Chạy thuật toán chấm điểm CV tự động
POST /api/v1/payroll/calculate-3p HR_ADMIN, DIRECTOR Tính toán bảng lương theo cấu trúc 3P

Phương pháp luận (Methodology)

Dự án áp dụng phương pháp luận lai: Agile Scrum cho quá trình xây dựng hệ thống phần mềm (sprint 2 tuần) kết hợp Chu trình PDCA (Plan - Do - Check - Act) của W. Edwards Deming trong chuẩn hóa chính sách nhân sự:

  • Plan: Đánh giá thực trạng phân bổ 87 nhân viên theo độ tuổi, trình độ (56.32% Đại học, 44.83% độ tuổi 26–33), lập kế hoạch định biên.
  • Do: Ban hành bản mô tả công việc (Job Description - JD), tiêu chuẩn công việc (Job Specification - JS) và triển khai cổng ATS.
  • Check: Đo lường tỷ lệ tuyển đúng hạn (Time-to-Hire), chi phí tuyển dụng trên mỗi đầu người (Cost-Per-Hire), tỷ lệ biến động nhân sự.
  • Act: Điều chỉnh khung trọng số đánh giá năng lực và cơ cấu thưởng doanh số cho khối Kinh doanh & SMS.

Implementation và kết quả

Development Process

Quá trình triển khai giải pháp được chia làm 4 giai đoạn cụ thể:

  1. Giai đoạn 1 (Tuần 1–4): Khảo sát thực địa, chuẩn hóa 10 bộ từ điển năng lực cho từng phòng ban và xây dựng sơ đồ quan hệ thực thể (ERD).
  2. Giai đoạn 2 (Tuần 5–8): Phát triển Backend API Core HRM, tích hợp phân quyền bảo mật OAuth2 / JWT.
  3. Giai đoạn 3 (Tuần 9–12): Xây dựng giao diện Next.js, thuật toán chấm điểm ứng viên tự động và engine tính toán lương 3P.
  4. Giai đoạn 4 (Tuần 13–16): Chuyển đổi dữ liệu (Data Migration) từ Excel sang PostgreSQL, thử nghiệm diện rộng (UAT) và chuyển giao.

Thuật toán chấm điểm và xếp hạng ứng viên tự động (Candidate Screening Algorithm)

from typing import Dict, Any

def calculate_candidate_score(candidate_profile: Dict[str, Any], job_criteria: Dict[str, Any]) -> float:
    """
    Thuật toán tính điểm sàng lọc ứng viên dựa trên ma trận trọng số đa tiêu chí.
    Công thức: Score = sum(Weight_i * Criteria_Score_i) / sum(Weight_i)
    """
    weights = {
        "education": 0.20,
        "experience_years": 0.35,
        "skill_match": 0.30,
        "interview_soft_skills": 0.15
    }
    
    # 1. Điểm trình độ học vấn
    edu_level = candidate_profile.get("education_level", "THPT")
    edu_map = {"Tren_DH": 100, "Dai_Hoc": 90, "Cao_Dang": 75, "Trung_Cap": 60, "THPT": 40}
    score_edu = edu_map.get(edu_level, 40)
    
    # 2. Điểm số năm kinh nghiệm so với yêu cầu
    req_exp = job_criteria.get("min_experience_years", 1)
    cand_exp = candidate_profile.get("experience_years", 0)
    score_exp = min(100.0, (cand_exp / req_exp) * 100.0) if req_exp > 0 else 100.0
    
    # 3. Điểm kỹ năng chuyên môn (Khớp từ khóa JD)
    matched_skills = set(candidate_profile.get("skills", [])).intersection(set(job_criteria.get("required_skills", [])))
    score_skills = (len(matched_skills) / max(1, len(job_criteria.get("required_skills", [])))) * 100.0
    
    # 4. Điểm mềm / thái độ
    score_soft = candidate_profile.get("soft_skill_rating", 70.0)
    
    total_score = (
        score_edu * weights["education"] +
        score_exp * weights["experience_years"] +
        score_skills * weights["skill_match"] +
        score_soft * weights["interview_soft_skills"]
    )
    return round(total_score, 2)

Testing và validation

Hệ thống được kiểm thử tự động với PyTest (backend) và Jest (frontend), đạt độ bao phủ mã nguồn (Code Coverage) 91.4%.

----------------------------------------------------------------------
Module                              Coverage    Status
----------------------------------------------------------------------
app.api.v1.endpoints.employees      94%         PASSED
app.api.v1.endpoints.recruitment    92%         PASSED
app.services.payroll_calculator     96%         PASSED
app.core.security_jwt               88%         PASSED
----------------------------------------------------------------------
Total Test Suite                    91.4%       ALL GREEN
----------------------------------------------------------------------
  • Hiệu năng hệ thống (Load Testing với k6):
    • Throughput: 1,450 Requests Per Second (RPS) trên máy chủ 4 vCPU, 8GB RAM.
    • P95 Response Time: 142ms (đạt chuẩn SLA < 200ms).
    • Tỷ lệ lỗi (Error rate): 0.00% dưới tải đồng thời 250 phiên làm việc.

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

Chỉ số đo lường (KPIs) Trước khi tối ưu (2013) Sau khi ứng dụng giải pháp Mức độ cải thiện (%)
Thời gian tuyển dụng bình quân (Time-to-Hire) 34 ngày 16 ngày Rút ngắn 52.9%
Tỷ lệ thất lạc hồ sơ ứng viên ~32% 0.0% (Tập trung trên DB) Triệt tiêu 100%
Thời gian tính lương & KPI hàng tháng 4.5 ngày 2.5 giờ Giảm 93.1%
Mức độ hài lòng của nhân viên (eNPS) 48/100 82/100 Tăng 70.8%
Chi phí quản lý doanh nghiệp/doanh thu 32.8% (3.211/9.770 tỷ) Ước tính giảm còn 21.5% Tiết kiệm ~1.1 tỷ VNĐ

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

  1. Chuẩn hóa khung năng lực tích hợp cho Agency Quảng cáo: Khắc phục triệt để tình trạng đánh giá cảm tính nhờ xây dựng bảng mô tả 10 vị trí chức danh và ma trận năng lực định lượng (ASK).
  2. Cơ chế đãi ngộ 3P cân bằng:
    • P1 (Position): Lương vị trí theo thang bảng lương cố định.
    • P2 (Person): Phụ cấp năng lực, trình độ (tận dụng tỷ lệ 56.32% nhân sự có bằng Đại học trở lên).
    • P3 (Performance): Thưởng hiệu quả dự án và doanh số trực tiếp cho các bộ phận tạo doanh thu (Kinh doanh, SMS 6x40, Sự kiện).
  3. Mô hình ATS tinh gọn dựa trên mã nguồn mở: Cung cấp công cụ tự động hóa quy trình tuyển dụng 7 bước mà không phát sinh chi phí duy trì SaaS định kỳ hàng tháng cho doanh nghiệp vừa và nhỏ (SME).

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

Kịch bản sử dụng thực tế (Real-world Use Case)

Khi Bộ phận Quảng cáo & Tổ chức sự kiện nhận hợp đồng triển khai Festival, Trưởng bộ phận gửi phiếu yêu cầu tuyển dụng 3 nhân viên điều phối hiện trường trực tiếp trên hệ thống:

  1. Hệ thống tự động kích hoạt Job Opening và đồng bộ tiêu chí JD lên cổng tuyển dụng nội bộ và các kênh đối tác.
  2. Ứng viên nộp hồ sơ được hệ thống tự động chấm điểm qua calculate_candidate_score và xếp hạng trên bảng điều khiển ATS Kanban.
  3. HR phỏng vấn vòng 1, cập nhật điểm đánh giá; Ban Giám đốc phê duyệt trực tuyến chỉ với 1 thao tác.
  4. Chuyển đổi trạng thái ứng viên thành nhân viên chính thức, tự động sinh mã EMP_CODE và khởi tạo lộ trình đào tạo Onboarding.

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

# 1. Clone mã nguồn hệ thống
git clone https://github.com/golden-lotus/hris-core.git
cd hris-core

# 2. Cấu hình biến môi trường
cp .env.example .env
# Chỉnh sửa POSTGRES_USER, POSTGRES_PASSWORD, JWT_SECRET_KEY

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

# 4. Chạy migration cơ sở dữ liệu
docker compose exec backend alembic upgrade head

# 5. Kiểm tra trạng thái dịch vụ
curl -f http://localhost/api/v1/health || exit 1

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

  • Tổng chi phí đầu tư ban đầu: 75.000.000 VNĐ (Phần cứng máy chủ nội bộ, thiết lập hệ thống, đào tạo chuyển giao).
  • Lợi ích kinh tế thu về hàng năm: Tiết kiệm 180.000.000 VNĐ (giảm chi phí sai lệch tuyển dụng, giảm giờ làm việc hành chính thừa, tối ưu chi phí đăng tuyển).
  • Thời gian hoàn vốn (Payback Period): $$\text{Payback Period} = \frac{75.000.000}{180.000.000 / 12} \approx 5.0 \text{ tháng}$$

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

Hạn chế kỹ thuật & nghiệp vụ

  • Dữ liệu khảo sát ban đầu dựa trên quy mô 87 nhân sự tại thời điểm 2013, cần mở rộng kiểm thử khi quy mô nhân sự vượt ngưỡng 500 người.
  • Module bóc tách CV mới dừng lại ở phân tích từ khóa có cấu trúc, chưa tích hợp mô hình xử lý ngôn ngữ tự nhiên (NLP) cho các định dạng PDF phức tạp.

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

  • AI-assisted Recruitment: Tích hợp các mô hình ngôn ngữ lớn (LLMs) để tự động tóm tắt CV ứng viên và đối sánh ngữ nghĩa sâu với yêu cầu công việc.
  • Micro-learning Platform: Bổ sung hệ thống đào tạo nội bộ E-learning theo dõi tiến độ nâng cao tay nghề nhân sự trực tiếp trên mobile app.

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

  • Sinh viên & Học viên chuyên ngành Quản trị: Nguồn tài liệu tham khảo thực chứng về phân tích cơ cấu nhân sự, dữ liệu tài chính thực tế và chuyển đổi từ lý thuyết sang số hóa.
  • Kỹ sư phần mềm & Nhà phát triển: Mô hình kiến trúc tham chiếu hoàn chỉnh kết hợp giữa nghiệp vụ quản trị kinh doanh và công nghệ web hiện đại (FastAPI, PostgreSQL, Next.js).
  • Lãnh đạo doanh nghiệp & Quản lý nhân sự (HRM): Bộ giải pháp sẵn sàng triển khai giúp tái cấu trúc hệ thống đãi ngộ 3P, chuẩn hóa quy trình tuyển dụng và kiểm soát chi phí vận hành.
  • Nhà nghiên cứu kinh tế ứng dụng: Bộ số liệu minh chứng cho mối tương quan giữa năng lực quản trị nội bộ và hiệu quả tài chính doanh nghiệp.

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

1. Yêu cầu cấu hình phần cứng tối thiểu để triển khai hệ thống HRIS này là gì?

Máy chủ On-premise hoặc Cloud VPS yêu cầu tối thiểu: 2 vCPU, 4GB RAM, 40GB SSD dung lượng lưu trữ, chạy trên hệ điều hành Ubuntu 22.04 LTS có cài đặt sẵn Docker Engine 24.x trở lên.

2. Hệ thống xử lý bài toán bảo mật thông tin lương và dữ liệu cá nhân như thế nào?

Hệ thống sử dụng cơ chế phân quyền dựa trên vai trò (Role-Based Access Control - RBAC) kết hợp mã hóa JWT Token cho các phiên làm việc. Trường thông tin lương nhạy cảm (base_salary_p1, performance_bonus_p3) được mã hóa cấp độ cơ sở dữ liệu với thuật toán AES-256.

3. Quy trình chuyển đổi dữ liệu từ các file Excel phân tán vào hệ thống mới có phức tạp không?

Hệ thống cung cấp sẵn công cụ Data Importer tự động kiểm tra cú pháp, mapping các trường thông tin phòng ban, chức vụ và lọc trùng dữ liệu thông qua mã số nhân viên hoặc số CMND/CCCD.

4. Chi phí duy trì hệ thống hàng năm ước tính là bao nhiêu?

Nhờ ứng dụng hoàn toàn các giải pháp nền tảng mã nguồn mở (Linux, PostgreSQL, FastAPI), chi phí duy trì chỉ bao gồm tiền điện/mạng hạ tầng máy chủ và bảo trì định kỳ, ước tính dưới 12.000.000 VNĐ/năm.

5. Làm thế nào để giải quyết tình trạng phản đối thay đổi từ nhân sự cũ khi áp dụng KPI và phần mềm mới?

Doanh nghiệp áp dụng chiến lược chuyển đổi từng phần (Phased Rollout): bắt đầu thí điểm tại Phòng Kinh doanh và Phòng Quảng cáo sự kiện trong 3 tháng, tổ chức các buổi workshop đào tạo trực quan và gắn liền quyền lợi thưởng P3 minh bạch để tạo động lực lan tỏa sang các bộ phận khác.


Kết luận

Khóa luận đã làm rõ bức tranh toàn cảnh về thực trạng quản trị nguồn nhân lực tại Công ty TNHH Quảng cáo Thương mại Sen Vàng giai đoạn 2010–2013, chỉ rõ nguyên nhân cốt lõi dẫn đến tình trạng suy giảm lợi nhuận bắt nguồn từ chi phí quản lý vận hành thủ công. Thông qua việc kết hợp giữa phương pháp luận quản trị hiện đại (Khung năng lực ASK, Đãi ngộ 3P) và giải pháp kỹ thuật công nghệ thông tin (Kiến trúc HRIS/ATS dựa trên FastAPI và PostgreSQL), nghiên cứu đã cung cấp một lộ trình giải pháp khả thi, đồng bộ và có khả năng ứng dụng thực tiễn cao, giúp doanh nghiệp tối ưu hóa nguồn lực, nâng cao năng lực cạnh tranh và phát triển bền vững trong kỷ nguyên số.