Hướng dẫn Nhân viên Chuẩn bị Nội dung cho VIVA AI

Đối tượng: Ops, HR, Content Manager, Moderator Mục đích: AI VIVA trả lời chính xác phụ thuộc 80% vào chất lượng dữ liệu nhân viên nạp vào. Tài liệu này liệt kê 7 loại nội dung cần chuẩn, checklist cụ thể, và ví dụ Đúng/Sai. Cập nhật: 2026-04-27


Tại sao chất lượng dữ liệu quan trọng

VIVA AI không có wiki tĩnh. AI lấy thông tin theo 3 đường:

  1. Function tools → Laravel realtime — query DB live (worker_profile, job_search, job_detail, commission_history…)
  2. System prompt — text "luật chơi" do dev curate
  3. LLM general knowledge — Gemini/Claude biết tiếng Việt nhưng KHÔNG biết KCN Bắc Ninh, Samsung Yên Phong, lương CNC

→ Nếu data trong Laravel sai/thiếu, AI hallucinate (bịa). Vietnam slang, tên KCN viết tắt, lương đặc thù = AI bí.

→ Nhân viên là knowledge anchor: nạp data sạch + đúng = AI giỏi. Data bẩn = AI ngu, blame back.


7 loại nội dung cần chuẩn

# Loại Người chuẩn bị Chu kỳ update Ưu tiên
A Tin tuyển dụng (Job postings) HR nhà tuyển dụng + Mod Mỗi tin mới 🔴 Cao nhất
B Hồ sơ công nhân (Worker profile) CTV + Worker tự nhập Lúc onboard + cập nhật 🔴 Cao
C Từ điển KCN (KCN ontology) Content Manager Quý 1 lần 🟡 Trung
D Chính sách HR ops (Reply policies) HR Manager Khi đổi chính sách 🟡 Trung
E Bảng lương chuẩn (Salary norms) Data team Quý 1 lần 🟡 Trung
F Mẫu trả lời FAQ (Reply templates) HR + Content Tháng 1 lần 🟢 Thấp
G Moderation tin scrape (Scraped content review) Mod team Hàng ngày 🔴 Cao nhất

A — Tin tuyển dụng (Job postings)

Vì sao quan trọng: AI dùng để search, summarize 5-bullet, explain match. Tin viết cẩu thả → AI tóm tắt sai → công nhân click vào thấy khác → mất uy tín.

Checklist mỗi tin

Ví dụ tin chuẩn

Tiêu đề: CN đứng máy CNC — Samsung Yên Phong, lương 11.5–14.2tr
KCN: KCN Yên Phong (Bắc Ninh)
Mô tả công việc:
- Vận hành máy CNC theo quy trình
- Làm 12 tiếng/ca, 4 ca/tuần (2 ngày 2 đêm)
- Có thể làm tăng ca cuối tháng
Yêu cầu:
- Nam, 18–35 tuổi
- Đọc được bản vẽ kỹ thuật cơ bản
- Có thể làm ca đêm
Phúc lợi:
- KTX miễn phí trong KCN, đi bộ 5 phút
- BHXH/BHYT/BHTN theo lương cơ bản (9tr)
- Thưởng tháng 13 = 1.5 tháng lương
- Khám sức khỏe định kỳ 6 tháng
- Xe đưa đón từ Bắc Giang/Bắc Ninh trung tâm
Lương: Cơ bản 9tr + tăng ca 2.5tr + thưởng 1tr = thực lĩnh ~12.5tr/tháng
Bắt đầu: Phỏng vấn 02/05, đi làm 05/05
HR: Chị Hằng — 0987 654 321 (8h–17h)

B — Hồ sơ công nhân (Worker profile)

Vì sao quan trọng: AI inject profile vào system prompt mỗi lần chat. Profile thiếu → AI hỏi lại liên tục, không gợi ý chính xác. Profile sai → AI gợi ý job sai khả năng worker.

Field bắt buộc (CTV nhập khi onboard)

Field quan trọng (cần điền sớm — improve match score)

Field khuyến khích

Ví dụ profile chuẩn (AI dùng tốt)

{
  "full_name": "Nguyễn Văn Tâm",
  "phone": "0987654321",
  "phone_verified": true,
  "home_province": "Nam Định",
  "home_district": "Trực Ninh",
  "age": 26,
  "gender": "male",
  "education": "THPT",
  "skills": ["CNC operator", "đọc bản vẽ kỹ thuật", "ca đêm"],
  "experience": [
    {"company": "Foxconn Vân Trung", "months": 14, "role": "CN lắp ráp"}
  ],
  "salary_expectation": "12-14tr",
  "kcn_preferences": ["KCN Yên Phong", "VSIP Bắc Ninh"],
  "max_distance_km": 20,
  "can_night_shift": true,
  "has_bhxh_card": true,
  "available_at": "2026-05-01"
}

