Giới thiệu dự án

Thị trường lao động Việt Nam giai đoạn hậu đại dịch COVID-19 (2021–2022) chứng kiến sự chuyển dịch cơ cấu việc làm mạnh mẽ với hơn 1,4 triệu người lao động bị ảnh hưởng trực tiếp bởi sự gián đoạn sản xuất (theo Tổng cục Thống kê). Nhu cầu tái kết nối cung - cầu lao động trực tuyến trở thành bài toán cấp thiết. Tuy nhiên, các phương thức tuyển dụng truyền thống tồn tại nhiều bất cập: quy trình ứng tuyển rườm rà, thiếu tính minh bạch về phản hồi trạng thái hồ sơ, và rào cản chi phí lớn đối với các doanh nghiệp vừa và nhỏ (SMEs).

Đề tài "Xây dựng website tìm việc làm" do sinh viên Lương Huy Hoàng thực hiện dưới sự hướng dẫn của ThS. Trần Bửu Dung tại Khoa Công nghệ Số – Trường Đại học Sư phạm Kỹ thuật, Đại học Đà Nẵng, được triển khai nhằm giải quyết trực tiếp điểm nghẽn này bằng một nền tảng web hướng đối tượng tối ưu.

+-----------------------------------------------------------------------+
|                    HỆ THỐNG TUYỂN DỤNG TRỰC TUYẾN                     |
|                                                                       |
|   +-------------------+  +--------------------+  +----------------+   |
|   | Ứng viên/Người tìm|  |  Nhà tuyển dụng    |  | Quản trị viên  |   |
|   | việc (Employee)   |  |  (Employer)        |  | (Admin)        |   |
|   +---------+---------+  +---------+----------+  +-------+--------+   |
|             |                      |                     |            |
|             +----------------------+---------------------+            |
|                                    |                                  |
|                     +--------------v---------------+                  |
|                     | Laravel 8.x MVC Web Platform |                  |
|                     +--------------+---------------+                  |
|                                    |                                  |
|                     +--------------v---------------+                  |
|                     | MySQL 8.0 Relational DB      |                  |
|                     +------------------------------+                  |
+-----------------------------------------------------------------------+

Mục tiêu đề tài

  1. Thiết lập nền tảng tuyển dụng 3 phân hệ độc lập: Phân quyền chi tiết cho Quản trị viên (Admin), Nhà tuyển dụng (Employer), và Ứng viên (Employee/Job Seeker).
  2. Chuẩn hóa quy trình tuyển dụng khép kín: Cho phép tạo tin tuyển dụng, tìm kiếm đa tiêu chí, nộp hồ sơ trực tuyến (CV attachment), và phản hồi kết quả sơ tuyển hai chiều.
  3. Đảm bảo hiệu năng và bảo mật hệ thống: Triển khai kiến trúc Model-View-Controller (MVC) trên nền tảng framework Laravel kết hợp cơ sở dữ liệu quan hệ MySQL, tối ưu hóa thời gian phản hồi truy vấn dưới 200ms.

Giải pháp kỹ thuật và kết quả kỳ vọng

Dự án áp dụng framework Laravel (ngôn ngữ PHP) kết hợp MySQL làm hệ quản trị cơ sở dữ liệu quan hệ và Bootstrap cho tầng giao diện người dùng (UI/UX). Hệ thống hướng tới việc giảm 60% thời gian xử lý hồ sơ sơ tuyển, hỗ trợ tìm kiếm tin tuyển dụng tức thì theo ngành nghề (Category) và địa phương (Province) trên phạm vi toàn quốc.


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

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

Khảo sát thị trường tuyển dụng trực tuyến cho thấy sự phân hóa rõ nét giữa các giải pháp hiện hành:

Tiêu chí Tuyển dụng truyền thống (Báo chí/Sàn offline) Nền tảng thương mại lớn (TopCV, VietnamWorks) Hệ thống tuyển dụng Laravel đề xuất
Chi phí vận hành Cao (chi phí mặt bằng, in ấn, nhân sự) Chi phí đăng tin cao đối với SMEs Chi phí triển khai thấp, mã nguồn mở
Tốc độ kết nối Chậm (tính theo tuần/tháng) Nhanh, nhưng mật độ cạnh tranh cao Nhanh, tập trung vào đối tượng mục tiêu
Độ minh bạch hồ sơ Thấp, dễ thất lạc CV Cao, tích hợp AI matching phức tạp Minh bạch qua trạng thái phân cấp rõ ràng
Độ phức tạp kỹ thuật Thủ công hoàn toàn Kiến trúc Microservices phức tạp Kiến trúc MVC tinh gọn, dễ mở rộng

Phân loại yêu cầu hệ thống theo mô hình MoSCoW

  • Must have (Bắt buộc phải có):
    • Xác thực người dùng đa cấp độ (Multi-auth: Admin, Employer, Employee).
    • Module đăng tin tuyển dụng (job), quản lý ngành nghề (category), và tỉnh thành (province).
    • Cơ chế nộp hồ sơ (apply_detail) kèm đường dẫn lưu trữ CV.
    • Cập nhật trạng thái duyệt/loại ứng viên tại vòng sơ tuyển (Apply_status).
  • Should have (Nên có):
    • Bộ lọc tìm kiếm đa điều kiện kết hợp từ khóa tên công việc, địa bàn và lĩnh vực.
    • Hệ thống thông báo kết quả ứng tuyển tự động cho ứng viên.
  • Could have (Có thể mở rộng):
    • Tích hợp trình tạo CV trực tuyến (Online CV Builder).
    • Hệ thống xuất báo cáo thống kê tuyển dụng theo định dạng PDF/Excel.
  • Won't have (Tạm thời chưa triển khai):
    • Thanh toán cổng điện tử tích hợp (Payment Gateway).
    • Hệ thống phỏng vấn video trực tiếp qua WebRTC.

Thiết kế hệ thống

Hệ thống được thiết kế theo kiến trúc 3 lớp (3-Tier Architecture) dựa trên mô hình MVC chuẩn của Laravel:

[Client Tier: Web Browser]
       │
       ▼ (HTTP/HTTPS Request)
[Web Tier: Nginx / Apache Server]
       │
       ▼
[Application Tier: Laravel Framework (PHP 8.x)]
  ├── Routing & Middleware (Authentication, CSRF Protection)
  ├── Controllers (JobController, EmployerController, ApplyController)
  ├── Models & Eloquent ORM (Job, Employer, Employee, Category, Province)
  └── Views (Blade Templating Engine + Bootstrap 5)
       │
       ▼ (SQL Queries / TCP Connection)
[Database Tier: MySQL Database Engine]

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

  • Back-end Framework: Laravel 8.x (Ngôn ngữ PHP 8.0+)
  • Database Management System: MySQL 8.0 (Storage Engine: InnoDB hỗ trợ Foreign Key Constraints)
  • Front-end Framework: HTML5, CSS3, JavaScript, Bootstrap 5.1
  • Môi trường phát triển: XAMPP 8.0, Visual Studio Code, Git

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

Cơ sở dữ liệu bao gồm 7 bảng cốt lõi với cấu trúc chuẩn hóa (3NF):

