Skip to content

Role trong hệ thống

🌐Public

LunaiOne dùng mô hình 2 lớp:

LớpConcept
Role canonical (5 universal)admin, headhunter, account_manager, client_user, candidate_self — bản chất role
Persona = (entity × role) instancejob_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

EntityLoạiMô tả
LunaiOnePlatform entityNền tảng (vận hành bởi Lisod Japan). lunaione_admin thuộc entity này
Job OwnerPháp nhânDoanh nghiệp tuyển dụng. Bao gồm JSArt (qua brand LunaiWork — founding tenant), foredge, ...
Talent SupplierPhá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, ...
CandidateCá 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 role lunaione_admin.
  • JSArt vận hành tenant LunaiWork (founding tenant — JO + TS instances). JSArt staff làm role job_owner_headhunter, talent_supplier_headhunter củ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 entityBản chất
adminLunaiOne, JO, TSQuyền cao nhất trong scope entity
headhunterJO, TSSourcing + đối ứng candidate (gồm career counseling, Person in charge, recruiter, sourcer)
account_managerJO (active), TS (future)Quản lý quan hệ với khách/partner
client_userJO onlySub-tenant user (Client Company được cấp account)
candidate_selfCandidate 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.

EntityRole canonicalTên gọi cũ / biến thểMô tả
LunaiOneLunaiOne Adminlunaione_adminadminsuper_adminsystem_adminmanagerlisod_adminRole 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 OwnerJob Owner Adminjob_owner_admincompany_admincompany_owneremployerjo_adminRole 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 OwnerJob Owner Account Managerjob_owner_account_manageraccount_managerjo_account_managerRole 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 OwnerJob Owner Headhunterjob_owner_headhunterHeadhunterCareer AdvisorCAAdvisorPerson in chargeCareer Counselorrecruiterjo_recruiterjob_owner_recruiterlisod_headhunterRole 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 OwnerJob Owner Client Userjob_owner_client_userclient_accountjo_client_usersub_tenant_userRole 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 SupplierTalent Supplier Admintalent_supplier_admints_ownerts_adminOwnerownertalent_supplier_ownerRole 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 SupplierTalent Supplier Headhuntertalent_supplier_headhunterts_headhuntersourcerrecruiterRole 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 SupplierTalent Supplier Account Manager (future)talent_supplier_account_managerts_account_manageragencynccRole 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.
CandidateCandidatecandidate_selfapplicantuserRole 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_headhuntertalent_supplier_headhunter2 persona instance của cùng 1 role canonical headhunter, áp dụng ở 2 entity khác nhau:

PersonaEntityHành vi
job_owner_headhunterJob OwnerCareer 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_headhunterTalent SupplierSourcing + 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ệmCó user account login?Mục đích
Client Company❌ Không bắt buộcMetadata gắn vào job — biết job thuộc công ty nào
Sub-tenant job_owner_client_user✅ Có accountKhi 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.