C — Từ điển KCN (KCN ontology)

Vì sao quan trọng: AI thấy "VSIP" không tự biết = "Vietnam Singapore Industrial Park Bắc Ninh". Cần seed data để AI hiểu alias + biên giới hành chính.

Schema mỗi KCN

Field Bắt buộc Ví dụ
canonical_name "KCN Yên Phong"
aliases ["KCN Yên Phong I", "Yên Phong", "Samsung Yên Phong"]
province "Bắc Ninh"
district "Yên Phong"
coordinates {lat: 21.157, lng: 105.998}
key_employers ["Samsung Electronics Vietnam", "Samsung Display", "Hansol Electronics"]
total_workers_estimated recommended 60000
roles_common recommended ["CNC", "lắp ráp", "QC", "đóng gói"]
salary_avg_by_role recommended {"CNC": "10-13tr", "lắp ráp": "8-11tr"}
nearby_kcn recommended ["KCN Quế Võ", "VSIP Bắc Ninh"]
transport optional "Cách Hà Nội 35km, có xe bus 54"

Top 10 KCN cần seed ngay

# KCN Tỉnh Aliases hay gặp
1 KCN Yên Phong Bắc Ninh "Samsung Yên Phong", "Yên Phong I"
2 KCN Quế Võ Bắc Ninh "Quế Võ I", "Canon Quế Võ"
3 VSIP Bắc Ninh Bắc Ninh "VSIP", "Vietnam Singapore", "Tân Hồng"
4 KCN Tiên Sơn Bắc Ninh "Tiên Sơn", "Hanaka"
5 KCN Đại Đồng-Hoàn Sơn Bắc Ninh "Đại Đồng", "Hoàn Sơn"
6 KCN Vân Trung Bắc Giang "Foxconn Vân Trung", "Vân Trung"
7 KCN Đình Trám Bắc Giang "Đình Trám"
8 KCN Quang Châu Bắc Giang "Quang Châu", "Luxshare-ICT"
9 KCN Phúc Thắng Vĩnh Phúc "Honda Phúc Thắng"
10 KCN Đồng Mai Quảng Ninh "Đồng Mai"

Action: Content Manager tạo bảng kcn_ontology (Laravel migration), seed 10 KCN trên đầu Q1, thêm dần khi gặp.


D — Chính sách HR ops (Reply policies)

Vì sao quan trọng: Endpoint /v1/content/draft-reply cho HR ops gợi ý 3 mẫu trả lời, citation theo policy_id. Nếu policy không rõ → AI bịa quy định → HR gửi sai → worker khiếu nại.

Mỗi policy có

id: "advance_policy_2026"
title: "Chính sách ứng tiền"
version: "1.2"
effective_from: "2026-01-01"
effective_to: null
content_md: |
  ## Quy định ứng tiền

  - Tối đa **2 lần ứng/tháng**, mỗi lần ≤ 5tr
  - Lần thứ 3 trong tháng: chỉ duyệt ≤ 3tr nếu có lý do đặc biệt (ốm đau, gia đình)
  - Trừ vào lương kỳ tiếp theo, không tính lãi
  - Ứng quá 50% lương cơ bản → cần giám đốc duyệt

  ## Ngoại lệ
  - Worker có VIVA Save ≥ 5tr → có thể rút từ Save thay vì ứng (lãi 6%/năm)
  - Tết Nguyên Đán: cho phép ứng trước 3 tháng (đã có chương trình riêng)
keywords: ["ứng tiền", "advance", "ứng lương", "tiền ăn"]
related_policies: ["viva_save", "tet_advance"]
audience: ["worker", "hr", "ctv"]

Policy cần seed ngay (10 cái)

  1. advance_policy — ứng tiền
  2. bhxh_bhyt_policy — bảo hiểm xã hội/y tế
  3. overtime_policy — tăng ca, lương OT
  4. maternity_policy — thai sản
  5. resignation_policy — nghỉ việc, báo trước, hoàn ký quỹ
  6. absence_policy — xin nghỉ, lý do hợp lệ
  7. ktx_policy — quy định KTX, vi phạm
  8. complaint_handling — khiếu nại quy trình
  9. referral_bonus — giới thiệu bạn bè
  10. viva_save — tiết kiệm VIVA Save

