Product
What you do
Hunt loop
Open Discover, Mission, Sweden, or Xplore. Paste a job link or description in Quick Target. Evaluate fit, prepare notes, generate an apply CV, mark Applied. Reopen a saved row to load fit and prep from the local database without another model call.
Shipped · Preferences
Pack file checks
Shows whether your pack files on disk are ready. Evaluate and Next 10 read those files. They are not built into the app. Missing files make Evaluate use placeholder text.
Example Pack status on Preferences. Not a live machine.
Shipped · Pipeline
Pipeline
Tracks where each role stands before and after you apply. Applied rows stay visible even when Mission lists get long.
Example Fixed prep stages and outcome labels. No live counts.
Durable state
Local database
Stores opportunities, prep, events, and history on this machine. Secrets stay in the OS keyring. No cloud sync. Local backup optional.
- Find roles
- Evaluate and prepare
- Pack files on disk
- Generate apply CV (kanithanj.cv)
- Track outcome
Job hunting spreads across tabs and chat logs. This app keeps a local record. Chat helps; screens do the work.
Tech and architecture
- Tauri
- Rust
- React
- TypeScript
- SQLite
Architecture
- Tauri desktop shell (Rust + React): UI calls Rust for secrets and file work
- Local database (SQLite, WAL mode) holds opportunities, prep, events, and pipeline dates
- Master CV on the public portfolio site is never changed by apply — job edits merge when you generate a PDF
Key components
- Hunt screens: Discover rail and Quick Target; Mission career boards; Sweden JobTech; Xplore live X plus a guarded cycle
- Preferences: pack health checks, CV generate CLI install, rank packs. Health is local file inspection
- Pipeline: dedicated opportunity query, prep status, and separate post-apply outcomes
- CV generate CLI (kanithanj.cv): status, list, generate, sync. Writes PDFs. Never mutates the master CV on the public portfolio site
Data flow
- Opportunity in
- Ledger row
- CV packet from packs or textarea
- Evaluate + Prepare
- Human review
- Export pack / generate apply CV
- Pipeline outcome
Promote to the public site is a separate sync of the master CV. Apply PDFs come from packs; the portfolio PDF uses the master CV only.
Tradeoffs
- Human approval before promote slows automation and prevents silent CV corruption. That friction is intentional
- Tauri desktop adds Rust surface area versus a pure web app. The payoff is OS keychain boundaries and a real offline ledger
- Hunt screens own the work. Quest chat exists but is not the primary UI
Testing and ops
- CI quality gates ship with the 1.0.0 cut
- Pack health unit tests cover missing and placeholder identity files
- Pipeline verify runner plus merge-status tests keep applied rows from being dropped
- Per-job CV merge behavior is covered in this portfolio repo so PDF featured projects stay deterministic
- Ops stay boring: local SQLite, packs under ~/.local/share/collab-finder, CLI sync for the master CV
More shipped walkthroughs in this set, or back to the landscape.