Kembali
Cara Kami Membangun Ulang Penyaringan Resume dengan Workflow AI-Native
June 4, 2026
12 menit baca
Bagikan artikel ini

Cara Kami Membangun Ulang Penyaringan Resume dengan Workflow AI-Native

Kami menjalankan 125 agen AI secara paralel untuk menyaring 115 kandidat berdasarkan rubrik yang konsisten, menghasilkan daftar pendek yang terperingkat, beralasan, dan sepenuhnya dapat diaudit hanya dengan $65.

Post ini membahas sebuah eksperimen kecil: menghubungkan database rekrutmen Notion kami ke Claude Code dan menjalankan sebuah dynamic workflow yang mengirimkan 100+ agen AI secara paralel untuk membaca resume, menilainya berdasarkan rubrik yang konsisten, dan saling memeriksa penilaian satu sama lain — menghasilkan daftar pendek berperingkat yang bisa langsung kami tindak lanjuti.

Keseluruhan proses ini menghabiskan biaya $65 dan berjalan sekitar 13 menit untuk 115 kandidat. Namun yang lebih menarik dari biayanya adalah pertanyaan-pertanyaan metodologis yang muncul — kapan menggunakan sekumpulan agen dibanding satu agen saja, bagaimana mencegah inflasi skor AI, dan apa artinya mengkodekan "keunggulan" ke dalam sesuatu yang bisa benar-benar dieksekusi oleh mesin.

1. Apa Itu Dynamic Workflow

Mari kita mulai dari konsepnya, karena ini adalah fondasi dari semua hal lainnya.

Sebagian besar penggunaan AI saat ini mengikuti pola prompt-and-reply: kirim pesan, dapatkan jawaban, ulangi. Ini bekerja dengan baik untuk tugas sekali jalan, tetapi menjadi merepotkan ketika Anda perlu melakukan hal yang sama pada 115 objek — Anda harus copy-paste 115 kali, atau meminta satu percakapan untuk memproses semuanya secara berurutan, yang menjadi semakin lambat dan berisik seiring berjalannya waktu.

Dynamic workflow adalah model yang berbeda: kode yang mengorkestrasi sekumpulan agen AI. Ciri-ciri khasnya adalah:

  • Alur kontrol deterministik + penilaian AI, dipisahkan secara jelas. Loop, dispatch, agregasi, dan penegakan kuota ditangani oleh kode (reproducible, dapat diaudit); penilaian subjektif (apakah resume ini cukup kuat?) didelegasikan ke agen AI.
  • Paralelisme fan-out. Satu panggilan parallel(...) dapat menjalankan puluhan atau ratusan agen independen secara bersamaan, masing-masing bekerja pada bagiannya sendiri tanpa mencemari yang lain.
  • Pipeline multi-tahap. Output dari satu tahap menjadi input tahap berikutnya. Kode menangani filtering, ranking, dan deduplikasi antar tahap.
  • Output terstruktur. Setiap agen mengembalikan JSON yang sesuai dengan skema — bukan teks chat bebas — sehingga kode di tahap berikutnya bisa langsung menggunakannya.

Sebagai analogi: satu percakapan itu seperti berkonsultasi dengan satu ahli selama satu sore. Dynamic workflow itu seperti membentuk panel review beranggotakan 125 orang, memberikan rubrik dan satu file kandidat kepada masing-masing anggota, menjalankan semua review secara paralel, saling memeriksa hasil teratas, dan mengagregasikannya menjadi daftar berperingkat — dengan logika penyusunan, dispatch, dan agregasi tertanam dalam skrip.

Penyaringan resume sangat cocok dengan pola ini: volume tinggi, kriteria yang seragam, penilaian subjektif, kebutuhan akan keadilan.

Untuk pengantar teknis yang lebih mendalam: A harness for every task: dynamic workflows in Claude Code

2. Workflow Rekrutmen: Tujuan dan Desain

Masalahnya

Kami memiliki masalah nyata: lebih dari seratus kandidat berada dalam status "initial review" di database rekrutmen Notion kami, tanpa cara realistis untuk memprosesnya secara manual tanpa mengalami pergeseran standar — standar yang Anda terapkan pada resume ke-80 hampir tidak pernah sama dengan standar pada resume ke-5.