Action: HR Manager viết content_md cho 10 policies, ưu tiên 5 cái đầu trong tuần này.

Format viết policy (4 phần)

  1. Tóm tắt 1 câu (cho AI quote)
  2. Quy định cụ thể (bullet, có số liệu)
  3. Ngoại lệ (edge cases)
  4. Tham chiếu (luật lao động, hợp đồng)

E — Bảng lương chuẩn (Salary norms)

Vì sao quan trọng: AI có sanity check — nếu tin tuyển dụng ghi 30tr cho công nhân lắp ráp → flag anomaly → mod review. Cần baseline để compare.

Schema

role: "CNC operator"
kcn: "KCN Yên Phong"
period: "2026-Q2"
salary_basic_range: [8500000, 10500000]
salary_total_range: [11500000, 14200000]  # incl OT + bonuses
sample_size: 184
source: "VIVA worker self-report Q1 2026"
notes: "Range cao hơn ~10% vs Q4 2025 do thiếu hụt nhân lực"

Tần suất update

Top 5 roles cần seed cho mỗi KCN

  1. CNC operator
  2. CN lắp ráp (assembly)
  3. QC kiểm tra chất lượng
  4. Đóng gói (packaging)
  5. Bảo vệ (security)

Action: Data team chạy report quý 4/2025 + seed bảng salary_norms (10 KCN × 5 roles = 50 rows).


F — Mẫu trả lời FAQ (Reply templates)

Vì sao quan trọng: Câu hỏi thường gặp lặp lại 80%. HR có template chuẩn → AI gợi ý đúng tone + citation.

Top 20 FAQ cần template (workers)

  1. "Mức lương thực lĩnh là bao nhiêu?"
  2. "Có KTX không, miễn phí không?"
  3. "Làm ca đêm có phụ cấp không?"
  4. "Bao giờ nhận lương đầu?"
  5. "Ứng tiền được không, mấy lần?"
  6. "Đóng BHXH bao nhiêu, đóng từ tháng nào?"
  7. "Nghỉ Tết bao nhiêu ngày?"
  8. "Hợp đồng bao lâu, có cần ký không?"
  9. "Khám sức khỏe ở đâu, ai trả tiền?"
  10. "Đi làm bằng gì, có xe đưa đón không?"
  11. "Có thể chuyển KCN khác không?"
  12. "Nghỉ việc cần báo trước bao lâu?"
  13. "CCCD/CMND chưa có, có làm được không?"
  14. "Tay nghề chưa có, có đào tạo không?"
  15. "Lỡ nghỉ vài ngày có bị đuổi không?"
  16. "Mang theo người yêu/vợ chồng được không?"
  17. "Tăng ca có bắt buộc không?"
  18. "Lễ Tết được nhận thưởng gì?"
  19. "Có thể giới thiệu bạn không, được thưởng gì?"
  20. "Trách nhiệm khi bỏ việc giữa chừng?"

Format template

