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.

01

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.

02

CV tidak pernah keluar dari server Anda

Analisis CV berjalan di backend sendiri. Hanya kata kunci pencarian yang dikirim ke layanan luar.

03

Saran yang bisa langsung dikerjakan

Pengguna mendapat daftar perbaikan konkret, termasuk kata kunci yang diminta lowongan incaran tetapi belum ada di CV.

04

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

  1. Satu pencarian lintas sumber

    Lowongan diambil dari hasil pencarian web umum melalui API Serper dan langsung dari JobStreet, lalu digabung ke dalam satu skema.

  2. Deduplikasi dan penyaringan kedaluwarsa

    Lowongan yang sama dari dua sumber dilebur menjadi satu entri, dan lowongan kedaluwarsa dibuang sebelum hasil dikembalikan.

  3. 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.

  4. 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.

  5. 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.

  6. 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
Diskusikan kebutuhan serupa

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.js menangani routing dan mengatur pemanggilan sumber.
  • jobPool.js adalah logika murni: deduplikasi, penyaringan kedaluwarsa, catatan cakupan, dan paginasi.
  • skillMatcher.js menyediakan satu fungsi extractSkills() yang dipakai bersama oleh normalisasi lowongan dan analisis CV, sehingga kedua sisi diukur dengan kamus yang sama.
  • extractText.js mengubah unggahan PDF, DOCX, dan TXT menjadi teks polos.
  • cvAnalyzer.js mendeteksi 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.

Butuh yang serupa?

Ceritakan apa yang mirip dengan Job Wire dan apa yang berbeda di kasus Anda. Anda akan mendapat balasan langsung tentang cakupan dan platform.

Ajukan Proyek