← Semua dokumentasi

Rencana penelitian dan pengujian — DW E-Recruitment Go

Revisi lokal 0.5 · 10 Oktober 2026 · Penambahan rancangan evaluasi AI + SAW; tidak menjalankan eksperimen atau mengubah sistem.

Seluruh jumlah sampel, target, dan prosedur di bawah merupakan usulan. Belum ada eksperimen baru, penilaian CV nyata, atau hasil metrik dalam paket ini.

1. Pendekatan penelitian

Gunakan pengembangan prototipe E-Recruitment Go secara iteratif, disertai evaluasi empiris pada kasus screening DW: identifikasi masalah → rancangan → implementasi API/worker Go dan integrasi AI → pilot → pembekuan konfigurasi → eksperimen → analisis. Ini rancangan metode untuk dibahas dengan pembimbing, bukan klaim penerapan metode akademik tertentu yang belum dijalankan.

Objek yang diuji adalah upload dan akses melalui API Go, batch/worker Go, adapter layanan AI Devworks, validasi dan scoring Go, serta review recruiter pada portal baru. DW merupakan produk independen. Pengujian aplikasi pemilik lain bukan kontrak, dataset, atau bukti keberhasilan DW.

Variabel utama: metode review (manual/berbantuan AI pada prototipe Go), jenis dokumen, kesesuaian ranking, kesalahan skor, dukungan bukti, serta waktu review. Kontrol: versi aplikasi Go, lowongan, rubric, model, prompt, bobot, konteks, bahasa, dan perangkat uji.

Hipotesis kerja: bantuan AI dapat mempercepat review dengan kualitas kesesuaian yang tetap dapat diterima recruiter. Kecepatan dan kualitas harus dinilai bersamaan; hipotesis dapat tidak didukung hasil.

2. Dataset dan acuan penilaian manusia

Usulan awal: 60 pasangan CV–lowongan evaluasi, dibagi tiga posisi, masing-masing 20 pasangan. Sediakan pilot sekitar 10 pasangan di luar set evaluasi. Jumlah ini rancangan kelayakan awal; kebutuhan statistik ditinjau setelah pilot dan tidak disebut sebagai hasil perhitungan power.

Data hanya berasal dari DW dengan izin atau dibuat sintetis; tidak mengambil CV produksi Biproo. Set mencakup tingkat kesesuaian beragam. Versi PDF teks, scan, dan gabungan dari CV yang sama dipakai untuk uji ketahanan berpasangan; versi tersebut tidak dihitung sebagai kandidat independen tambahan. Pisahkan analisis dataset sintetis dan data berizin yang merepresentasikan proses nyata.

Langkah penyiapan:

  1. Pilih posisi dan tetapkan persyaratan yang dipakai menilai CV.
  2. Gunakan CV berizin yang disamarkan atau CV sintetis. Simpan pemetaan identitas asli hanya di lokasi berakses terbatas.
  3. Beri alias CV dan lowongan; simpan hash, jenis dokumen, bahasa, dan sumber izin.
  4. Pisahkan CV pilot dari evaluasi berdasarkan identitas sumber CV. Semua versi dokumen dari CV yang sama berada dalam kelompok yang sama.
  5. Bekukan test set sebelum penyesuaian prompt/bobot. Jika kemudian diubah, catat iterasi dan gunakan set evaluasi baru yang belum dipakai tuning.

Dua recruiter menilai secara independen tanpa melihat hasil AI. Mereka memakai rubric empat aspek yang sama. Sepakati jangkar per posisi, misalnya 0=tidak ada bukti, 25=minimal, 50=sebagian, 75=sebagian besar, 100=memenuhi kebutuhan sepenuhnya. Informasi tidak tersedia diberi penanda tersendiri agar tidak disamakan dengan terbukti tidak memiliki kemampuan.

Catat skor asli masing-masing reviewer, bukti, dan perbedaan penilaian. Laporkan kesepakatan awal; selisih yang melewati toleransi pilot dibahas untuk menghasilkan skor acuan konsensus. Acuan ini merupakan penilaian reviewer atas CV, bukan kebenaran mutlak atau prediksi performa kerja.

3. Metrik yang diutamakan

