AI & Automation · 2026
CareerPack
Starter pack karir dengan CV builder ATS-friendly dan simulasi wawancara berbasis AI.
- Next.js 15 (App Router)
- React 19
- TypeScript (strict)
- Convex
- @convex-dev/auth
- Tailwind CSS
- Radix UI
- recharts
- jsPDF
- html2canvas-pro
- pdfjs-dist
- react-easy-crop
- react-day-picker
- date-fns
- cmdk
- geoip-lite
- sonner
- next-themes
- Vitest
- convex-test
- pnpm
- Docker

Brief
"Every career tool I wanted to hand an Indonesian friend was in English, priced in dollars, and shaped around applying to a US company. A few had an Indonesian UI bolted on and you could feel where the bolt was. They still tell you to take the photo off your CV — normal advice in the US, the opposite of the convention here. None of them have heard of CPNS. None of them know which papers have to be in your hand before you can legally start work in Japan." And the design response, in the same voice: "Translating the buttons doesn't fix that, because the assumptions live in the data, not the copy. So I built it the other way round: model one hiring market properly, and treat other languages as a rendering problem."
Constraints
- Indonesia-first by design, not by backlog: "I'd rather be exactly right for one market than mediocre everywhere."
- The multi-language layer is deliberately the cheap version — one tap, 12 languages, driven by the Google Translate cookie, not a hand-written message catalog. Owner's words: "It's the cheap version and I'll say so." The ~90KB Google script only loads if someone asks for it.
- Free with no business model behind it: "No pricing page, no card field, no billing code in the repo. I never built a paywall, so there isn't one sitting there waiting to be switched on."
- "It will not get you a job." The terms say so in Indonesian ("Tidak ada jaminan bahwa Anda akan mendapat pekerjaan") and the ATS score card carries "Pakai sebagai panduan, bukan jaminan."
- The salary and cost-of-living figures are "a static reference dataset I compiled, not a live market feed."
- AI runs on gpt-4o-mini through an OpenRouter key the owner pays for, capped at 10 requests/minute and 100/day per person under a shared 300/hour ceiling (guest sessions shed first, at 150). Bring-your-own-key routes to your key but the caps still apply — "they're app-level buckets, not a billing guard."
- Licence is PolyForm Noncommercial 1.0.0 — source-available, not OSI open source. Owner's words: "I'd rather be precise than collect the badge."
- One person, no team: "nobody to escalate your bug to but me."
- Demo accounts are cascade-deleted by a nightly cron once they are 7 days old; converting to an email account keeps everything.
- The ATS scorer is deliberately deterministic TypeScript with no AI in it, and shows its five-part breakdown (keyword coverage, hard skills, experience fit, section completeness, parseability).