Inspiration

Job hunting tools often ask candidates to upload their most sensitive documents to a cloud service, then generate polished claims that are hard to trace back to real experience. CareerOS Local takes the opposite approach: career data stays under the candidate's control, and every useful output starts from evidence they can inspect.

What it does

CareerOS Local is a privacy-first desktop workspace that connects the full job-search loop:

build a private career vault from source documents and verified facts; keep provenance attached to experience instead of inventing accomplishments; create and visually refine an ATS-friendly resume; compare job opportunities against a candidate's actual profile; move opportunities through a focused application pipeline; manage local model/runtime settings and explicit network job sources; export, restore, or erase the local vault.

The demo uses fictional data. The canonical vault is stored locally in SQLite, and AI inference can run on-device through a llama.cpp-compatible runtime. Network-capable job sources are separate, visible integrations—not a hidden cloud-AI dependency.

How it works

The desktop shell is built with Tauri 2 and Rust. A packaged Python/FastAPI sidecar owns the local application API, validated AI contracts, migrations, and SQLite persistence. React 19 and Vite power the interface. The repository includes reproducible dependency locks, automated migrations, unit and integration tests, accessibility checks, container validation, and native packaging smoke tests. The public v1.0.2 release provides unsigned community installers for Windows, macOS, and Linux on x64 and ARM64, together with per-target checksums, supply-chain evidence, and GitHub build-provenance attestations.

What changed during Build Week

CareerOS began before the event as Job Hunter AI, a codebase centered on job discovery and matching. During Build Week I used Codex as an implementation partner to turn that base into the coherent CareerOS Local product shown here. The work added the verified career vault, evidence-grounded resume workflow, visual resume studio, application pipeline, local model lifecycle, portable backup/restore and erasure controls, a Tauri desktop shell with a packaged Python sidecar, and broader cross-stack validation.

I kept the product decisions human-directed: local-first AI, evidence before generated claims, transparent network boundaries, desktop scope, demo story, and release criteria. The public Git history makes the pre-existing base and the Build Week extension inspectable.

Challenges

The hardest part was not generating text—it was preserving trust across process boundaries. The desktop shell must start and stop the Python sidecar cleanly, migrations must protect existing vaults, model outputs must match validated contracts, and packaging must behave consistently across operating systems. A second challenge was keeping privacy claims precise: optional job-source networking is clearly separated from local inference.

Accomplishments

CareerOS Local is a runnable product experience rather than a disconnected prototype. It brings evidence, resumes, matching, applications, privacy controls, and local AI into one desktop workflow. The project is open source under MIT, ships a reproducible demo and portfolio site, and uses CI gates for backend, frontend, Rust, migration, security, and packaging behavior.

What I learned

Local-first AI is a product discipline, not just a model-location choice. Users need visible provenance, predictable lifecycle behavior, portable data, explicit network boundaries, and a real way to leave. Codex was most valuable when used across those boundaries: tracing an unfamiliar stack, connecting flows, expanding tests, and challenging release assumptions while I retained the product and privacy decisions.

What's next

Next steps are code-signed native installers, additional local-model benchmarks, more opt-in job sources, and richer evidence review. The immediate goal is unchanged: help candidates move from truthful experience to a focused application without surrendering control of their career data.

Built With

Share this project:

Updates