id: "faq_advance_request"
question_keywords: ["ứng tiền", "ứng trước", "tạm ứng"]
audience: "worker"
answer_template: |
  Em ơi, theo chính sách công ty [#policy:advance_policy_2026]:
  - Tối đa 2 lần/tháng, mỗi lần ≤ 5tr
  - Lần 3 chỉ duyệt nếu có lý do đặc biệt

  Em có thể nộp request qua app, HR duyệt trong 8 phút.
fallback_action: "Nếu cần gấp, liên hệ HR trực tiếp tại [#hotline]"

Action: Content team viết 20 templates đầu tiên trong 2 tuần.


G — Moderation tin scrape (Scraped content review)

Vì sao quan trọng: Scrape tự động đẩy 100+ tin/ngày từ Zalo/Facebook/Telegram. Mod cần review trước khi publish — AI training/quality phụ thuộc vào.

Workflow mỗi tin scrape

[Scraper external] → POST /api/v1/internal/ingest/jobs (HMAC)
    ↓
[Laravel] → store with moderation_status='pending'
    ↓
[Mod queue UI] → mod review (Approve / Edit / Reject)
    ↓
[Approved] → moderation_status='approved' → AI search/match được
[Edited] → mod fix typo/thiếu info → approve
[Rejected] → flag reason → exclude khỏi search

Checklist mỗi tin (mod review)

Mod metrics theo dõi

Metric Target
Approve rate > 60%
Edit-then-approve rate 25-30%
Reject rate 5-10%
Time-to-approve p50 < 30 phút
Re-flag sau approve (false positive) < 2%

Auto-approve threshold

Hệ thống có confidence score (extraction quality). Tin với score ≥ 0.85 + source trusted (đã whitelisted) → auto-approve, mod chỉ random sample 10%.

Action: Mod team định nghĩa source whitelist (10 HR fanpage trusted) trong tuần này.


QC quy trình (trước khi publish)

Mỗi loại content qua 3 lớp:

  1. Layer 1 — Self-check: Người nhập tự dùng checklist trên
  2. Layer 2 — Peer review: 1 đồng nghiệp khác duyệt (4-mắt nguyên tắc)
  3. Layer 3 — AI sanity: Hệ thống tự check (salary anomaly, KCN normalize, dedup)

→ Có conflict ở Layer 3 (AI flag mà human không thấy) → escalate Senior HR Manager.


Common mistakes (tránh)

❌ Sai 1: Copy-paste từ tin cũ không edit

Tin cũ ghi "Lương 9-12tr". Copy sang tin mới mà không update → AI tóm tắt sai → worker apply nhầm → khiếu nại.

Đúng: Mỗi tin redo từ template, fill số liệu mới.

❌ Sai 2: Để trống field optional rồi quên

Field kcn_aliases để trống → AI không match khi worker gõ "VSIP" trong khi tin ghi "Vietnam Singapore Industrial Park".

Đúng: Optional field cũng phải fill khi có data, hoặc đánh dấu null rõ ràng.

❌ Sai 3: Tone tiếng Việt không tự nhiên

"Vị trí công việc của Anh/Chị sẽ liên quan đến hoạt động lắp ráp linh kiện điện tử trong khu vực dây chuyền sản xuất."

→ Quá formal, công nhân Việt không hiểu. AI bê nguyên về trả lời → fail.

Đúng: "Anh chị làm CN lắp ráp linh kiện điện tử trong dây chuyền."

❌ Sai 4: Ghi salary "thoả thuận"

AI không filter được, không sanity check được, không gợi ý cho worker đúng tier.

Đúng: Luôn ghi range cụ thể [min, max]. Nếu thật sự thoả thuận → ghi range industry baseline + note.

HR draft-reply gõ "theo chính sách" mà không citation [#policy:advance_policy_2026] → AI không học được pattern → bịa policy.

Đúng: Mọi reply tham chiếu policy phải có ID rõ ràng.


Update cadence

Loại Tần suất Trigger update
Job postings Per-tin New job hoặc fix typo
Worker profile Lần đầu + bổ sung Chat AI hỏi thêm field thiếu
KCN ontology Quý 1 lần KCN mới mở, tên đổi, employer mới
HR policies Khi đổi quy định Luật lao động update, công ty đổi chính sách
Salary norms Quý 1 lần Q-end report
FAQ templates Tháng 1 lần Mod thấy câu hỏi mới lặp ≥ 5 lần/tháng
Scraped tins Real-time Mỗi tin từ scraper

KPI đo chất lượng (cho team)

Hàng tuần báo cáo:

KPI Target
% job postings đầy đủ 8 field bắt buộc ≥ 95%
% worker profile có ≥ 5 field optional ≥ 70%
Mod approve rate 60-70%
AI hallucination flagged (người dùng report sai) < 3%
Time-to-fix khi flag < 24h

Câu hỏi thường gặp (cho nhân viên)

Q: AI không hiểu tên KCN tôi gõ? A: Add vào aliases của KCN ontology. Báo Content Manager.

Q: Worker complaint AI gợi ý lương không khớp? A: Check 2 chỗ: (1) tin tuyển dụng ghi đúng không, (2) salary_norms có outdated không.

Q: Tin scrape lặp 100% nhưng auto-approved? A: Dedup logic miss. Báo Mod Lead — set scrape_dedup_key thủ công + thêm rule pattern.

Q: HR policy đổi giữa quý, làm sao update gấp? A: Tăng version policy (1.2 → 1.3), set effective_from. AI tự pickup trong vòng 5 phút (cache TTL).

Q: Worker không chịu cập nhật profile? A: AI sẽ proactive ask trong chat — "Để gợi ý chính xác hơn, bạn cho biết kỹ năng chính?". Nếu vẫn skip → CTV nhập giúp khi gặp mặt.


Checklist cuối cùng: nhân viên onboard mới (tuần 1)


References