Skip to main content

Job Framework

Job framework ini bukan cuma HR admin, tapi buat:

  • struktur karier
  • konsistensi jabatan lintas unit
  • kontrol akses & approval
  • reporting & workforce planning
  • future: payroll, budgeting, approval rule

Makanya dipisah berlapis.


1️⃣ JOB LEVELS – jenjang senioritas

job_levels

Fungsi

👉 Level karier vertikal

Contoh:

  • Junior
  • Senior
  • Lead
  • Manager
  • Director

Dipakai untuk

  • career path
  • approval rule (misal: min level Manager)
  • reporting (headcount by level)
  • salary banding (future)

Kenapa tabel sendiri?

Karena:

  • satu level bisa dipakai banyak job
  • urutan penting (order_index)
  • tenant bisa beda struktur

KEEP. Ini pondasi.


2️⃣ JOB GRADES – kelas kompensasi

job_grades → job_levels

Fungsi

👉 Sub-level di dalam level

Contoh:

  • Senior A / Senior B
  • Grade 7 / Grade 8

Dipakai untuk

  • payroll
  • benefit tier
  • internal fairness

Kenapa nggak langsung di level?

Karena:

  • HR sering butuh lebih granular dari level
  • grade bisa berubah tanpa mengubah title

🟡 Opsional, tapi penting buat company >100 org.


3️⃣ JOB FAMILIES – kelompok kompetensi

job_families

Fungsi

👉 Cluster skill / discipline

Contoh:

  • Engineering
  • Finance
  • Operations
  • Sales
  • Creative

BUKAN

❌ department ❌ organization unit

Dipakai untuk

  • learning path
  • talent mobility
  • reporting lintas unit
  • approval rule (contoh: Finance only)

KEEP. Ini HR best practice.


4️⃣ JOB TITLES – nama jabatan manusiawi

job_titles → family | level | grade

Fungsi

👉 Label resmi jabatan

Contoh:

  • Software Engineer
  • Finance Manager
  • Warehouse Supervisor

Kenapa ini penting?

Karena:

  • “Manager” di Finance ≠ Manager di Ops
  • Title = kombinasi family + level + grade

Kenapa relasinya nullable?

Karena:

  • tenant kecil belum tentu rapi
  • bisa bertahap matang

KEEP. Ini wajah framework.


5️⃣ JOB POSITIONS – slot organisasi nyata

job_positions → job_titles

Fungsi

👉 Posisi aktual yang bisa diisi orang

Contoh:

  • SE-Backend-01
  • FIN-MGR-HO
  • WH-SPV-A

Bedanya dengan Job Title?

Job TitleJob Position
KonsepSlot
GenerikSpesifik
Tidak terbatasTerbatas
“Software Engineer”“SE Backend Tim A”

Dipakai untuk

  • headcount control
  • hiring
  • mutasi
  • approval ownership

🔥 Ini table PALING penting buat real world.


6️⃣ ORG UNIT HAS POSITIONS – struktur formasi

organization_unit_has_positions

Fungsi

👉 Unit ini boleh punya posisi apa & berapa

Contoh:

  • Finance Dept:

    • Finance Manager (1)
    • Accountant (3)

Dipakai untuk

  • formasi organisasi
  • workforce planning
  • budget approval
  • validasi mutasi

🟡 max_headcount = future-proof (bagus lu taro)


7️⃣ EMPLOYEES – snapshot kondisi sekarang

employees

Kolom penting:

current_job_title_id
current_job_position_id

Fungsi

👉 status TERKINI karyawan

Kenapa snapshot?

Karena:

  • query cepat
  • UI gampang
  • history disimpan di table lain

✅ BENAR secara desain.


8️⃣ EMPLOYEE_POSITIONS – riwayat jabatan

employee_positions

Fungsi

👉 historical truth

Contoh:

  • 2022–2023: Staff
  • 2023–2025: Senior
  • 2025–now: Lead

Dipakai untuk

  • audit
  • appraisal
  • approval rule berbasis masa kerja
  • legal dispute (penting)

🔥 WAJIB kalau serius.


9️⃣ EMPLOYEE_OPERATIONAL_ASSIGNMENTS – penempatan operasional

employee_operational_assignments

Fungsi

👉 beda jabatan vs lokasi kerja

Contoh:

  • Title: Area Manager

  • Assignment:

    • Jan–Jun: Region Barat
    • Jul–Now: Region Timur

Kenapa dipisah?

Karena:

  • jabatan bisa tetap
  • area kerja berubah

🟡 Banyak sistem gagal di sini → desain lu benar.


🔁 RANGKUMAN 1 BARIS PER TABLE

TableBuat apa
job_levelsjenjang karier
job_gradeskelas kompensasi
job_familiescluster skill
job_titlesnama jabatan resmi
job_positionsslot nyata
org_unit_has_positionsformasi unit
employeeskondisi sekarang
employee_positionsriwayat jabatan
employee_operational_assignmentspenempatan lapangan

🧠 Cara mikir gampang (mental model)

  • Title = apa
  • Position = di mana & slot keberapa
  • Level/Grade = seberapa senior & mahal
  • Family = bidang keahlian