🅱️-AutoMan & HRM - Headhunter Tiếng Trung : Flowchart Python Cho Hệ Thống Quản Lý Nhân Sự.
Click 🖱➡️ 🔗️ Đi Tới Xưởng Xẻ Sấy, Mua Thớt Gỗ – Ván Ghép Giá Tốt? Gỗ Tràm Chất Lượng Xuất Khẩu.
☎ Liên Hệ Gọi Ngay: 0968 970 650
Website : Goghepthanh.com
Chúng Tôi Rất Hân Hạnh Được Phục Vụ Quý Khách!
☎ Liên Hệ Gọi Ngay: 0968 970 650
Website : Goghepthanh.com
Chúng Tôi Rất Hân Hạnh Được Phục Vụ Quý Khách!
Catalog : Thớt Gỗ - Ván Ghép - Gỗ Tràm Xẻ Sấy
📩 Bio Link → Gửi CV Kín - Job Tiếng Trung / 私密投递简历
🅱️-AutoMan
Shop " Chạm Là Yêu ".
Bài Viết Mới Nhất
Tự động hóa tuyển dụng – Vì thời gian của bạn đáng giá hơn lọc CV thủ công
Tuyển nhanh – đối sánh chính xác – lịch phỏng vấn trơn tru – dữ liệu sạch & tuân thủ.
Caption : Từ inbox lộn xộn đến pipeline mạch lạc – AutoMan HRM giúp bạn không bỏ lỡ ứng viên phù hợp, đặc biệt cho nguồn tiếng Trung.
Insight: “Ứng viên giỏi có thể ở ngay trong kho CV của bạn — vấn đề không phải là thiếu nguồn, mà là thiếu một quy trình tự động, minh bạch và có thể giải thích.”
Lời Mở đầu :
Bạn có ứng viên giỏi nhưng thất lạc CV trong email? Lịch phỏng vấn chồng chéo? JD tiếng Việt, CV tiếng Trung, còn team tuyển dụng thì dùng… Excel? AutoMan HRM giải quyết “điểm nghẽn” đó: tự động thu thập – chuẩn hoá – đối sánh – hẹn lịch – ghi vết. Một workflow rõ ràng giúp bạn không bỏ lỡ ứng viên phù hợp, đặc biệt với nguồn ứng viên tiếng Trung.
“Flowchart Python: Bản đồ dẫn lối cho HRM thông minh & headhunter chuyên nghiệp.”
1) Mục tiêu hệ thống
- Tuyển nhanh hơn : gom CV đa nguồn (email, form, job site), chuẩn hoá dữ liệu (VN/中文).
- Đối sánh thông minh : mapping kỹ năng, cấp bậc, mức lương, địa điểm, ngôn ngữ (HSK/TOCFL).
- Vận hành trơn tru : pipeline minh bạch (Applied → Screen → Interview → Offer → Hired).
- Tuân thủ & dữ liệu sạch : lịch sử thao tác, đồng ý xử lý dữ liệu, SLA phản hồi.
" Headhunter Tiếng Trung 4.0 – Tốc độ, chính xác, không bỏ sót nhân tài. "
2) Kiến trúc & mô-đun Python.
- ingest/ : lấy CV (PDF/DOCX), JD, hồ sơ nội bộ.
- parser/ : trích xuất thông tin đa ngôn ngữ (Vietnamese/Chinese); OCR khi cần.
- normalizer/ : chuẩn hoá tên, điện thoại, email, lương; chuyển thể 中文 简↔繁; pinyin.
- matcher/ : đối sánh JD–CV (TF-IDF/BM25/embeddings), ngưỡng & business rules.
- scheduler/ : hẹn lịch phỏng vấn, email/WeChat template; tránh trùng lịch.
- pipeline/ : quản lý trạng thái ứng viên; SLA theo bước.
- analytics/ : time-to-hire, nguồn hiệu quả, lý do rớt phổ biến.
- audit/ & rbac/ : ghi vết thao tác, phân quyền.
“Khi Python làm trợ lý HR: Giảm lỗi thủ công, tăng chuẩn tuyển dụng.”
3) Flowchart (Mermaid)
flowchart LR
A[Nhận CV/JD] --> B[Trích xuất & OCR]
B --> C[Chuẩn hoá: VN/中文, pinyin, kỹ năng]
C --> D{Đối sánh JD–CV}
D -- score >= ngưỡng --> E[Screening call]
D -- score < ngưỡng --> X[Reject + Lý do + Tag]
E --> F[Phỏng vấn vòng 1]
F --> G{Kết quả}
G -- Pass --> H[Vòng 2 / Bài test]
G -- Fail --> X
H --> I{Offer?}
I -- Yes --> J[Offer & Đàm phán]
I -- No --> X
J --> K[Hired]
X --> L[Lưu hồ sơ talent pool]
Lưu ý: Nếu blog của bạn hỗ trợ Mermaid, hãy bật plugin để tự render sơ đồ từ code trên.
4) Mô hình dữ liệu (Postgres/SQLite)
Bảng | Cột chính |
---|---|
candidates | id, name, name_pinyin, phone, email, langs, hsk_level, city, expected_salary, skills[], experience_years, resume_text, source, consent, created_at |
jobs | id, title, title_zh, dept, city, salary_range, skills_required[], lang_required, seniority, jd_text, recruiter_id, created_at |
matches | job_id, cand_id, score, reasons, created_at |
events | id, cand_id, job_id, type, ts, actor, notes |
interviews | id, cand_id, job_id, start_at, end_at, room/link, interviewer_ids[], status |
users | id, email, role, locale |
Chỉ mục gợi ý: FTS5/PG Trigram cho resume_text, GIN cho skills[], btree cho name_pinyin, city.
5) Thuật toán lõi
5.1 Chuẩn hoá tiếng Trung & kỹ năng
- pypinyin → tạo name_pinyin để tìm nhanh theo âm đọc.
- Map alias kỹ năng: “数据分析/數據分析/DA” → data-analytics.
- Chuyển thể 简↔繁 (opencc) để đối sánh nhất quán.
5.2 Đối sánh JD–CV (lai: rule + vector)
- Rule bắt buộc: ngôn ngữ, thành phố, seniority.
- Vector score: TF-IDF/BM25 hoặc embeddings giữa jd_text và resume_text.
- Hàm tổng hợp: score = 0.55*vector + 0.25*skill_overlap + 0.15*language_fit + 0.05*location_fit.
- Giải thích: lưu reasons (kỹ năng khớp, thiếu gì).
6) Pseudocode chính
def process_application(cv_file, job_id, actor):
text = extract_text(cv_file) # PDF/DOCX/OCR
meta = parse_contacts_langs(text) # email/phone/langs/HSK
skills = normalize_skills(extract_skills(text))
name, pinyin = normalize_name(meta['name'])
cand_id = upsert_candidate(name, pinyin, meta, skills, text)
job = db.get_job(job_id)
rule_ok, reasons_rule = rule_filter(job, meta, skills)
if not rule_ok:
save_match(job.id, cand_id, 0.0, reasons_rule)
pipeline.reject(cand_id, job.id, reasons_rule, actor)
return
vec_score = vector_similarity(job.jd_text, text)
overlap = jaccard(set(job.skills_required), set(skills))
lang_fit = 1.0 if job.lang_required in meta['langs'] else 0.0
loc_fit = 1.0 if job.city == meta.get('city') else 0.5
score = 0.55*vec_score + 0.25*overlap + 0.15*lang_fit + 0.05*loc_fit
save_match(job.id, cand_id, score, explain(score, overlap, lang_fit))
if score >= job.threshold:
pipeline.move(cand_id, job.id, "SCREEN")
scheduler.propose_times(cand_id, job.id)
else:
pipeline.talent_pool(cand_id, job.id, tag="learning-gap")
7) Code mẫu: đối sánh kỹ năng & 中文 mini
import re, unicodedata
from collections import Counter
def slug(s):
s = unicodedata.normalize("NFKC", s.lower())
s = re.sub(r"[^\w\s\-+/\.]", " ", s)
return re.sub(r"\s+", " ", s).strip()
SKILL_MAP = {
"数据分析": "data-analytics", "數據分析": "data-analytics", "data analysis": "data-analytics",
"机器学习": "machine-learning", "機器學習": "machine-learning", "ml": "machine-learning",
"销售": "sales", "銷售": "sales", "kinh doanh": "sales",
"采购": "procurement", "採購": "procurement", "mua hàng": "procurement",
}
def normalize_skills(tokens):
norm = []
for t in tokens:
t = slug(t)
key = SKILL_MAP.get(t, None)
norm.append(key if key else t)
return sorted(set([x for x in norm if x]))
def skill_overlap(required, have):
r, h = set(required), set(have)
inter = len(r & h)
return inter / max(1, len(r)), sorted(r & h), sorted(r - h)
# ví dụ
req = ["data-analytics", "machine-learning", "sales"]
have = normalize_skills(["數據分析", "機器學習", "Python", "銷售"])
ratio, matched, missing = skill_overlap(req, have)
print(ratio, matched, missing) # 0.666..., ['data-analytics','machine-learning'], ['sales']
8) Quy trình hẹn lịch & thông báo (scheduler)
- Tạo slot rảnh của interviewer (đồng bộ calendar).
- Xếp lịch theo múi giờ ứng viên; gửi email + template WeChat/短信.
- Chống xung đột: kiểm tra chồng lịch trước khi confirm.
- SLA: tự nhắc nếu quá 48h chưa phản hồi ở mỗi bước pipeline.
9) Báo cáo & chỉ số
- Time-to-hire, Offer acceptance, Nguồn hiệu quả (email/form/job site/referral).
- Top lý do rớt (thiếu kỹ năng, kỳ vọng lương, ngoại ngữ).
- Đa dạng ngôn ngữ: số ứng viên có HSK≥4 theo vị trí.
10) Test cases trọng yếu
ID | Tình huống | Input | Kỳ vọng |
---|---|---|---|
TC01 | CV tiếng Trung giản thể | PDF có “数据分析/机器学习” | Chuẩn hoá → match data-analytics, machine-learning |
TC02 | JD yêu cầu HSK4 | langs: zh, hsk=4 | language_fit=1; nếu HSK<4 → rule_fail |
TC03 | Trùng lịch phỏng vấn | Slot bị chiếm | Từ chối booking, đề xuất slot khác |
TC04 | Thiếu consent | Form unchecked | Không lưu CV; gửi yêu cầu đồng ý |
TC05 | City mismatch | JD=HN, CV=HCM | loc_fit=0.5, score giảm |
TC06 | Thiếu kỹ năng bắt buộc | JD bắt buộc “sales” | rule_fail + reasons |
11) Triển khai nhanh (gợi ý)
- DB: Postgres + pgvector (embeddings) / SQLite cho MVP.
- Search: Meilisearch/Elastic cho full-text CV & JD.
- NLP: jieba (tokenize zh), opencc (简↔繁), pypinyin, underthesea (tiếng Việt).
- API/Panel: FastAPI + React/Tailwind; RBAC theo vai trò (Recruiter/Interviewer/HRBP/Admin).

🌿 Trà Trái Cây Mát Lịm...
Nhìn Thôi Đã Thấy Thèm...
Vitamin Trái Cây, Thanh Lọc Cơ Thể Giải Nhiệt Tâm Trí.
👉
Khám phá ngay
💡 Mọi Trải Nghiệm Trong Nhà Đều Bắt Đầu Từ Sự Tinh Tế. 👇