Pelacak lamaran kerja untuk pencari kerja Indonesia. Gratis, tanpa iklan, self-hosted, dibangun untuk kenyataan mengelola 30 sampai 80 lamaran aktif sekaligus.

Timeline: Juli – Agustus 2026
Lacak Lamaran (Job Tracker) adalah pelacak lamaran kerja yang dibangun untuk pencari kerja Indonesia yang mengelola puluhan lamaran sekaligus. Pencari kerja yang aktif bisa punya 30 sampai 80 lamaran aktif, masing-masing dengan tahap, jadwal, kontak, dan versi CV-nya sendiri. Spreadsheet bisa menampung sebagian dari itu, tapi tidak bisa mengingatkan, tidak menyimpan dokumen, dan tidak menghitung apa pun.
Sudah live di production di trackinglamaran.site. Login Google, penyimpanan MySQL/MariaDB, unggah dokumen lewat Cloudflare R2, dan pengiriman email lewat Resend semuanya sudah rilis dan dipakai aktif, bukan demo dengan data contoh.

Mencari kerja adalah proses panjang dengan banyak cabang, dan tanpa sistem, hal-hal spesifik ini rusak dengan cara yang bisa ditebak:
Spreadsheet menyelesaikan sebagian dari ini. Ia tidak mengingatkan, tidak menyimpan dokumen, dan tidak menghitung apa pun dengan sendirinya.
Metrik utama: jumlah pengguna yang menandai satu lamaran sebagai "Diterima", bukan jumlah pendaftar, bukan jumlah lamaran yang dicatat. Kalau tidak ada yang diterima kerja, ini cuma buku catatan yang tampilannya bagus.

| Lapisan | Pilihan |
|---|---|
| Frontend | TypeScript, React 19, Vite, Tailwind CSS |
| Backend | Node.js + Express 5, satu proses yang melayani /api/* sekaligus frontend hasil build |
| Database | MySQL atau MariaDB lewat Drizzle ORM |
| Auth | Google Identity Services menuju cookie sesi yang ditandatangani |
| File | Cloudflare R2 lewat presigned URL |
| Resend |
Total enam dependency runtime di server: express, cookie-parser, drizzle-orm, mysql2, aws4fetch, zod. Tanpa framework selain React, tanpa Docker, tanpa queue.
Development berjalan di atas MySQL 8; instance yang di-deploy berjalan di MariaDB 11.8, karena itulah yang disediakan shared hosting, dan skema beserta semua migrasinya berjalan tanpa perubahan di keduanya. Server menjalankan TypeScript lewat type stripping bawaan Node, bukan lewat tahap build, sehingga syarat minimalnya adalah Node 22.6+.
Alih-alih dinding penuh angka, tampilan statistiknya dibangun di sekitar satu pertanyaan yang benar-benar ditanyakan pencari kerja: di bagian mana dari funnel ini saya kehilangan peluang?

Funnel ini dipecah tahap demi tahap (melamar, screening, interview HR, interview user, tes teknis, penawaran, diterima), melacak rata-rata waktu respons dari melamar sampai balasan pertama, dan menampilkan perusahaan serta sumber lowongan mana yang benar-benar membalas: data persis yang tidak pernah dihitung sendiri oleh spreadsheet.
Isi aplikasi ini adalah daftar perusahaan yang sedang dilamar seseorang, seringkali sambil masih bekerja di tempat lain. Itu membuatnya secara default menjadi data pribadi yang sensitif: