Van Lang Environment Company - Recruitment Performance Dashboard
Live Applicant Management Tracker (Synced via Google Sheets)
🔒 Lưu ý dữ liệu nội bộ: Dashboard này chứa họ tên & số điện thoại ứng viên lấy từ Sheet nội bộ của Văn Lang. Chỉ dùng nội bộ — không đăng công khai file này lên internet. Trạng thái hiển thị (New / Reviewing / Interviewing / Hired / Rejected) là phân loại suy ra từ cột TRẠNG THÁI dạng văn bản tự do trong Sheet (xem mục “Cách phân loại” ở cuối trang), không phải cột gốc.
Total Applicants
–
Under Review / Shortlisted
–
Đang ở vòng xem CV (Reviewing) theo phân loại suy ra
Interview Scheduled / In Progress
–
Offers Extended / Hired
–
Conversion Rate
–
Time-to-Interview / Hire
–
🔀 Recruitment Pipeline Funnel
Applied → Screened (cột trạng thái có nội dung hoặc có file CV thực tế — ghi chú bằng lái ở cột CV của nhóm Tài xế không tính là CV) → Interviewed (có ngày PV hoặc ghi chú PV) → Hired (nhận việc / thử việc).
🍩 Applicant Sourcing Channels
Sheet không có cột Nguồn. Kênh duy nhất ghi nhận được là khối “NGUỒN CAREELINK” (3 ứng viên, 30/06/2026). Phần còn lại chưa ghi nguồn — biểu đồ phản ánh đúng dữ liệu thật, không suy đoán LinkedIn/Job Portal.
–ứng viên
✅ Đã nhận việc / thử việc (3)
Trích nguyên văn căn cứ từ cột TRẠNG THÁI / PHỤ TRÁCH trong Sheet.
👥 Main Applicant Table — Danh sách ứng viên
Tìm kiếm theo họ tên / vị trí / SĐT; lọc theo trạng thái, phòng ban, khối và khoảng ngày nhận hồ sơ. Bấm “Chi tiết” để xem toàn bộ ghi chú gốc và ghi chú theo dõi riêng (lưu trên máy này, không ghi vào Sheet).
| Dòng Sheet | Ứng viên | Vị trí ứng tuyển | Phòng ban / Khối | Ngày nhận | Ngày PV | Trạng thái | CV | Phụ trách / Ghi chú |
|---|
📈 Visual Analytics — Phân tích từ dữ liệu Sheet
Mọi biểu đồ tính trực tiếp từ cùng một bộ dữ liệu đang hiển thị (snapshot hoặc live nếu đồng bộ thành công), tự cập nhật khi lọc không áp dụng — biểu đồ luôn phản ánh toàn bộ dữ liệu nguồn.
📊 Applicants by Department / Role Group
Cột PHÒNG BAN trong Sheet chỉ điền ở dòng đầu mỗi nhóm — dashboard đã kế thừa (fill-down) xuống các dòng dưới đúng theo cấu trúc Sheet.
📊 Top Applied Positions
Theo cột VỊ TRÍ ỨNG TUYỂN (giữ nguyên cách viết trong Sheet; “CHT XD” và “CHT Xây Dựng” đang được ghi hai kiểu khác nhau).
🍩 Pipeline Status Mix
Phân bổ theo trạng thái suy ra. “New” chủ yếu là nhóm Tài xế (29 hồ sơ hầu như chưa điền trạng thái/CV) và các dòng mới nhận.
–ứng viên
📅 Intake by Month — Hồ sơ theo tháng nhận
Theo cột NGÀY NHẬN THÔNG TIN. Ngày lỗi “23/20/2026” (dòng 203) đã được sửa trong Sheet thành 23/10/2026 — bản snapshot 11:38 ngày 27/10/2026 không còn ngày không hợp lệ.
💡 Nhận định nhanh (từ số liệu thật)
🔀 Pipeline Detail — Chi tiết chuyển đổi
🔄 Data Integration & Sync — Tích hợp dữ liệu
Dashboard nhúng sẵn snapshot trích xuất qua Google Sheets connector lúc 27/10/2026 11:38 và tự đồng bộ live mỗi lần mở trang. Quyền xem công khai của Sheet đã được bật và Muse đã kiểm chứng truy cập ẩn danh thành công lúc 11:51 ngày 27/10/2026 — không cần cấp thêm quyền nào khác.
Cách tự Sync Live (2 lớp) & hướng dẫn
Lớp 1 — CSV export (đầy đủ, đúng số dòng Sheet):
Lớp 2 — gviz JSONP (dự phòng khi mở file bằng file://):
https://docs.google.com/spreadsheets/d/1WGGW4-9qnbQELyHMawQz-wDtOSvI58Og8lDhSbCsz4I/export?format=csv&gid=71033178Lớp 2 — gviz JSONP (dự phòng khi mở file bằng file://):
https://docs.google.com/spreadsheets/d/1WGGW4-9qnbQELyHMawQz-wDtOSvI58Og8lDhSbCsz4I/gviz/tq?tqx=out:json&gid=71033178- Điều kiện duy nhất: Sheet giữ nguyên chế độ chia sẻ “Anyone with the link” → Viewer (đã bật ✅). Không cần cấp quyền Editor và không cần gửi thêm thông tin đăng nhập nào cho Muse.
- Tự sync: mở file dashboard → trang tự sync ngay khi tải; muốn sync lại sau khi sửa Sheet, bấm nút “🔄 Sync Live từ Google Sheets” ở đầu trang (hoặc nút ở mục này). Badge chuyển LIVE (xanh) kèm giờ sync là thành công.
- Lớp 1 (CSV) cho dữ liệu đầy đủ 100% như Sheet gốc (đã kiểm chứng: khớp 148/148 ứng viên với bản trích xuất qua connector). Nếu trình duyệt chặn lớp 1 (thường khi mở file trực tiếp bằng file://), dashboard tự chuyển sang lớp 2 (gviz): vẫn live, nhưng gviz của Google tự bỏ qua các dòng tiêu đề khối, khối Careelink ở cuối Sheet và một số ô Ngày PV dạng chữ — dashboard đã tự suy ra khối từ phòng ban, bổ sung 3 hồ sơ Careelink từ snapshot và ghi rõ lưu ý ở dòng trạng thái sync; khi đó chỉ số phỏng vấn có thể thấp hơn thực tế một chút.
- Nếu cả hai lớp đều không tới được Sheet (mất mạng, hoặc Sheet bị tắt quyền xem công khai), dashboard dùng snapshot và badge hiện SNAPSHOT (vàng). Khi đó nhắn Muse “cập nhật dashboard tuyển dụng” để thay snapshot mới qua connector.
- ⚠️ Lưu ý riêng tư: ở chế độ “Anyone with the link”, bất kỳ ai có link Sheet đều xem được họ tên & SĐT ứng viên. Chỉ gửi link Sheet cho người nội bộ cần xem; nếu muốn tắt, vào Share → Restricted thì dashboard sẽ quay về chế độ snapshot.
- Dashboard chỉ đọc. Ghi chú theo dõi trong cửa sổ Chi tiết chỉ lưu ở trình duyệt máy này (localStorage), không ghi ngược vào Sheet.
Ánh xạ cột: yêu cầu ↔ Sheet thực tế
Sheet “DSUV 09.26” có 10 cột (A–J). Ba trường trong brief chưa tồn tại trong Sheet nên dashboard không tự bịa số.
| Trường yêu cầu | Cột Sheet | Trạng thái |
|---|---|---|
| Candidate Name | D — HỌ TÊN | ✅ Có |
| Applied Position | C — VỊ TRÍ ỨNG TUYỂN | ✅ Có |
| Department | B — PHÒNG BAN (kế thừa theo nhóm) + khối I/II/III | ✅ Có |
| Application Date | F — NGÀY NHẬN THÔNG TIN | ✅ Có |
| Interview Date | G — NGÀY PV | ✅ Có (21/148 dòng có điền, 19 ngày hợp lệ) |
| Recruitment Status | H — TRẠNG THÁI (văn bản tự do) | ⚠️ Có nhưng chưa chuẩn hoá |
| CV file | I — CV (tên file) | ✅ Có (124/148 có nội dung, 101 là tên file CV thực tế; phần còn lại là ghi chú như loại bằng lái) |
| Owner | J — PHỤ TRÁCH (lẫn ghi chú kết quả) | ⚠️ Có, nội dung hỗn hợp |
| Experience (Years) | — | ❌ Chưa có cột (chỉ rải rác trong ghi chú) |
| Rating / Score | — | ❌ Chưa có cột |
| Source | — (chỉ có khối “NGUỒN CAREELINK”) | ❌ Chưa có cột riêng |
| Phone | E — SĐT | ✅ Có (146/148) |
🧹 Chất lượng dữ liệu & cách phân loại trạng thái
- 148 ứng viên có họ tên trong tổng số 272 dòng đã đọc; phần còn lại là dòng tiêu đề khối, dòng STT để trống chờ sẵn và dòng trống — không tính là ứng viên.
- Phân loại suy ra (theo thứ tự ưu tiên): Hired = trạng thái chứa “=> Nhận việc” / “Nhận việc ngày…” / phụ trách ghi “ĐANG THỬ VIỆC” (3 người) → Rejected = chứa “không phù hợp / không đạt / không liên lạc được” (19) → Interviewing = có ngày PV hợp lệ hoặc ghi chú đã PV / PV Online (14 đang ở vòng này; cộng dồn 21 người từng qua PV — 2 dòng điền “uo” / “Không cần phỏng vấn” ở cột Ngày PV không được tính là đã PV) → Reviewing = “đã gửi CV”, “đang xem xét” hoặc ghi chú xử lý khác (74) → New = cột trạng thái để trống (38). Cột trạng thái gốc luôn hiển thị kèm trong bảng để đối chiếu.
- Trùng lặp cần rà soát: 7 số điện thoại xuất hiện 2 lần (ứng viên ứng tuyển 2 vị trí / 2 đợt) — ví dụ Nguyễn Khắc Hải (QS + Thiết kế), Phan Thanh Đạt, Vũ Trọng Tựa, Nguyễn Văn Thắng, Thiều Quang Thọ. Dashboard giữ nguyên cả hai dòng như Sheet, không tự gộp.
- Lỗi dữ liệu: ngày “23/20/2026” (dòng 203 — Lê Thanh Tuấn) đã được sửa thành 23/10/2026 trong Sheet (xác nhận ở bản trích xuất 11:38 ngày 27/10/2026); 2 ứng viên thiếu SĐT; cột J (PHỤ TRÁCH) đang lẫn ghi chú kết quả (“Mr Phong - không phù hợp” ×10) nên tỷ lệ Rejected thực tế có thể cao hơn nếu tính cả cột J dạng kết luận — dashboard đã tính cả hai cột H và J khi phân loại Rejected.
- Đề xuất chuẩn hoá Sheet (chưa áp dụng, chờ anh/chị duyệt): thêm 3 cột Nguồn ứng viên, Kinh nghiệm (năm), Điểm đánh giá; đổi cột TRẠNG THÁI thành danh sách chọn (New / Reviewing / Interviewing / Offered / Hired / Rejected) để dashboard và báo cáo khớp 1-1, không cần suy ra.