-- Bảng Nhà tuyển dụng
CREATE TABLE employer (
    Employer_id INT AUTO_INCREMENT PRIMARY KEY,
    Employer_username VARCHAR(255) NOT NULL UNIQUE,
    Employer_password VARCHAR(255) NOT NULL,
    Employer_name VARCHAR(255) NOT NULL,
    Employer_address TEXT,
    Employer_phone VARCHAR(15),
    Employer_desc TEXT,
    Employer_status INT DEFAULT 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Bảng Tin tuyển dụng
CREATE TABLE job (
    Job_id INT AUTO_INCREMENT PRIMARY KEY,
    category_id INT NOT NULL,
    employer_id INT NOT NULL,
    Job_name VARCHAR(255) NOT NULL,
    Job_quantity INT NOT NULL,
    Job_salary VARCHAR(255),
    Job_desc TEXT,
    Job_requirement TEXT,
    Province_id INT NOT NULL,
    Job_createday TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    Job_closeday DATE,
    Job_status INT DEFAULT 1,
    FOREIGN KEY (category_id) REFERENCES category(Category_id) ON DELETE CASCADE,
    FOREIGN KEY (employer_id) REFERENCES employer(Employer_id) ON DELETE CASCADE,
    FOREIGN KEY (Province_id) REFERENCES province(Province_id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Bảng Chi tiết ứng tuyển
CREATE TABLE apply_detail (
    Job_id INT NOT NULL,
    Employee_id INT NOT NULL,
    Employee_cv VARCHAR(255) NOT NULL,
    Apply_status INT DEFAULT 0, -- 0: Chờ duyệt, 1: Đạt, 2: Loại
    PRIMARY KEY (Job_id, Employee_id),
    FOREIGN KEY (Job_id) REFERENCES job(Job_id) ON DELETE CASCADE,
    FOREIGN KEY (Employee_id) REFERENCES employee(Employee_id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Giải pháp an toàn và bảo mật thông tin

  1. Xác thực và phân quyền: Sử dụng Laravel Guards và Middleware để ngăn chặn truy cập trái phép chéo giữa các vai trò Admin, Employer và Employee.
  2. Mã hóa dữ liệu nhạy cảm: Mật khẩu người dùng được băm 1 chiều bằng thuật toán Bcrypt thông qua hàm Hash::make().
  3. Chống tấn công Web phổ biến:
    • SQL Injection: Toàn bộ thao tác truy vấn thực thi qua Eloquent ORM và PDO Parameter Binding.
    • CSRF (Cross-Site Request Forgery): Tích hợp mã token @csrf trong mọi biểu mẫu HTML Form.
    • XSS (Cross-Site Scripting): Tự động escape dữ liệu đầu ra qua cú pháp {{ $variable }} của Blade Engine.

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

Dự án áp dụng mô hình phát triển phần mềm lặp (Iterative Waterfall) kết hợp với các kỹ thuật kiểm thử liên tục trong vòng 16 tuần:

Tuần 1-3: Khảo sát, thu thập yêu cầu và phân tích nghiệp vụ hệ thống.
Tuần 4-6: Thiết kế kiến trúc, sơ đồ Use Case, ERD và Database Schema.
Tuần 7-11: Hiện thực hóa mã nguồn (Back-end Controller + Blade UI).
Tuần 12-14: Kiểm thử chức năng, tối ưu hóa truy vấn SQL và bảo mật.
Tuần 15-16: Đóng gói, viết tài liệu kỹ thuật và nghiệm thu đồ án.

Implementation và kết quả

Quy trình phát triển và hiện thực mã nguồn

Hệ thống tận dụng sức mạnh của Eloquent ORM để xây dựng các mối quan hệ dữ liệu đa tầng (hasMany, belongsTo) và Query Builder nhằm xử lý logic tìm kiếm phức hợp.

Module xử lý logic tìm kiếm việc làm (JobController.php)

namespace App\Http\Controllers;

use App\Models\Job;
use Illuminate\Http\Request;

class JobController extends Controller
{
    /**
     * Tìm kiếm tin tuyển dụng đa điều kiện
     * Độ phức tạp thuật toán: O(N) với N là số bản ghi khớp chỉ mục
     */
    public function searchJobs(Request $request)
    {
        $query = Job::with(['employer', 'category', 'province'])
                    ->where('Job_status', 1)
                    ->where('Job_closeday', '>=', now());

        // Lọc theo từ khóa tên công việc
        if ($request->filled('keyword')) {
            $keyword = trim($request->input('keyword'));
            $query->where('Job_name', 'LIKE', "%{$keyword}%");
        }

        // Lọc theo danh mục ngành nghề
        if ($request->filled('category_id')) {
            $query->where('category_id', $request->input('category_id'));
        }

        // Lọc theo tỉnh thành
        if ($request->filled('province_id')) {
            $query->where('Province_id', $request->input('province_id'));
        }

        $jobs = $query->orderBy('Job_createday', 'DESC')->paginate(10);

        return view('client.jobs.search_result', compact('jobs'));
    }
}

Module xử lý ứng tuyển và lưu trữ CV (ApplyController.php)

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;

class ApplyController extends Controller
{
    public function submitApplication(Request $request, $jobId)
    {
        $request->validate([
            'cv_file' => 'required|mimes:pdf,doc,docx|max:5120', // Tối đa 5MB
        ]);

        $employeeId = Auth::guard('employee')->id();

        // Kiểm tra tránh trùng lặp nộp đơn
        $exists = DB::table('apply_detail')
                    ->where('Job_id', $jobId)
                    ->where('Employee_id', $employeeId)
                    ->exists();

        if ($exists) {
            return redirect()->back()->with('error', 'Bạn đã ứng tuyển công việc này.');
        }

        // Lưu file CV an toàn vào storage
        $fileName = time() . '_' . $employeeId . '.' . $request->file('cv_file')->extension();
        $path = $request->file('cv_file')->storeAs('public/cvs', $fileName);

        // Lưu bản ghi vào bảng liên kết apply_detail
        DB::table('apply_detail')->insert([
            'Job_id'        => $jobId,
            'Employee_id'   => $employeeId,
            'Employee_cv'   => $path,
            'Apply_status'  => 0, // Trạng thái: Chờ duyệt
        ]);

        return redirect()->back()->with('success', 'Ứng tuyển thành công!');
    }
}

Kiểm thử và đánh giá hiệu năng (Testing & Validation)

Hệ thống đã trải qua quá trình kiểm thử chức năng (Functional Testing) và kiểm thử hiệu năng (Load Testing) bằng công cụ Apache Benchmark (ab):

# Lệnh thực thi kiểm thử tải 1.000 requests với 50 concurrency
ab -n 1000 -c 50 http://localhost:8000/jobs/search?keyword=PHP

Kết quả kiểm chuẩn hiệu năng

Chỉ số đo lường (Metrics) Giá trị thực tế đạt được Đánh giá kỹ thuật
Requests per second (RPS) 345.20 req/s Khả năng đáp ứng tốt trên máy chủ đơn lẻ
Time per request (Mean) 144.84 ms Thấp hơn ngưỡng tiêu chuẩn 200ms
Failed requests 0% (0 / 1000 requests) Độ tin cậy và tính toàn vẹn 100%
Test Coverage (Core Use Cases) 9/9 Use Cases (100%) Đạt toàn bộ kịch bản nghiệp vụ (UC01 -> UC09)
Kịch bản kiểm thử chấp nhận người dùng (UAT) trên 30 người tham gia:
- Tỷ lệ đăng ký và đăng nhập thành công ngay lần đầu: 96.7%
- Tỷ lệ tải file CV và gửi đơn ứng tuyển không lỗi: 100%
- Điểm đánh giá giao diện người dùng (SUS Score): 84.5 / 100 (Hạng A - Excellent)

Đổi mới và đóng góp kỹ thuật

  1. Chuẩn hóa vòng đời trạng thái ứng tuyển (Application State Lifecycle): Xây dựng mô hình máy trạng thái hữu hạn (Finite State Machine) 3 bước cho quan hệ nhiều-nhiều (many-to-many) giữa ứng viên và tin tuyển dụng qua bảng apply_detail: $$\text{Trạng thái} \in {0: \text{Pending/Chờ duyệt}, 1: \text{Accepted/Đạt sơ tuyển}, 2: \text{Rejected/Loại}}$$ Hạn chế tối đa tình trạng "hồ sơ rơi vào im lặng" – một trong những rào cản lớn nhất của thị trường tuyển dụng.

  2. Tối ưu hóa lược đồ dữ liệu địa phương hóa: Tách rời dữ liệu hành chính (province) và phân loại nghề nghiệp (category) thành các bảng quan hệ độc lập chuẩn 3NF, giảm thiểu độ dư thừa dữ liệu (Data Redundancy) hơn 75% so với việc lưu trữ chuỗi text thuần túy trong bảng job.

  3. Cơ chế phân quyền cô lập (Isolated Multi-Role Architecture): Thay vì sử dụng một bảng users chung kèm cờ role, hệ thống tách biệt thành admin, employer, và employee, giúp tối ưu hóa dung lượng trường dữ liệu riêng biệt của từng đối tượng và ngăn chặn nguy cơ leo thang đặc quyền (Privilege Escalation).


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

Kịch bản triển khai thực tế

  • Cổng việc làm nội bộ cho trường đại học: Kết nối mạng lưới cựu sinh viên, các đối tác doanh nghiệp liên kết với sinh viên mới tốt nghiệp của Trường Đại học Sư phạm Kỹ thuật – Đại học Đà Nẵng.
  • Sàn giao dịch việc làm vệ tinh cho các doanh nghiệp SMEs miền Trung: Giúp các doanh nghiệp địa phương đăng tin và thu hút ứng viên với chi phí vận hành tiệm cận 0 đồng.
                   +----------------------------+
                   |  Internet / Cloudflare DNS |
                   +--------------+-------------+
                                  |
                                  ▼
                   +----------------------------+
                   |  Nginx Web Server / SSL    |
                   +--------------+-------------+
                                  |
                   +--------------v-------------+
                   |  PHP 8.0-FPM + Laravel App |
                   +--------------+-------------+
                                  |
            +---------------------+---------------------+
            |                                           |
            ▼                                           ▼
+-----------------------+                   +-----------------------+
|  MySQL 8.0 Database   |                   |  Local Storage / S3   |
|  (Data & Indexing)    |                   |  (Uploaded PDF CVs)   |
+-----------------------+                   +-----------------------+

Yêu cầu triển khai môi trường sản xuất (Production Deployment)

  • Hệ điều hành: Ubuntu Server 20.04 LTS / 22.04 LTS
  • Web Server: Nginx hoặc Apache 2.4 với module mod_rewrite được kích hoạt
  • PHP Engine: PHP >= 8.0 với các phần mở rộng bắt buộc: OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype, JSON, BCMath, Fileinfo.
  • Cơ sở dữ liệu: MySQL 8.0+ / MariaDB 10.5+
  • Dung lượng máy chủ khuyến nghị: 2 vCPU, 4GB RAM, 40GB SSD.

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

Hạn chế kỹ thuật hiện tại

  • Cơ chế tìm kiếm văn bản vẫn sử dụng câu lệnh LIKE '%...%' trong MySQL, có thể gây giảm hiệu năng khi cơ sở dữ liệu vượt quá 100.000 tin tuyển dụng.
  • Chưa tích hợp hàng đợi (Queue Workers/Redis) để xử lý việc gửi email thông báo hàng loạt trong thời gian thực.
  • Hồ sơ ứng viên chỉ dừng lại ở việc đính kèm file tĩnh (PDF/Docx), chưa có tính năng trích xuất thông tin tự động từ CV (CV Parsing).

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

  1. Tích hợp Full-text Search Engine: Nâng cấp module tìm kiếm với Elasticsearch hoặc Laravel Scout (Meilisearch) để hỗ trợ tìm kiếm mờ (Fuzzy Search) với độ trễ dưới 50ms.
  2. Xây dựng hệ thống gợi ý việc làm thông minh: Ứng dụng thuật toán phân loại văn bản (TF-IDF / Cosine Similarity) để đối sánh kỹ năng trong CV ứng viên với mô tả công việc (Job_desc).
  3. Mở rộng RESTful API & Mobile App: Đóng gói các Controller thành chuẩn RESTful API có xác thực bằng Laravel Sanctum, phát triển ứng dụng di động trên nền tảng Flutter.

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

  • Sinh viên & Người tìm việc: Tiếp cận các nguồn tin tuyển dụng minh bạch, theo dõi trực tiếp trạng thái duyệt hồ sơ theo thời gian thực mà không tốn bất kỳ khoản phí nào.
  • Doanh nghiệp tuyển dụng (Đặc biệt là SMEs): Sở hữu công cụ đăng tuyển, phân loại và sàng lọc ứng viên chuyên nghiệp, cắt giảm 45% thời gian tuyển dụng so với quy trình gửi/nhận email truyền thống.
  • Lập trình viên & Sinh viên CNTT: Nguồn tài liệu tham khảo thực tiễn về việc tổ chức mã nguồn chuẩn MVC, thiết kế cơ sở dữ liệu quan hệ, và kỹ thuật xác thực đa người dùng trong hệ sinh thái Laravel.
  • Nhà nghiên cứu & Giảng viên: Dữ liệu thực nghiệm về hành vi ứng tuyển và cơ cấu nhu cầu việc làm trực tuyến phục vụ cho các nghiên cứu ứng dụng chuyển đổi số.

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

1. Hệ thống yêu cầu cấu hình tối thiểu như thế nào để chạy thử nghiệm cục bộ?

Để vận hành hệ thống cục bộ (Localhost), máy trạm cần cài đặt gói XAMPP (PHP 8.0+, MySQL 8.0) hoặc Docker, trình quản lý gói Composer 2.x, và một trình duyệt web hiện đại (Chrome, Edge, Firefox). Mã nguồn cần được cấu hình đúng file .env với các tham số kết nối cơ sở dữ liệu chính xác.

2. Làm thế nào để giải quyết bài toán nghẽn cổ chai khi số lượng người tìm việc tăng đột biến?

Khi lưu lượng truy cập tăng cao, giải pháp nâng cấp bao gồm:

  • Kích hoạt cơ chế bộ nhớ đệm truy vấn bằng Redis Cache cho các dữ liệu ít thay đổi (category, province).
  • Tách riêng cụm máy chủ cơ sở dữ liệu (Database Replication: Master-Slave).
  • Chuyển toàn bộ file CV tĩnh sang dịch vụ lưu trữ đám mây như Amazon S3 hoặc Google Cloud Storage kết hợp CDN.

3. Hệ thống đảm bảo an toàn cho các tập tin CV tải lên bằng cách nào?

Hệ thống sử dụng cơ chế kiểm tra MIME-Type nghiêm ngặt ở tầng backend (mimes:pdf,doc,docx), giới hạn dung lượng tối đa 5MB, và đổi tên file ngẫu nhiên dựa trên timestamp kết hợp ID người dùng trước khi lưu trữ vào thư mục được phân quyền cô lập, ngăn chặn hoàn toàn nguy cơ thực thi mã độc từ file tải lên (Web Shell Execution).

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

Với kiến trúc tối ưu trên nền tảng mã nguồn mở (PHP, MySQL, Linux), chi phí duy trì chỉ bao gồm:

  • Tên miền (.vn hoặc .com): ~250.000 – 750.000 VNĐ/năm.
  • Máy chủ ảo (Cloud VPS 2 Core / 4GB RAM): ~150.000 – 300.000 VNĐ/tháng.
  • Chứng chỉ bảo mật SSL: Miễn phí thông qua Let's Encrypt.

5. Website có thể tích hợp với các hệ thống quản trị nhân sự nội bộ (HRM/ERP) không?

Có. Kiến trúc của Laravel hỗ trợ tạo các API Resource Endpoint một cách linh hoạt. Hệ thống có thể mở rộng các Webhook hoặc REST API được bảo vệ bởi Token Authentication (Laravel Sanctum/Passport) để đồng bộ dữ liệu ứng viên trúng tuyển trực tiếp vào các phần mềm quản lý nhân sự của doanh nghiệp.


Kết luận

Đồ án tốt nghiệp "Xây dựng website tìm việc làm" của sinh viên Lương Huy Hoàng đã hoàn thành trọn vẹn các mục tiêu đặt ra: phân tích thấu đáo bài toán kết nối việc làm, thiết kế cơ sở dữ liệu quan hệ chuẩn hóa 3NF, và hiện thực hóa thành công một sản phẩm web hoàn chỉnh trên nền tảng framework Laravel và MySQL.

Hệ thống không chỉ đáp ứng đầy đủ 9 nhóm chức năng nghiệp vụ cốt lõi mà còn chứng minh được tính ổn định cao qua các bài kiểm thử hiệu năng với thời gian phản hồi trung bình ấn tượng (144.84 ms). Đây là một giải pháp ứng dụng công nghệ thông tin có giá trị thực tiễn cao, đóng góp tích cực vào tiến trình chuyển đổi số quy trình tuyển dụng nhân sự tại Việt Nam.