DimensiMetrik dan cara baca
RankingnDCG@5 ranking AI + SAW dan baseline absolut S per lowongan; ringkas rata-rata antar-lowongan
SkorMAE aspek AI dan baseline absolut S terhadap rubric/skor absolut recruiter; bukan MAE nilai SAW relatif terhadap skor absolut
BuktiProporsi klaim AI yang didukung CV dan proporsi klaim tidak didukung
EfisiensiMedian waktu review manual vs berbantuan AI pada pasangan sebanding
OperasionalSuccess rate, waktu antrean, waktu proses, cache hit/miss, dan kasus gagal per jenis dokumen

Definisi yang dibekukan sebelum evaluasi:

MAE = jumlah |skor_AI - skor_acuan| / N

gain_i = skor_acuan kandidat di urutan i / 100
DCG@5 = jumlah untuk i=1..min(5,N_job): gain_i / log2(i+1)
IDCG@5 = DCG pada urutan ideal menurut skor acuan
nDCG@5 = DCG@5 / IDCG@5

Evidence support rate = klaim didukung / seluruh klaim faktual yang dinilai
Unsupported claim rate = klaim tidak didukung / seluruh klaim faktual yang dinilai

Penghematan waktu deskriptif (%) =
100 x (median waktu manual - median waktu berbantuan AI) / median waktu manual

nDCG di sini memakai linear gain dari skor acuan 0–100. Bila IDCG=0 atau satu lowongan tidak memiliki label memadai, laporkan tidak dapat dihitung, bukan otomatis 0/1. MAE dilaporkan untuk keluaran valid disertai jumlah kegagalan; menghapus kegagalan tanpa pelaporan dapat membuat sistem terlihat terlalu baik.

Skor acuan total adalah jumlah berbobot empat aspek reviewer dengan bobot yang sama (S_acuan), bukan nilai SAW pada batch lain. Nilai SAW relatif tidak langsung dibandingkan dengan skor absolut dalam MAE. Gunakan nama gain_i pada pencatatan nDCG agar tidak tertukar dengan rasio normalisasi SAW r_ij.

Anotasi bukti menggunakan kategori: didukung, tidak didukung, atau tidak dapat ditentukan. Laporkan ketiganya. Ukur terhadap CV asli dan terhadap teks yang benar-benar dikirim ke model agar kesalahan ekstraksi dapat dibedakan dari kesalahan inference. Metadata ekstraksi yang belum tersimpan lengkap perlu dicatat pada harness penelitian.

Target kelulusan angka belum ditetapkan. Tetapkan sesudah pilot bersama pembimbing/recruiter, sebelum membuka hasil test set. Nilai skor 0–100 tidak otomatis dapat disebut “akurasi 90%”.

4. Desain perbandingan dan pengulangan

Untuk mengisolasi kontribusi SAW, gunakan keluaran aspek AI yang sama pada dua perhitungan Go: baseline absolut S dan SAW maksimum per batch V. Bekukan kandidat, versi rubric/model, bobot, source scoring-run, serta maksimum kolom per lowongan. Bandingkan nDCG@5 keduanya terhadap acuan manusia pada himpunan valid yang sama; laporkan jumlah/penyebab kandidat dikecualikan. SAW tidak diasumsikan lebih baik sebelum hasil tersedia.

Uji sensitivitas terpisah: perubahan bobot yang disetujui, penambahan kandidat pembanding, dan perubahan satu skor. Catat perubahan maksimum, nilai, dan urutan sebagai ranking-run baru; jangan mencampur hasil antar-batch atau mengubah test set utama setelah melihat hasil.

Bandingkan manual dengan bantuan AI menggunakan paket CV dengan tingkat kesulitan sebanding dan alokasi acak. Reviewer tidak menilai CV yang sama di kedua kondisi untuk mengurangi efek ingatan. Seimbangkan urutan kondisi antar-reviewer. Penilai acuan bekerja terpisah dari sesi waktu review bila memungkinkan.

Pisahkan waktu komputasi dari waktu kerja manusia. Catat keduanya jika mengukur durasi end-to-end. Hasil cache dilaporkan terpisah dari inference baru; cache cepat tidak boleh ditafsirkan sebagai kecepatan model.