Saya ingin menguji satu ide spesifik: bisakah kita mengabstraksikan "seperti apa yang hebat di era agen AI" ke dalam rubrik yang bisa dieksekusi mesin dan dapat dibaca manusia, lalu menjalankan seluruh 115 kandidat melalui kalibrasi yang sama?

Tujuannya secara eksplisit bukan agar AI membuat keputusan perekrutan. Tujuannya adalah:

  1. Meringkas 115 kandidat menjadi daftar pendek berperingkat dan berdasar alasan sehingga perhatian manusia difokuskan pada orang-orang yang memang pantas mendapatkannya.
  2. Membuat kriteria transparan dan dapat diiterasi — jika outputnya salah, Anda mengubah file Markdown, bukan kode atau insting.

Tiga keputusan desain utama

Keputusan 1: Kriteria dan kode benar-benar terpisah

Kriteria evaluasi disimpan dalam file Markdown yang berdiri sendiri (criteria/), bukan tertanam dalam kode workflow. Siapa pun — termasuk rekan tim yang tidak teknis — dapat mengubah perilaku penyaringan dengan mengedit file-file ini:

criteria/
├── 00-philosophy.md          Overall philosophy: what we're hiring for + the "raise the bar" rule
├── 01-pedigree.md            Strong academic / early foundation    (weight 20%)
├── 02-ai-agent-fluency.md    AI-native capability                  (weight 35%)
├── 03-grit-problem-solving.md  Problem-solving & overcoming difficulty  (weight 30%)
├── 04-talent-lens.md         Top-talent signal                     (weight 15%)
└── scoring.md                Scoring formula + grade bands + 5% quota rule

Keempat dimensi ini adalah "standar keunggulan untuk era agen AI, v0.1" kami. Pemikiran di balik masing-masing dimensi:

  • Kemampuan AI-native memiliki bobot tertinggi (35%). Pada 2026, apakah seseorang benar-benar menggunakan alat agentic seperti Claude Code sebagai bagian inti dari cara kerjanya adalah pembeda produktivitas yang besar. Kami secara khusus menghukum keyword-stuffing — mencantumkan "Claude Code" tanpa bukti proyek yang dapat diverifikasi dianggap sebagai sinyal yang lemah.
  • Bukti nyata kemampuan problem-solving (30%). Kami mencari "scar tissue": hal-hal yang dibangun sendiri dari awal, narasi mengatasi rintangan nyata — bukan reproduksi setingkat tutorial.
  • Fondasi yang kuat (20%). Latar belakang akademis berfungsi sebagai proksi potensi mentah — ini sebuah sinyal, bukan syarat wajib. Gelar dari universitas selektif yang dipadukan dengan output yang mediocre akan dihukum; seorang builder otodidak tanpa kredensial bergengsi tetapi dengan karya nyata yang sudah dirilis akan mendapat nilai tambah.
  • Sinyal talenta top (15%). Dimensi ini secara sengaja bersifat subjektif. Prompt-nya bertanya: apakah tim seperti Anthropic atau seorang founder seperti Musk akan langsung ingin menghubungi orang ini? Ini menangkap agency, taste, dan velocity yang tidak tertangkap oleh tiga dimensi lainnya.

Keputusan 2: Mengkodekan "raise the bar" sebagai batasan keras, bukan slogan

scoring.md memuat aturan yang tegas: kandidat yang mencapai tier teratas (S) harus ≤ 5% dari seluruh pool. Setelah semua penilaian selesai, kode menerapkan batas global: bahkan jika banyak kandidat secara teknis mendapat skor di rentang S, hanya 5% teratas yang diizinkan lolos. Ini secara langsung melawan mode kegagalan yang sudah diketahui — penilaian AI secara alami cenderung longgar. Tanpa batasan yang keras, ia akan menilai separuh pool sebagai "excellent."

Keputusan 3: Menambahkan review adversarial untuk menangkap skor yang terinflasi

Penilaian saja tidak cukup. Satu agen penilai bisa saja terbawa oleh kata kunci yang terdengar mengesankan — "diterbitkan di jurnal top," "membangun framework sendiri." Jadi kandidat dengan peringkat teratas melewati pass kedua: sebuah panel agen "devil's advocate" yang tugas eksplisitnya adalah membantah "orang ini pantas mendapat rating tier teratas" dan menurunkan skor di mana pun bukti tidak sepenuhnya mendukungnya.

Workflownya

Setup 📋 Database rekrutmen Notion — tarik Notion CLI → satu file data terstruktur per kandidat

