← Semua dokumentasi

Blueprint screening CV AI — DW E-Recruitment (Golang)

Versi 0.5 · 10 Oktober 2026 · Rancangan, belum implementasi.

Revisi ini menambahkan AI + Simple Additive Weighting (SAW) hanya pada blueprint DW. Publikasi rancangan terpisah dari implementasi: tidak mengubah sistem E-Recruitment/Biproo, backend DW, atau portal operasional.

1. Identitas, masalah, dan tujuan

DW adalah produk milik Devworks, terpisah dari Biproo. Flow bisnis umum dapat serupa, tetapi DW memiliki codebase, aturan, pengguna, data, dokumen, database, kredensial, audit, dan roadmap sendiri. Tidak ada akses atau impor data Biproo yang diasumsikan. Rancangan ini bukan port kode atau migrasi produk tersebut.

Masalah penelitian: review CV membutuhkan waktu, dokumen memiliki format beragam, dan alasan ranking sulit ditelusuri. Tujuan prototipe Go adalah membantu recruiter DW membaca bukti, membandingkan CV dengan persyaratan posisi, dan memprioritaskan review; bukan menggantikan keputusan manusia.

Usulan judul: Rancang Bangun dan Evaluasi Sistem Screening CV Menggunakan Large Language Model dan Metode Simple Additive Weighting (SAW) dengan Backend Golang pada DW. Pembimbing menentukan rumusan akhir.

Pertanyaan penelitian:

  1. Seberapa dekat ranking AI + SAW dan skor aspek AI dengan penilaian recruiter pada dataset DW berizin/sintetis, dibanding baseline jumlah berbobot tanpa normalisasi antar-kandidat?
  2. Bagaimana kelengkapan ekstraksi dan dukungan bukti memengaruhi kualitas screening?
  3. Bagaimana bantuan AI memengaruhi waktu review, dengan kualitas hasil tetap diukur?

2. Scope

Prototipe penelitian mencakup lowongan, lamaran, upload CV privat, ekstraksi PDF teks/scan/hibrida, scoring AI berbukti, batch asinkron, ranking, review, dan audit. Rancangan platform lengkap DW mencakup 16 modul/82 kebutuhan: FPK/approval, talent pool/Walk Interview, assessment, interview, jadwal/meeting, training/OJT, onboarding, kontrak, laporan, dan integrasi. Seluruhnya masih rancangan; fitur di luar screening bukan syarat eksperimen inti.

Seluruh backend bisnis, validator, scoring, orkestrasi, dan worker baru dirancang dalam Go. Runtime inference dan alat OCR dapat berupa layanan/proses khusus yang dipanggil adapter Go. Memakai model yang sudah tersedia tidak berarti backend bisnis dibuat dengan bahasa atau aplikasi lama.

Server penuh memberi keleluasaan mengatur antrean, proses, storage, dan inference. CPU, RAM, VRAM, disk, throughput model, serta biaya tetap terbatas dan perlu diukur.

3. Kebutuhan fungsional

IDKebutuhan DW
F01Kandidat memiliki akun, profil, persetujuan, dokumen, dan lamaran DW sendiri
F02Recruiter mengelola posisi, persyaratan, rubric berversi, dan scope organisasi
F03Upload privat melalui validasi tipe/ukuran, checksum, karantina, dan pemeriksaan dokumen
F04PDF diproses per halaman: ekstraksi teks, deteksi scan/hibrida, OCR bila diperlukan, dan metadata kualitas
F05Screening per lowongan/batch berjalan asinkron; job/item idempotent dan progres tersedia
F06Ekstraksi fakta per chunk mempertahankan nomor halaman/span bukti; scoring memakai persyaratan posisi
F07Output terstruktur divalidasi Go; alasan, kekurangan bukti, dan pertanyaan interview bersumber pada hasil
F08Ranking SAW dihitung Go per batch lowongan beku; versi normalisasi dapat diaudit, dengan pencarian/filter/pagination server-side
F09Review recruiter menyimpan keputusan review, koreksi, catatan, reviewer, waktu, dan audit
F10Retry terkontrol, dead-letter, pemulihan worker, model/rubric versioning, serta metrik operasional