Ulangi sekitar 10 pasangan sebanyak tiga inference baru dalam lingkungan eksperimen terisolasi untuk mengukur variasi skor/ranking. Pastikan cache tidak menggantikan pemanggilan model dan tidak mengubah cache produksi. Jika pengulangan tidak tersedia, tandai stabilitas belum diuji. Temperature rendah tidak menjamin hasil identik.

5. Matriks pengujian inti

IDSkenarioYang diperiksa
U01PDF teks biasaEkstraksi, empat aspek, baseline absolut, normalisasi/ranking SAW batch, dan alasan
U02CV sama dalam format scanPerubahan teks/bukti/skor terhadap versi teks
U03PDF hibrida teks dan gambarApakah bagian pengalaman pada halaman gambar terlewat
U04CV digabung dokumen identitas sintetisHalaman yang dipilih, konteks yang terkirim, pengaruh pada hasil
U05CV panjang melintasi chunk, halaman, dan token budget DWCoverage per halaman, penggabungan fakta, bukti yang terlewat, status partial, dan alasan limit
U06File kosong, rusak, hash berubah, atau belum layak scanPenolakan/tindak lanjut; tidak menghasilkan skor sukses palsu
U07JSON rusak, skor di luar rentang, atau aspek hilang dari provider ujiValidasi Go gagal; kesalahan tercatat per item
U08Provider timeout dan gangguan sementaraRetry terbatas, status akhir, dan isolasi item lain
U09Generate ditekan kembali dan cache tersediaBatch tidak ganda, artifact sesuai input, status akurat
U10Nilai SAW sama atau tampilan dua desimal samaRanking memakai nilai sebelum pembulatan; tie-break aspek/durasi/ID hanya untuk nilai benar-benar sama
U11Recruiter di luar scope dan kandidat meminta hasil internalAkses ditolak tanpa membocorkan CV/catatan
U12Teks CV berisi instruksi manipulasi sintetisCV diperlakukan sebagai data; perilaku model dicatat
U13Nama/atribut pribadi diganti pada CV sintetis identikSelisih skor/ranking, tanpa menyimpulkan fairness menyeluruh
U14Recruiter meminta tindak lanjutCatatan wajib, reviewer/waktu/audit tersimpan
U15Scope organisasi berbeda atau identitas service non-DWQuery, CV, cache, progres SSE, dan hasil tidak bocor antar-scope/pemilik
U16Worker mati setelah commit sebelum ACK; event outbox dipublikasikan ulangPending recovery, lease, deduplication, artifact tidak ganda, dan progres benar
U17Retry habis, dead-letter, lalu replay manualTidak ada sukses palsu; izin, catatan, dan audit replay tersimpan
U18Rubric, checksum model, prompt, atau ekstraktor berubahCache lama tidak dipakai sebagai versi baru; run lama tetap bisa diaudit
U19Backup/restore pada lingkungan uji DWMetadata, dokumen privat, akses, dan konsistensi hasil dapat dipulihkan
U20Fixture dua kandidat pada contoh blueprintMaksimum 90/90/80/80; nilai A=92,99, B=96,67; urutan B lalu A; pembulatan hanya tampilan
U21Kolom nol sah, aspek hilang, atau seluruh item gagalNol sah menghasilkan rasio nol/peringatan; data hilang bukan nol; himpunan valid kosong tidak menghasilkan ranking
U22Item selesai tidak bersamaan; kandidat baru atau skor direvisiRanking final menunggu semua terminal; snapshot/versi baru dan cache ranking baru, tanpa menimpa hasil lama
U23Cache aspek valid dipakai pada batch berbedaAspek dapat digunakan ulang, tetapi maksimum/SAW dihitung ulang; snapshot dan scope tetap diaudit
U24Bobot negatif, jumlah bukan 100%, atau konfigurasi hasil bercampurTolak konfigurasi/ranking; tidak menerapkan ambang absolut pada nilai SAW relatif atau menolak kandidat otomatis