AI Fase 1: Penilaian (115 agen secara paralel)

  • Membaca 6 file MD kriteria + file data kandidat tersebut
  • Secara aktif mengunjungi link GitHub / portfolio untuk memverifikasi bukti
  • Menghasilkan JSON terstruktur: skor 4-dimensi + reasoning + highlights + risk flags

Code Sintesis Deterministik

  • Menghitung total tertimbang
  • Pengurutan peringkat global, menghitung slot kuota 5%
  • Memilih kandidat teratas untuk antrean review adversarial

AI Fase 2: Review Adversarial (Agen secara paralel)

  • Persona "devil's advocate" mereview setiap kandidat teratas
  • Membantah penetapan tier teratas
  • Menurunkan skor di mana bukti tidak cukup

Code Keputusan Deterministik

  • Mengurutkan ulang menggunakan skor yang telah dikalibrasi
  • Menegakkan batas keras 5%
  • Menetapkan grade band final: S / A / B / C / D

Output: Laporan Berperingkat Markdown terstruktur dengan skor per kandidat, reasoning, dan verdict review adversarial

Tahap biru (penilaian / review) adalah AI. Tahap abu-abu (sintesis / verdict) adalah kode. Pemisahan ini disengaja: apa pun yang bersifat matematis — pembobotan, ranking, penegakan kuota — diserahkan ke kode agar reproducible; apa pun yang membutuhkan penilaian — apakah orang ini cukup kuat? — diserahkan ke AI.

3. Apa yang Kami Lihat: Hasil dan Insight

Semua kandidat di bawah ini telah dianonimkan. Kami menggambarkan jenis pekerjaannya, bukan nama atau detail identitasnya.

Apa yang kami jalankan

MetrikNilai
Kandidat115 (peran Agent Researcher / Agent Engineer / Growth)
Total agen125 (115 penilaian + 10 review adversarial)
Waktu eksekusi~13 menit (batas konkurensi ~14, selesai dalam 8 gelombang)

Distribusi

GradeJumlah
S — Exceptional0
A — Strong0
B — Qualified6
C — Average26
D — Not recommended83

Kuota 5% (5 slot) sama sekali tidak terpakai — bukan kuota yang menghalangi siapa pun; melainkan ambang batas skor absolut. Tidak ada yang lolos ambang band-A dengan sendirinya. Lebih lanjut mengenai alasan mengapa ini justru sinyal yang berguna, ada di bawah.

Seperti apa bagian atas peringkat (dianonimkan)

Tanpa terkecuali, kandidat dengan peringkat tertinggi adalah orang-orang yang benar-benar membangun agen — bukan orang yang hanya mendengar tentang AI:

  • #1: Seorang mahasiswa pascasarjana yang membangun workbench multi-agen bergaya Claude-Code dari awal — termasuk agent main loop, tool call parsing, kompresi konteks, spawning sub-agen, dan safety gates. Semua kode dapat diverifikasi, bukan sekadar deskripsi.
  • #2: Mahasiswa pascasarjana lainnya yang telah mendeploy sistem multi-agen nyata yang dapat diakses publik (aplikasi domain vertikal), dengan output akademis di atasnya.
  • Lebih ke bawah: seseorang yang menulis agent orchestration engine di Go dari awal; seseorang yang merilis coding agent ringan dengan mempelajari arsitektur Claude Code; seseorang yang secara mandiri membangun game dengan LLM lokal dalam tujuh hari menggunakan tooling AI di sepanjang prosesnya.

Kesamaan mereka: sinyal kuat mereka hampir tidak pernah muncul di badan resume — sinyal itu ada di repo GitHub dan portfolio. Inilah tepatnya alasan mengapa setiap agen penilai diinstruksikan untuk secara aktif mengunjungi link dan memverifikasi bukti ketimbang hanya membaca teks resume.

Tiga insight

Insight 1: Review adversarial benar-benar menangkap skor yang terinflasi

Contoh paling jelas adalah dua kandidat teratas. Setelah fase penilaian, keduanya memiliki total tertimbang sekitar 82 poin — cukup untuk masuk ke band A dan hampir menyentuh ambang S. Setelah review adversarial, keduanya turun ke sekitar 75 poin, dengan reasoning yang sangat spesifik:

"Membangun workbench multi-agen yang dapat diverifikasi — kemampuan AI-native adalah sinyal kuat. Tetapi proyek ini baru berumur ~3 minggu, satu kontributor, 0 star, tidak ada test. Secara konseptual ini adalah reimplementasi, bukan problem-solving orisinal. Hampir tidak ada bukti pendukung selain baris gelar: kandidat solid dengan potensi tinggi, tapi bukan exceptional."

"Seorang builder AI-native yang genuine dan dapat diverifikasi. Tetapi publikasi jurnal top yang diklaim hanya muncul di catatan recruiter, tanpa sumber yang dapat diverifikasi secara independen. Backend sistem inti bersifat private; kontribusi individual tidak dapat dikonfirmasi. Menggunakan kredensial akademis yang belum terverifikasi untuk meraih tier teratas adalah inflasi skor berbasis kata kunci."

Inilah tepatnya yang dimaksudkan oleh desain ini: desain ini tidak menolak kandidat-kandidat tersebut — melainkan menarik kembali skor mereka ke apa yang benar-benar dapat didukung oleh bukti. Satu agen penilai bisa terbawa arus; panel agen terpisah yang tugasnya membantah secara konsisten meredam hal itu.

Insight 2: S:0 / A:0 bukan bug — ini cermin

Insting pertama adalah bertanya apakah ambang batasnya salah ditetapkan. Tetapi jika melihat pool secara jujur:

  • Sebagian besar kandidat memiliki resume yang sangat minim — dimensi kunci (pengalaman AI, karya yang dapat diverifikasi) sama sekali tidak ada.
  • Banyak pelamar untuk peran Agent Engineer memiliki nol bukti penggunaan alat agentic dan tidak ada link GitHub.
  • Pool ini juga berisi email bisnis dari recruiter dan notifikasi sistem LinkedIn — ini dengan benar diidentifikasi sebagai tidak relevan dan diberi skor 0, yang secara tidak sengaja mengungkapkan bahwa database rekrutmen kami perlu dibersihkan.

Singkatnya, rubrik yang ketat secara bersih memisahkan sinyal dari noise. Para builder sejati (6 teratas) dan "generalist berprestasi" (tier menengah) berakhir di posisi yang jelas berbeda. Itulah intinya — lebih baik melewatkan beberapa daripada menginflasi semua orang.

Ini juga memunculkan pertanyaan terbuka yang layak didiskusikan: apakah ambang batas band-A saat ini (78 poin) terlalu keras untuk kandidat yang masih mahasiswa dengan catatan GitHub yang kuat tetapi belum memiliki jejak profesional? Menariknya, para agen review adversarial sendiri menggambarkan dua kandidat teratas sebagai "kandidat berpotensi tinggi" — tetapi skor tertimbangnya tetap menahan mereka di band B. Apakah harus melonggarkan ambang batas itu untuk kandidat early-career berpotensi tinggi adalah keputusan yang sebaiknya diambil setelah kita melihat kualitas interview aktual dari grup B. Kabar baiknya: perubahan itu hanya satu angka di satu file Markdown. Tidak perlu kode.

Insight 3: "Kriteria sebagai kode" membuat ketidaksepakatan menjadi produktif

Percakapan tentang standar rekrutmen biasanya tetap kabur — "kami ingin orang yang punya drive," "seseorang yang bisa memecahkan masalah sendiri." Karena rubrik ini dituliskan dengan bobot dan contoh acuan, percakapan langsung menjadi konkret: "Apakah kemampuan AI seharusnya 35% atau 40%?" "Seberapa besar sebenarnya keuntungan seorang builder luar biasa tanpa gelar bergengsi?" "Apakah kuotanya seharusnya 5% atau 8%?" — setiap ketidaksepakatan berhubungan dengan baris spesifik dalam file Markdown yang bisa diubah, diberi versi, dan didebat. Standar ini menjadi aset yang Anda kelola, bukan konsensus yang Anda ulangi di setiap rapat.

4. Biaya dan ROI

Rincian biaya yang akurat

Kami menggunakan Claude Opus 4.8 (tier tertinggi). Rincian akurat per kategori token:

KategoriTokenTarif / MSubtotal
Input (cache miss)2.306.691$5,00$11,53
Cache write6.536.462$6,25$40,85
Cache read12.806.404$0,50$6,40
Output248.312$25,00$6,21
Total~$65

Itu setara dengan sekitar $0,57 per kandidat.

Temuan yang counterintuitive: cache write adalah item terbesar