Ukuran halaman UI merupakan keputusan DW, bukan aturan produk lain. Usulan awal 25/50/100 dengan virtualisasi bila diperlukan; batch tetap dapat memproses ribuan item bertahap. Jumlah tersebut bukan hasil benchmark.

4. Flow utama

Kandidat mendaftar dan mengunggah CV → validasi/karantina → lamaran terkait lowongan → recruiter memulai batch → API Go menyimpan job serta outbox → antrean mendistribusikan tugas → worker scan/ekstraksi/OCR/inference memproses → skor aspek AI dan bukti divalidasi/disimpan → setelah semua item terminal, Go membekukan himpunan hasil valid → normalisasi dan ranking SAW → recruiter mereview dan menentukan tindak lanjut. Progres tetap tersedia selama pemrosesan.

Setiap tahap dapat gagal secara terpisah. File tidak aman tidak diteruskan; OCR/AI tidak lengkap diberi status perlu pemeriksaan, bukan otomatis skor nol. Retry untuk gangguan sementara dibatasi; kegagalan permanen masuk dead-letter dengan audit replay.

Detail ada pada flow dan diagram dan arsitektur kapasitas.

5. Strategi AI DW

Tidak ada batas tetap warisan 3.500 karakter/12 halaman sebagai spesifikasi DW. Tetap ada batas keamanan upload, page count, token per panggilan, timeout, dan kuota yang dikonfigurasi berdasarkan pengujian. Pemrosesan lengkap tidak sama dengan menghilangkan seluruh batas resource.

6. Rancangan AI + SAW yang dapat diaudit

6.1. Pembagian peran

AI membaca bukti dan memberi skor aspek; SAW menghitung peringkat; recruiter memutuskan. SAW adalah metode pengambilan keputusan multikriteria, bukan model AI. Menambahkan SAW tidak otomatis meningkatkan ketepatan penilaian AI.

6.2. Kriteria dan bobot

Usulan rubric awal DW terdiri dari empat aspek dengan skor 0–100:

AspekSimbolBobot awalJenis
Pengalaman relevanE35%Benefit
Keterampilan yang dibutuhkanK30%Benefit
Relevansi peran/lingkup pekerjaanR20%Benefit
Pendidikan/sertifikasi relevanP15%Benefit

Bobot ini usulan DW, bukan aturan proprieter yang otomatis diwarisi. Recruiter DW mengesahkan rubric per posisi; bobot harus nonnegatif, berjumlah 100%, dan versinya dibekukan. Semua kriteria benefit: semakin besar nilainya semakin baik menurut rubric. Gaji, identitas pribadi, dan atribut sensitif tidak ditambahkan sebagai kriteria cost.

6.3. Rumus yang dipilih untuk DW

DW mengusulkan SAW dengan normalisasi maksimum per kriteria dalam satu batch lowongan. Penjumlahan berbobot dan normalisasi maksimum benefit merujuk bagian 2 dan 3.1 Stanujkic, Magdalinovic, dan Jovanovic (2013). Pemilihan batch, penanganan kegagalan, dan audit di bawah adalah keputusan rancangan DW.

x_ij = skor aspek j kandidat i yang valid (0–100)
M_j  = maksimum x_ij pada himpunan kandidat valid dalam batch
r_ij = x_ij / M_j                         (jika M_j > 0)
V_i  = jumlah(w_j × r_ij)                  (bobot desimal, jumlah = 1)
Nilai tampilan SAW = round(100 × V_i; 2)

Baseline skor absolut, bukan nilai SAW relatif batch:
S_i = 0,35 × E_i + 0,30 × K_i + 0,20 × R_i + 0,15 × P_i

