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:
- Pilih posisi dan tetapkan persyaratan yang dipakai menilai CV.
- Gunakan CV berizin yang disamarkan atau CV sintetis. Simpan pemetaan identitas asli hanya di lokasi berakses terbatas.
- Beri alias CV dan lowongan; simpan hash, jenis dokumen, bahasa, dan sumber izin.
- Pisahkan CV pilot dari evaluasi berdasarkan identitas sumber CV. Semua versi dokumen dari CV yang sama berada dalam kelompok yang sama.
- 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
| Dimensi | Metrik dan cara baca |
|---|---|
| Ranking | nDCG@5 ranking AI + SAW dan baseline absolut S per lowongan; ringkas rata-rata antar-lowongan |
| Skor | MAE aspek AI dan baseline absolut S terhadap rubric/skor absolut recruiter; bukan MAE nilai SAW relatif terhadap skor absolut |
| Bukti | Proporsi klaim AI yang didukung CV dan proporsi klaim tidak didukung |
| Efisiensi | Median waktu review manual vs berbantuan AI pada pasangan sebanding |
| Operasional | Success 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 manualnDCG 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
| ID | Skenario | Yang diperiksa |
|---|---|---|
| U01 | PDF teks biasa | Ekstraksi, empat aspek, baseline absolut, normalisasi/ranking SAW batch, dan alasan |
| U02 | CV sama dalam format scan | Perubahan teks/bukti/skor terhadap versi teks |
| U03 | PDF hibrida teks dan gambar | Apakah bagian pengalaman pada halaman gambar terlewat |
| U04 | CV digabung dokumen identitas sintetis | Halaman yang dipilih, konteks yang terkirim, pengaruh pada hasil |
| U05 | CV panjang melintasi chunk, halaman, dan token budget DW | Coverage per halaman, penggabungan fakta, bukti yang terlewat, status partial, dan alasan limit |
| U06 | File kosong, rusak, hash berubah, atau belum layak scan | Penolakan/tindak lanjut; tidak menghasilkan skor sukses palsu |
| U07 | JSON rusak, skor di luar rentang, atau aspek hilang dari provider uji | Validasi Go gagal; kesalahan tercatat per item |
| U08 | Provider timeout dan gangguan sementara | Retry terbatas, status akhir, dan isolasi item lain |
| U09 | Generate ditekan kembali dan cache tersedia | Batch tidak ganda, artifact sesuai input, status akurat |
| U10 | Nilai SAW sama atau tampilan dua desimal sama | Ranking memakai nilai sebelum pembulatan; tie-break aspek/durasi/ID hanya untuk nilai benar-benar sama |
| U11 | Recruiter di luar scope dan kandidat meminta hasil internal | Akses ditolak tanpa membocorkan CV/catatan |
| U12 | Teks CV berisi instruksi manipulasi sintetis | CV diperlakukan sebagai data; perilaku model dicatat |
| U13 | Nama/atribut pribadi diganti pada CV sintetis identik | Selisih skor/ranking, tanpa menyimpulkan fairness menyeluruh |
| U14 | Recruiter meminta tindak lanjut | Catatan wajib, reviewer/waktu/audit tersimpan |
| U15 | Scope organisasi berbeda atau identitas service non-DW | Query, CV, cache, progres SSE, dan hasil tidak bocor antar-scope/pemilik |
| U16 | Worker mati setelah commit sebelum ACK; event outbox dipublikasikan ulang | Pending recovery, lease, deduplication, artifact tidak ganda, dan progres benar |
| U17 | Retry habis, dead-letter, lalu replay manual | Tidak ada sukses palsu; izin, catatan, dan audit replay tersimpan |
| U18 | Rubric, checksum model, prompt, atau ekstraktor berubah | Cache lama tidak dipakai sebagai versi baru; run lama tetap bisa diaudit |
| U19 | Backup/restore pada lingkungan uji DW | Metadata, dokumen privat, akses, dan konsistensi hasil dapat dipulihkan |
| U20 | Fixture dua kandidat pada contoh blueprint | Maksimum 90/90/80/80; nilai A=92,99, B=96,67; urutan B lalu A; pembulatan hanya tampilan |
| U21 | Kolom nol sah, aspek hilang, atau seluruh item gagal | Nol sah menghasilkan rasio nol/peringatan; data hilang bukan nol; himpunan valid kosong tidak menghasilkan ranking |
| U22 | Item selesai tidak bersamaan; kandidat baru atau skor direvisi | Ranking final menunggu semua terminal; snapshot/versi baru dan cache ranking baru, tanpa menimpa hasil lama |
| U23 | Cache aspek valid dipakai pada batch berbeda | Aspek dapat digunakan ulang, tetapi maksimum/SAW dihitung ulang; snapshot dan scope tetap diaudit |
| U24 | Bobot negatif, jumlah bukan 100%, atau konfigurasi hasil bercampur | Tolak 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
| Bagian | Bahan yang perlu disiapkan |
|---|---|
| Bab I | Wawancara masalah, rumusan pertanyaan, tujuan, manfaat, dan batas scope |
| Bab II | LLM pralatih, ekstraksi/OCR, SAW/normalisasi maksimum benefit, evaluasi ranking, dan penelitian terkait |
| Bab III | Kebutuhan, diagram AI + SAW, rubric/bobot, snapshot batch, dataset/izin, baseline pembanding, dan definisi metrik |
| Bab IV | Implementasi API/worker Go dan integrasi AI yang diuji, hasil metrik, bukti/alasan, kegagalan, dan pembahasan |
| Bab V | Jawaban 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
- Posisi, rubric, izin data, penilai, dan protokol disepakati.
- Prototipe API/worker Go tersedia; integrasi AI, validasi skor, scope, isolasi DW, recovery, dan audit lulus pengujian awal.
- Pilot prototipe Go selesai, termasuk kasus scan, hybrid, chunking, penggabungan fakta, dan status partial.
- Dataset evaluasi terpisah dari pilot; konfigurasi dibekukan.
- Metadata dan kegagalan dapat direkam tanpa mengekspos identitas kandidat.
- Eksperimen dijalankan pada lingkungan E-Recruitment terisolasi.
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.