Asumsi alaminya adalah karena 115 agen semuanya membaca 6 file kriteria yang sama, prompt caching seharusnya sangat membantu. Ternyata tidak, tidak seperti yang diharapkan.

Prompt caching bekerja berdasarkan exact prefix match, dan setiap sesi agen bersifat independen. 125 agen berarti 125 sesi independen — masing-masing dengan deskripsi tugas yang berbeda (data kandidat yang berbeda) — sehingga cache yang ditulis oleh agen A tidak dapat digunakan oleh agen B. Caching memang membantu dalam eksekusi multi-turn milik setiap agen sendiri (membaca kriteria → mengunjungi GitHub → mengunjungi portfolio → output, membaca ulang konten sebelumnya di setiap ronde).

Ini mengungkapkan sebuah tradeoff arsitektural: paralelisme fan-out melipatgandakan biaya cache write (setiap agen membangun cache-nya sendiri), tetapi memberi Anda penilaian yang terisolasi dan tidak saling mencemari serta menghilangkan akumulasi konteks kuadratik dari pemrosesan sekuensial. Untuk tugas yang sensitif terhadap kualitas penilaian, tradeoff itu sepadan.

Bagaimana memikirkan ROI

Perbandingan langsung dengan review manual: seorang hiring manager membaca satu resume dengan teliti, memeriksa GitHub, dan menulis catatan — secara konservatif 5 hingga 10 menit per kandidat. Untuk 115 kandidat, itu setara dengan 10 hingga 19 jam kerja fokus, dengan standar yang bergeser sepanjang prosesnya.

Workflow ini memberikan:

ApaSebaik apa
Biaya$0,57 per kandidat, output berperingkat lengkap dalam ~13 menit
KedalamanSkor empat dimensi, reasoning tertulis, risk flags, dan verdict review adversarial per kandidat
KonsistensiKandidat #1 dan kandidat #115 dievaluasi dengan rubrik yang sama persis
AuditabilitasRantai reasoning lengkap untuk setiap penempatan

Namun ROI yang lebih penting bersifat perhatian: workflow ini mengalihkan fokus manusia dari 83 kandidat yang jelas tidak sesuai ke 6 builder sejati di posisi teratas. Itulah hal bernilai tertinggi yang bisa dilakukan oleh penyaringan awal.

Apakah bisa lebih murah?

Ya, tapi mungkin tidak perlu. Jika ini menjadi operasi yang berfrekuensi tinggi dan bervolume besar (ratusan kandidat per hari), optimasi praktisnya adalah:

  • Gunakan Sonnet untuk fase penilaian, Opus hanya untuk review adversarial — kemungkinan mengurangi biaya 70 hingga 80% dengan kehilangan kualitas yang minimal.
  • Atau gunakan model yang lebih murah untuk pass kasar pertama, lalu Opus untuk evaluasi detail tier teratas.

Tetapi rekrutmen bersifat berfrekuensi rendah, bertaruhan tinggi, dan sulit dibatalkan. Dengan $65 untuk memproses seluruh pipeline dengan auditabilitas penuh dan kriteria yang dapat diiterasi, kesimpulannya jelas: gunakan model terbaik. Jangan menukar kualitas penilaian demi penghematan biaya yang marjinal.

Gambaran besarnya

Yang sesungguhnya menarik dari eksperimen ini bukanlah "AI bisa menyaring resume" — itu bukan ide baru. Melainkan bahwa model dynamic workflow — kode yang mengorkestrasi sekumpulan agen AI — untuk pertama kalinya membuat kategori pekerjaan tertentu dapat distrukturkan, direproduksi, dan diiterasi.

Rekrutmen hanyalah titik awal. Pola yang sama — kriteria sebagai file yang dapat dibaca + evaluasi paralel fan-out + review adversarial + agregasi deterministik — dapat diterapkan ke domain apa pun di mana Anda perlu membuat penilaian subjektif yang konsisten dan bervolume tinggi: moderasi konten, code review, triase feedback pengguna, analisis kompetitif, due diligence.

Rubrik ini adalah v0.1. Belum sempurna. Tetapi kini menjadi aset yang diberi versi, dapat didebat, dan dapat diperbaiki — bukan kesepakatan implisit yang hanya hidup di kepala seseorang. Peralihan itu, lebih dari hasil individual apa pun, adalah inti dari eksperimen ini.

Diterbitkan pada June 4, 2026
Artikel Lainnya