Uji provider gagal memakai stub/fixture yang dipanggil adapter Go pada lingkungan uji. Domain scoring Go juga diuji dengan fixture deterministik untuk pembulatan, tie-break, idempotency, scope, dan perubahan versi cache. Uji atribut pribadi hanya memakai variasi sintetis. Masalah yang ditemukan menjadi hasil dan backlog; blueprint ini tidak menyatakan semua skenario telah lulus.

6. Pengujian kapasitas DW terpisah dari kualitas AI

Uji beban memakai dataset sintetis pada lingkungan DW terisolasi, bukan layanan produksi bersama. Naikkan beban bertahap sampai mendekati bottleneck; catat jumlah item/halaman, request rate, concurrent worker per pool, model/runtime, resource, dan kondisi cache.

Ukur throughput end-to-end dan per tahap, queue age, latency p50/p95/p99, error/retry/dead-letter, CPU/RAM/VRAM/disk, serta recovery saat worker berhenti. Lakukan soak test dan periksa starvation antar-organisasi, backpressure, reconnect progres, serta pertumbuhan storage.

Pisahkan benchmark dengan provider stub (overhead Go/queue) dari inference nyata (kapasitas model). Worker tambahan pada mesin yang sama tidak selalu menaikkan throughput. Target concurrency/SLA ditetapkan setelah pengukuran; belum ada angka kapasitas yang dijanjikan.

Ini evaluasi rekayasa platform pendukung. Metrik kapasitas tidak menggantikan MAE, nDCG, bukti, atau waktu review manusia pada penelitian screening.

7. Data eksperimen yang perlu direkam

Minimal: experiment_id, alias CV/lowongan, hash file/input, versi persyaratan, jenis dokumen, bahasa, status/coverage setiap halaman, alasan pengabaian, span bukti, chunk yang terkirim, flag partial/pemotongan, model dan quantization, prompt/hash prompt, bobot, parameter generation, cache hit, attempt, status/error, skor/aspek AI, alasan/bukti, label reviewer, dan durasi.

Tambahan SAW: batch/lowongan, saw_ranking_run_id, versi metode, hash keanggotaan, source scoring-run, daftar pengecualian/alasan, vektor maksimum, rasio, kontribusi berbobot, nilai sebelum pembulatan, nilai tampilan, urutan/tie-break, serta baseline absolut S. Ini kebutuhan pencatatan yang direncanakan, bukan hasil eksperimen.

Merekam nama model saja tidak cukup: simpan checksum file model, versi llama.cpp, konfigurasi context, parameter sampling, versi ekstraktor, commit aplikasi Go, dan versi kontrak adapter AI. Source dan runtime dapat berubah setelah snapshot blueprint.

Lembar kerja awal yang perlu disiapkan: katalog dataset, rubric per posisi, anotasi dua reviewer, hasil inference, anotasi bukti, catatan waktu review, serta daftar kasus gagal. Lembar berisi data sensitif disimpan privat dan tidak dimasukkan ke repositori atau lampiran publik.

8. Kebutuhan skripsi dan bukti tiap bab

BagianBahan yang perlu disiapkan
Bab IWawancara masalah, rumusan pertanyaan, tujuan, manfaat, dan batas scope
Bab IILLM pralatih, ekstraksi/OCR, SAW/normalisasi maksimum benefit, evaluasi ranking, dan penelitian terkait
Bab IIIKebutuhan, diagram AI + SAW, rubric/bobot, snapshot batch, dataset/izin, baseline pembanding, dan definisi metrik
Bab IVImplementasi API/worker Go dan integrasi AI yang diuji, hasil metrik, bukti/alasan, kegagalan, dan pembahasan
Bab VJawaban pertanyaan penelitian, batas generalisasi, dan saran berdasarkan hasil

Artefak untuk proposal/sidang: judul dan scope yang disetujui, diagram, contoh CV sintetis, contoh hitungan, demo hasil/review, dataset berizin, tabel evaluasi, dan catatan konfigurasi. Blueprint ini menyediakan rancangan artefak; belum menggantikan pengumpulan bukti tersebut.

9. Kriteria siap mulai eksperimen

Pengelolaan risiko AI generatif dapat memakai NIST AI 600-1 sebagai referensi desain dan evaluasi; pencantuman referensi tidak merupakan sertifikasi kepatuhan. NIST AI 600-1.