Diagram alur lengkap (Mulai ke Selesai)
Diagram alur sistem Makarya secara menyeluruh menggambarkan perjalanan seluruh persona: Kandidat (Pencari Kerja), HR Recruiter, Hiring Manager, dan Penilai Ahli (Expert Verifier) dari titik awal (MULAI) hingga penetapan hasil kerja (SELESAI).
Prinsip & Invarian Utama Sistem
Alur kerja aplikasi Makarya dibangun di atas 4 fondasi teknis mutlak:
- Single Active Target:
Kandidat hanya dapat memiliki maksimal 1 posisi target aktif dalam satu waktu (ditegakkan via database partial unique constraintactiveSlot). Mengganti target menandai target lama sebagaiREPLACEDtanpa menghapus karya atau asesmen. - Reuse-Before-Task (Anti-Tugas Ulang):
Karya dan asesmen melekat permanen pada kandidat. Saat memilih posisi baru, mesin matching mengevaluasi karya/asesmen lama terlebih dahulu. Jika asesmen valid (rubrik, level, konteks, masa berlaku), status otomatisMATCHEDtanpa perlu ujian ulang. - Zero-Percentage Readiness (Kesiapan Beralasan Pasti):
Tidak ada skor persentase semu (misal: “85% cocok”). Status kesiapan adalah status tegas beralasan:READY_FOR_HR_REVIEW(semua syarat wajib terpenuhi + nol hard blocker) atauNOT_READY(disertai daftar gap nyata). - Human Expert Verification dengan Pembatasan Revisi:
Validasi kompetensi dilakukan oleh penilai ahli manusia terakreditasi sesuai lingkup (competencyScope). Demi mencegah eksploitasi dan beban tanpa akhir, jalur revisi dibatasi tepat 1 kali per pengajuan.
1. Pipa Alur Utama (The 5 Golden Stages)
Sebelum menelaah detail per peran, alur inti sistem Makarya selalu bergerak dalam 5 tahapan berurutan (Golden Pipeline) yang deterministik:
2. Diagram Alur Makro Terstruktur (Sequential Phase Handoff)
Berikut adalah diagram alur makro yang memperlihatkan titik serah-terima (hand-off) antar-persona dari MULAI hingga SELESAI, disusun secara kronologis per fase tanpa percabangan kusut:
3. Alur Detail Kandidat (Pencari Kerja)
4. Alur Detail HR Recruiter (Perusahaan)
5. Alur Detail Hiring Manager (Pimpinan Teknis)
6. Alur Detail Penilai Ahli (Expert Verifier)
7. Transisi Status Kesiapan (State Machine)
8. Matriks Interaksi Antar-Persona & Rute Aplikasi
Tabel referensi komprehensif yang memetakan setiap fase, antarmuka rute web, aktor yang bertanggung jawab, serta aksi teknis di basis data:
| Fase Siklus Hidup | Aktor Utama | Rute UI Aplikasi | Aksi Teknis & Endpoint API | Luaran State / Data |
|---|---|---|---|---|
| 1. Orientasi & Explorer | Publik / Pengunjung | /, /tentang, /target-pekerjaan | GET /api/public/targets, GET /target/[slug] | Pratinjau spesifikasi lowongan publik |
| 2. Autentikasi | Semua Peran | /masuk, /daftar | POST /api/auth/login, POST /api/auth/register, /api/auth/demo | Sesi terautentikasi (Cookie HttpOnly makarya_session) |
| 3. Setup Tim Organisasi | HR Recruiter | /perusahaan/pengaturan | POST /api/company/team/invite | Pembuatan ActorGrant (HM & Verifier dengan competencyScope) |
| 4. Penautan Lowongan | HR Recruiter | /perusahaan/posisi | POST /api/company/positions | Pembuatan ExternalPosition berstatus DRAFT |
| 5. Penyusunan Kriteria | HR Recruiter | /perusahaan/posisi/[id] | PUT /api/company/positions/[id]/manifest | Pembuatan CompetencyManifest & PositionRequirement |
| 6. Pengesahan Kriteria | Hiring Manager | /perusahaan/posisi/[id] | POST /api/company/positions/[id]/publish | Manifest PUBLISHED, Checksum SHA-256 terkunci |
| 7. Seleksi & Aktivasi Target | Kandidat | /target/[slug], /dashboard | POST /api/candidate/targets | CandidateTarget baru, activeSlot = candidateId |
| 8. Portofolio & Proyek Singkat | Kandidat | /dashboard/karya, /dashboard/proyek-singkat | POST /api/candidate/works, POST /api/candidate/projects/attempt | Penyimpanan berkas privat di Blob/R2 + metadata Work |
| 9. Pengajuan Asesmen Ahli | Kandidat | /dashboard/karya | POST /api/candidate/assessment-requests | Assessment status REQUESTED, Proyeksi IN_REVIEW |
| 10. Penugasan Verifier | HR Recruiter | /perusahaan/penilaian | POST /api/company/assessments/assign | VerifierAssignment ke akun dengan scope kompetensi cocok |
| 11. Verifikasi Rubrik Ahli | Penilai Ahli | /perusahaan/penilaian | POST /api/verifier/assessments/[id]/evaluate | Nilai butir rubrik, draft umpan balik |
| 12. Siklus Revisi (Maks 1x) | Verifier & Kandidat | /dashboard/revisi/[id] | POST /api/verifier/assessments/[id]/revision, POST /api/candidate/revisions | NEEDS_REVISION, revisi karya disubmit ulang |
| 13. Penyelesaian Asesmen | Penilai Ahli | /perusahaan/penilaian | POST /api/verifier/assessments/[id]/complete | Asesmen COMPLETED, Proyeksi Requirement MATCHED |
| 14. Eskalasi Kesiapan | Mesin Sistem | Latar Belakang (Transaksional) | Evaluasi otomatis readiness.ts | Status target: READY_FOR_HR_REVIEW |
| 15. Berbagi Profil Selektif | Kandidat | /dashboard/profil-skill | POST /api/candidate/shares | Token hash SHA-256, rute resolusi publik /profil/[token] |
| 16. Keputusan Seleksi HR | HR Recruiter | /perusahaan/kandidat/[slug] | POST /api/company/decisions | CompanyCandidateDecision (ADVANCE / CLARIFY / NOT_ADVANCED) |
| 17. Pelaporan & Outcome | Kandidat & HR | /dashboard/hasil | POST /api/candidate/outcomes, POST /api/company/outcomes/confirm | Rekam Outcome penempatan nyata terkonfirmasi |
9. Penanganan Kasus Tepi & Fail-Safes (Edge Cases)
Dalam memastikan integritas tinggi pada seluruh siklus hidup aplikasi, sistem menerapkan mekanisme pertahanan berlapis:
- Upaya Penggantian Target saat Ada Asesmen Berjalan (
IN_REVIEW):- Masalah: Kandidat ingin berpindah target saat verifier sedang memeriksa karya untuk target aktif.
- Solusi Sistem: Sistem menampilkan dialog peringatan tegas bahwa target aktif akan beralih status menjadi
REPLACED. Namun, berkas karya, klaim kompetensi, dan asesmen yang sedang berlangsung TIDAK dihapus. Saat asesmen selesai, hasilnya tetap tersimpan pada profil kandidat dan dapat langsung di-reuse pada target baru.
- Upaya Eksploitasi Perulangan Revisi Tanpa Batas:
- Masalah: Kandidat atau verifier terjebak dalam siklus bolak-balik revisi tanpa henti.
- Solusi Sistem: Database menyimpan kolom hitungan
revisionRequests. JikarevisionRequests >= 1, tombol “Minta Perbaikan” terkunci permanen. Verifier diwajibkan memberikan penilaian final (COMPLETED).
- Pencabutan Tautan Profil Skill oleh Kandidat (Right to Revoke):
- Masalah: Kandidat ingin membatalkan akses pihak eksternal atas portofolio dan asesmen yang pernah dibagikan.
- Solusi Sistem: Kandidat dapat mengeklik “Cabut Tautan” kapan saja. Token langsung ditandai
revokedAt = now(). Permintaan ke/profil/[token]berikutnya langsung merespon HTTP410 Gonedengan headerno-storedanno-referrer, tanpa menyisakan data di cache.
- Pembatalan / Revokasi Penilaian Akibat Pelanggaran Integritas:
- Masalah: Bukti karya terbukti plagiat atau verifier kehilangan izin akreditasi setelah penilaian selesai.
- Solusi Sistem: Eksekusi revokasi atomik mengubah asesmen menjadi
REVOKED. Mesin readiness secara instan menurunkan status target kembali keNOT_READY, dan memberitahukan HR recruiter tanpa menghapus jejak audit log.
- Pemisahan Otoritas Rekruter vs Hiring Manager:
- Masalah: Hiring manager mencoba mengambil keputusan rekrutmen akhir atau rekruter menerbitkan kriteria tanpa validasi teknis.
- Solusi Sistem: RBAC membatasi hak secara ketat di tingkat API route handler (
permissions.ts&ActorGrant). Hiring manager hanya memiliki otorisasi penerbitan kriteria (PUBLISH), sedangkan keputusan rekrutmen (ADVANCE) hanya dapat dieksekusi oleh akun dengan grantRECRUITER.