Role trong hệ thống
LunaiOne dùng mô hình 2 lớp:
| Lớp | Concept |
|---|---|
| Role canonical (5 universal) | admin, headhunter, account_manager, client_user, candidate_self — bản chất role |
| Persona = (entity × role) instance | job_owner_headhunter, talent_supplier_headhunter, ... — code identifier cho mỗi (entity, role) cụ thể |
Quan trọng: 1 pháp nhân có thể đóng nhiều entity (vd vừa Job Owner vừa Talent Supplier). User của pháp nhân đó có thể có cùng role canonical ở 2 entity context khác nhau. VD:
headhunterở Job Owner X +headhunterở Talent Supplier X. Cùng người, cùng role canonical, khác entity context. Code/DB lưu cả(entity_kind, entity_instance, user, role_canonical)tuple.
Sơ đồ actor
4 Entity chính
| Entity | Loại | Mô tả |
|---|---|---|
| LunaiOne | Platform entity | Nền tảng (vận hành bởi Lisod Japan). lunaione_admin thuộc entity này |
| Job Owner | Pháp nhân | Doanh nghiệp tuyển dụng. Bao gồm JSArt (qua brand LunaiWork — founding tenant), foredge, ... |
| Talent Supplier | Pháp nhân (NCC) hoặc Cá nhân (Freelancer) | Cung cấp ứng viên. Bao gồm JSArt (qua brand LunaiWork — founding tenant), SkillfloTalent, VTalent, ... |
| Candidate | Cá nhân | Ứng viên. 2 nguồn vào hệ thống: tự đăng ký qua lunaiwork.com, hoặc được TS submit thay |
Lưu ý:
- Lisod Japan vận hành nền tảng LunaiOne (entity
lunaione). Lisod staff làm rolelunaione_admin.- JSArt vận hành tenant LunaiWork (founding tenant — JO + TS instances). JSArt staff làm role
job_owner_headhunter,talent_supplier_headhuntercủa LunaiWork.- 3P tenant khác (foredge, SkillfloTalent, VTalent, Sekisho, Grasp) là tenant song song — staff của họ làm role tương ứng trong scope tenant của họ.
5 Role canonical (universal)
| Code canonical | Áp dụng entity | Bản chất |
|---|---|---|
admin | LunaiOne, JO, TS | Quyền cao nhất trong scope entity |
headhunter | JO, TS | Sourcing + đối ứng candidate (gồm career counseling, Person in charge, recruiter, sourcer) |
account_manager | JO (active), TS (future) | Quản lý quan hệ với khách/partner |
client_user | JO only | Sub-tenant user (Client Company được cấp account) |
candidate_self | Candidate only | Ứng viên |
User Role bên trong từng Entity (full bảng)
Persona code =
<entity>_<role>. Cùng role canonical có thể tồn tại ở nhiều entity → phải lưu entity context.
| Entity | Role canonical | Tên gọi cũ / biến thể | Mô tả |
|---|---|---|---|
| LunaiOne | LunaiOne Adminlunaione_admin | adminsuper_adminsystem_adminmanagerlisod_admin | Role canonical: admin, trong scope LunaiOne. Quyền cao nhất nền tảng — quản lý mọi entity, hợp đồng, billing, system setting. Lisod Japan staff thực hiện. |
| Job Owner | Job Owner Adminjob_owner_admin | company_admincompany_owneremployerjo_admin | Role canonical: admin, trong scope 1 Job Owner entity. Quản lý user nội bộ, company info, cấp account cho Client Company (sub-tenant). |
| Job Owner | Job Owner Account Managerjob_owner_account_manager | account_managerjo_account_manager | Role canonical: account_manager, trong JO. Quản lý quan hệ với Client Company. Có quyền cấp account cho client (sub-tenant). |
| Job Owner | Job Owner Headhunterjob_owner_headhunter | HeadhunterCareer AdvisorCAAdvisorPerson in chargeCareer Counselorrecruiterjo_recruiterjob_owner_recruiterlisod_headhunter | Role canonical: headhunter, trong JO. Bao gồm cả: career counseling + sở hữu hồ sơ (Person in charge) + xử lý pipeline (CV review, mời PV, ra quyết định). **Đã merge "Recruiter" vào đây** — không còn là 2 role riêng. Người làm là staff của JO entity tương ứng — vd LunaiWork (do JSArt vận hành) thì JSArt staff làm; foredge thì foredge staff làm. |
| Job Owner | Job Owner Client Userjob_owner_client_user | client_accountjo_client_usersub_tenant_user | Role canonical: client_user, trong JO. User của Client Company được JO cấp account → Client Company trở thành sub-tenant của JO. Scope giới hạn theo JO định nghĩa. KHÔNG có hợp đồng trực tiếp với Lisod. |
| Talent Supplier | Talent Supplier Admintalent_supplier_admin | ts_ownerts_adminOwnerownertalent_supplier_owner | Role canonical: admin, trong scope 1 Talent Supplier entity. Quyền cao nhất trong TS — quản lý user nội bộ, settings, hợp đồng với Lisod. Trong industry hay gọi là "Owner". |
| Talent Supplier | Talent Supplier Headhuntertalent_supplier_headhunter | ts_headhuntersourcerrecruiter | Role canonical: headhunter, trong TS. Sourcing ứng viên + ứng tuyển thay candidate vào job mà Job Owner đã share. Nhận thông báo cập nhật trạng thái ứng tuyển. **Cùng role canonical với job_owner_headhunter**, nhưng khác entity context — code/DB phải lưu cả entity context để phân biệt. |
| Talent Supplier | Talent Supplier Account Manager (future)talent_supplier_account_manager | ts_account_manageragencyncc | Role canonical: account_manager, trong TS. **Hiện chưa active** — giữ trong glossary để phát triển sau. Hiện tại Headhunter trực tiếp làm việc với JO, không qua Account Manager. |
| Candidate | Candidatecandidate_self | applicantuser | Role canonical: candidate_self. Ứng viên tự đăng ký và quản lý hồ sơ của chính mình. **Có 2 nguồn vào LunaiOne**: (1) tự đăng ký qua lunaiwork.com, (2) được Talent Supplier submit thay vào hệ thống. |
Headhunter — cùng role canonical, áp dụng 2 entity khác nhau
job_owner_headhunter và talent_supplier_headhunter là 2 persona instance của cùng 1 role canonical headhunter, áp dụng ở 2 entity khác nhau:
| Persona | Entity | Hành vi |
|---|---|---|
job_owner_headhunter | Job Owner | Career counseling + Person in charge của candidate + xử lý pipeline. Đã merge "Recruiter" vào đây — không còn role recruiter riêng. |
talent_supplier_headhunter | Talent Supplier | Sourcing + apply on behalf vào job mà JO đã share. Nhận thông báo cập nhật từ hệ thống. |
→ Nếu 1 user thuộc pháp nhân X (vừa là JO vừa là TS), họ có thể có cả 2 persona — cùng người, cùng role canonical headhunter, khác entity context.
job_owner_headhunter còn có nhiều alias đang tồn tại trong UI/code: Career Advisor / CA / Advisor / Person in charge / Recruiter / Career Counselor — tất cả map về headhunter:
- Career counseling module — gọi là Advisor (Amy, Trịnh Thị Tú Anh...)
- Candidates module — gọi là Person in charge
- Cách gọi nội bộ: thường nói Headhunter hoặc CA
- Lúc trước có role riêng "Recruiter" — đã merge vào headhunter
Client Company của Job Owner — pháp nhân khách hàng
Mỗi job được gắn với 1 Client Company (pháp nhân khách hàng của Job Owner). Đây là actor pháp nhân riêng biệt, không trùng với JO.
| Khái niệm | Có user account login? | Mục đích |
|---|---|---|
| Client Company | ❌ Không bắt buộc | Metadata gắn vào job — biết job thuộc công ty nào |
Sub-tenant job_owner_client_user | ✅ Có account | Khi JO muốn cấp truy cập cho client tự xem |
→ Mọi sub-tenant đều là 1 client company, nhưng đa số client company chỉ tồn tại như metadata, không có account.
Anonymous mode — đăng job ẩn thông tin công ty
Job có thể đăng ở chế độ anonymous — ẩn tên client company khỏi listing public, chỉ hiện ngành / quy mô / vị trí.
→ Xem Module Jobs.
Sub-tenant của Job Owner
Quyền cấp account: job_owner_admin hoặc job_owner_account_manager. Xem workflow JO cấp account cho Client (pending verify).
Permission
Permission được quản lý qua UI tại System setting → Advanced → Permission. Xem chi tiết module Permission.