Go memvalidasi skor dan menghitung normalisasi, kontribusi berbobot, serta ranking; total dari model tidak dipercaya begitu saja. Perhitungan dan pengurutan memakai presisi penuh yang ditetapkan (misalnya decimal); hanya tampilan akhir dibulatkan dua desimal dengan aturan rounding eksplisit. Jangan membulatkan rasio/kontribusi antara lalu memakainya untuk ranking.

6.4. Contoh singkat, dua kandidat pada lowongan yang sama

KandidatE (35%)K (30%)R (20%)P (15%)
A80907570
B90808080
Maksimum kolom90908080
A = 100 × [(80/90 × 0,35) + (90/90 × 0,30)
         + (75/80 × 0,20) + (70/80 × 0,15)] = 92,99
B = 100 × [(90/90 × 0,35) + (80/90 × 0,30)
         + (80/80 × 0,20) + (80/80 × 0,15)] = 96,67

Urutan SAW: B lalu A. Baseline absolut: B=83,50; A=80,50.

Angka sintetis ini hanya contoh hitungan. Nilai SAW 96,67 bukan akurasi AI, probabilitas diterima, atau kecocokan absolut 96,67%. Nilainya relatif terhadap kandidat pembanding. Bahkan satu kandidat dengan skor aspek positif bisa memperoleh nilai SAW 100; karena itu skor aspek/bukti dan konteks batch tetap ditampilkan.

6.5. Aturan batch, kasus khusus, dan review

7. Data, cache, dan review

Database PostgreSQL khusus dw_recruitment dirancang baru; bucket dokumen DW privat. Tidak menunjuk database aplikasi lain. ERD merupakan rancangan, belum DDL/migration.

Cache skor aspek AI menyertakan scope organisasi DW, hash dokumen/input, versi persyaratan, rubric/bobot, prompt, checksum model, konfigurasi inference, serta versi ekstraktor/OCR/scoring. Cache ranking SAW terpisah dan juga mengikat lowongan/batch, daftar source scoring-run/anggota, vektor maksimum, bobot, dan versi metode. Mengubah kandidat pembanding tidak mengizinkan penggunaan nilai SAW lama, tetapi skor aspek AI yang masih valid dapat dipakai menghitung ranking baru tanpa inference ulang. Cache tidak menyamakan data dua pemilik atau menggantikan pemeriksaan authorization.

Hasil menyimpan skor per aspek, baseline absolut S, artifact SAW berversi, alasan, span/page bukti, metadata ekstraksi, versi pipeline, status, dan timing. Review mengacu scoring-run dan versi ranking yang dilihat. Keputusan seperti reviewed atau needs_followup tidak berarti kandidat diterima kerja. Koreksi recruiter menjadi record baru dengan audit; tidak menimpa hasil AI diam-diam.

8. Keamanan dan batas keputusan

RBAC/scope organisasi diterapkan pada seluruh API, query, event progres, bucket, dan replay job. Kandidat hanya mengakses profil/dokumen/statusnya; catatan screening internal bukan endpoint publik.

Kredensial, kunci signing/enkripsi, cookie portal, database role, queue, backup, dan service identity DW terpisah dari Biproo. Jangan memakai cookie domain lebar .devworks.co.id untuk autentikasi recruiter; gunakan session host-only dan pertukaran identitas terkontrol jika SSO diperlukan.

Dokumen tidak boleh dieksekusi; parser/OCR berjalan dengan pembatas resource, tanpa akses jaringan yang tidak perlu. Hindari CV/token pada log. Retensi, penghapusan, hak akses, dan pemulihan backup perlu prosedur sebelum data nyata digunakan.

Recruiter memutuskan shortlist dan proses seleksi. AI tidak melakukan penolakan otomatis atau menyatakan kandidat layak/tidak layak bekerja tanpa review.

9. Hasil yang belum tersedia

Belum ada backend DW Go, migration, portal baru, deployment, maupun hasil eksperimen screening dalam paket ini. Snapshot model yang sehat bukan bukti kualitas. Seluruh angka kapasitas, SLA, dan target evaluasi harus ditetapkan setelah pilot dan pengukuran.