Web · Kode tersedia
Job Wire
Agregator lowongan kerja untuk pasar Indonesia yang memeringkat lowongan terhadap CV Anda tanpa mengirim CV ke mana pun.
Nilai jual
Yang membuatnya menonjol.
Satu pencarian untuk banyak situs lowongan
Hasil dari beberapa sumber digabung dan lowongan ganda disatukan, sehingga pencari kerja tidak membuka banyak situs satu per satu.
CV tidak pernah keluar dari server Anda
Analisis CV berjalan di backend sendiri. Hanya kata kunci pencarian yang dikirim ke layanan luar.
Saran yang bisa langsung dikerjakan
Pengguna mendapat daftar perbaikan konkret, termasuk kata kunci yang diminta lowongan incaran tetapi belum ada di CV.
Tanpa biaya AI per permintaan
Pencocokan berbasis aturan, sehingga hasilnya bisa dijelaskan dan tidak ada tagihan model untuk setiap analisis.
Masalahnya
Pencari kerja di Indonesia memeriksa beberapa situs lowongan satu per satu, melihat lowongan yang sama berulang kali, dan tidak punya cara cepat untuk mengetahui lowongan mana yang cocok dengan CV mereka. Alat yang menilai CV biasanya mengharuskan CV diunggah ke pihak ketiga.
Untuk siapa
Pencari kerja di Indonesia yang menginginkan satu pencarian lintas situs dan masukan konkret untuk CV mereka, serta developer yang menginginkan titik awal yang bisa di-host sendiri.
Fitur utama
Satu pencarian lintas sumber
Lowongan diambil dari hasil pencarian web umum melalui API Serper dan langsung dari JobStreet, lalu digabung ke dalam satu skema.
Deduplikasi dan penyaringan kedaluwarsa
Lowongan yang sama dari dua sumber dilebur menjadi satu entri, dan lowongan kedaluwarsa dibuang sebelum hasil dikembalikan.
Pengurai CV dari PDF, DOCX, atau TXT
Backend mengekstrak teks polos, lalu mendeteksi keahlian dan bagian standar CV, termasuk padanan Bahasa Indonesia untuk nama keahlian yang umum.
Skor kecocokan per lowongan
Setiap lowongan dinilai dari porsi keahlian terdeteksinya yang juga ada di CV. Lowongan tanpa keahlian terdeteksi menampilkan “skor belum tersedia”, bukan angka bawaan.
Saran perbaikan CV yang konkret
Bagian yang hilang, minimnya pencapaian terukur, kalimat pasif, dan kata kunci yang diminta lowongan incaran tetapi belum ada di CV.
Paginasi tanpa unggah ulang
Peringkat lengkap disimpan di sesi analisis berumur pendek, sehingga berpindah halaman atau filter tidak mengirim ulang file.
Pendekatan yang sama bisa diadaptasi untuk
- Portal karier kampus atau komunitas
- Alat pencocokan dokumen dengan persyaratan
- Agregator data dari banyak sumber dengan deduplikasi
Arsitektur
Job Wire terdiri dari dua bagian: aplikasi satu halaman Vue 3 dan Quasar, serta server Express yang mengerjakan semua hal terkait sumber eksternal dan teks CV.
Server disusun agar semua yang bisa diuji berupa modul biasa:
index.jsmenangani routing dan mengatur pemanggilan sumber.jobPool.jsadalah logika murni: deduplikasi, penyaringan kedaluwarsa, catatan cakupan, dan paginasi.skillMatcher.jsmenyediakan satu fungsiextractSkills()yang dipakai bersama oleh normalisasi lowongan dan analisis CV, sehingga kedua sisi diukur dengan kamus yang sama.extractText.jsmengubah unggahan PDF, DOCX, dan TXT menjadi teks polos.cvAnalyzer.jsmendeteksi bagian CV, menghitung skor kecocokan, dan menyusun saran.
Setiap sumber dinormalisasi ke skema lowongan yang sama sebelum masuk ke pool. Menambah sumber berarti menulis satu fungsi fetch dan mendaftarkannya. Frontend tidak perlu diubah.
Detail implementasi
Mengapa berbasis aturan. Pencocokannya adalah kamus keahlian dengan sinonim, bukan model bahasa. Ia berjalan lokal tanpa kunci API tambahan, keluarannya dapat dijelaskan baris demi baris, dan tidak ada biaya per permintaan. Penyusun sarannya satu fungsi, sehingga menggantinya dengan pemanggilan model di kemudian hari adalah perubahan yang terbatas.
Padanan Bahasa Indonesia. CV yang menulis “manajemen proyek” harus cocok dengan lowongan yang meminta “Project Management”. Kamus memetakan pasangan seperti itu agar CV dwibahasa dinilai dengan adil.
Skor yang mengakui ketidakpastian. Ketika teks lowongan terlalu sedikit untuk mendeteksi keahlian apa pun, skornya null dan antarmuka mengatakannya. Angka 50% karangan lebih buruk daripada tanpa angka.
Sesi analisis. POST /api/cv/analyze menyimpan peringkat lengkap di bawah sebuah id analisis dengan masa hidup 15 menit. Permintaan berikutnya untuk halaman atau filter lain memanggil GET /api/cv/recommendations dengan id tersebut.
Cache dengan cadangan. Redis bersifat opsional. Tanpa REDIS_URL, server beralih ke cache in-memory, sehingga penyiapan lokal cukup dua perintah.
Hasil yang relevan lebih dulu. API lowongan remote global hanya dipakai untuk melengkapi tampilan detail satu lowongan. Sumber itu tidak dicampur ke pencarian utama agar hasil tetap fokus pada Indonesia.
Privasi
Hanya kata kunci pencarian yang keluar dari mesin Anda. Isi CV yang diunggah diurai dan dicocokkan di backend yang Anda jalankan dan tidak pernah diteruskan ke pihak ketiga.
Yang bisa diverifikasi
- Logika backend untuk deduplikasi, penyaringan kedaluwarsa, dan paginasi dipisahkan di modul murni, dan server dilengkapi rangkaian pengujian Vitest.
- Teks CV hanya diproses di backend yang Anda jalankan sendiri. Hanya kata kunci pencarian yang dikirim ke API eksternal.
- Tetap berjalan tanpa kunci Serper dengan beralih ke JobStreet saja, dan memberi tahu pengguna bahwa cakupannya terbatas.

