An Agent-native, local-first, and embeddable career development operating system for Obsidian.
Career OS keeps career evidence, strategy, market sensing, opportunity decisions, capability readiness, and career communication in one locally owned system. Agents operate the workflows, Obsidian renders the knowledge, and a deterministic CLI validates and maintains the system.
- Work with your career data: open the root
Career Home in Obsidian, choose the language at the top, describe the outcome to an Agent, and use
the five live Workbenches. The fixed
career/README.md, dashboard, and all-records Base remain lightweight text and inventory fallbacks. - Install or maintain Career OS: start from the framework documentation map, then follow the installation or contributor guidance for the task at hand.
- Agent-native: describe the outcome; the Agent selects and composes Skills.
- Local-first: canonical data is Markdown and open files under user-owned
career/. - Embeddable: use Career OS as its own Vault or nest it inside an existing Vault.
- System/data separation: versioned implementation lives in
system/; user data has one fixed project-relative authority atcareer/. - Multilingual data: framework text is English while user content supports Unicode and BCP 47 language tags.
- Bilingual Workbenches: the five operational Bases ship as system-owned English and Chinese presentation pairs over identical record queries.
- Evidence-led: mechanism health, evidence maturity, readiness, applications, and outcomes remain separate states.
Open the full-size PNG · Open the source Canvas
Open the full-size PNG · Open the source Canvas
These reviewed PNGs are native Obsidian Full canvas exports of the tracked
Canvas sources. The Canvas files remain canonical; see
docs/assets/README.md for the export contract.
This public checkout declares
development_topology = "standalone-framework" and contains framework assets,
synthetic fixtures, and deterministic validation only. Keep real career
records, identity, attachments, font binaries, active Obsidian state, and
generated outputs in an initialized private Career Home, never in a public
GitHub fork.
v0.1.0 supports clean installations only. It does not define an in-place
upgrade path from any v0.1.0-rc.* checkout.
For an embedded installation, keep the private Career Home beside the existing
Obsidian Vault and mount it through a host-tracked relative directory symlink.
upstream is the conventional optional remote name for the canonical public
framework repository,
sean2077/career-os. When retained in
the private downstream it must be fetch-only with
remote.upstream.pushurl=DISABLED. A personal origin is appropriate only
after its owner has confirmed the hosted repository is private.
Install the core prerequisites described in the installation requirements before starting. Obsidian and the XeLaTeX resume stack have separate readiness gates.
Clone the public framework:
git clone https://github.com/sean2077/career-os.git career-home
cd career-home
Cloning initially creates a pushable public origin. Before adding personal
data, choose one of these local remote policies:
# Keep the optional public update remote:
git remote rename origin upstream
git remote set-url --push upstream DISABLED
# Or keep no public remote:
git remote remove origin
Then initialize the private Career Home:
uv sync --locked
# Create and stage the relative Vault symlink described in the guide first.
uv run career-os init --mode embedded --root . --vault-root ../obsidian-vault --vault-mount Career/career-home --languages en
uv run career-os doctor --json
uv run career-os check
uv run career-os views build
Read the private downstream guide when operating in split-downstream mode. It defines the cross-platform symlink, remote-safety guard, and exact-tag update workflow.
uv sync --locked
uv run career-os init --mode standalone --root . --languages en
uv run career-os doctor --json
uv run career-os checkResume support is optional and requires the XeLaTeX dependencies documented in the installation requirements:
uv run career-os resume fonts fetch
uv run career-os resume doctor --jsonFor installation inside another Obsidian Vault:
uv run career-os init --mode embedded --root . --vault-root C:\path\to\vault --vault-mount Career/career-home --languages en,zh-CN
uv run career-os vault plan --action attach --vault-root C:\path\to\vault
# Review the emitted plan, then:
uv run career-os vault apply --plan .career-os\plans\vault-attach-<id>.jsonReview the documentation map before applying a generated plan.
The root English Career Home and 中文职业主页, plus the
generic public Base, architecture Canvas, workflow-guide Canvas, dashboard, ten
paired authority Workbench Bases, and two localized Recent Changes Bases under
system/obsidian/, are Git-tracked framework assets. Each homepage embeds its
localized Recent Changes view plus five authority Bases. career-os init never
creates or overwrites either homepage or any Base. uv run career-os views build validates and lists all eighteen framework assets without creating
career/ or runtime copies.
QuickAdd is an optional host-owned adapter for local record capture, active
JD/Company/Engagement review, and explicit Engagement-event recording. Career
OS generates reviewable choice JSON and ships the scripts, but it never edits
the Vault's .obsidian choices or hotkeys. See the
embedded-Vault guide.
Create a user-owned direct XeLaTeX resume with
uv run career-os resume new my-resume. Internal builds remain under build/;
only resume export writes a shareable PDF. Personal roots remain handwritten
TeX, are discovered recursively by name, and use the one system-owned,
legacy-calibrated class plus adjacent identity.tex. Preview and application
are fixed output profiles; Git owns source versions and export receipts compute
hashes automatically. Project-wide personal font filenames live in
career-os.toml, while binaries remain in ignored .career-os/fonts/ state
and are resolved by filename before XeLaTeX. See
the resume guide.
Career OS ships seven project-owned career workflow Skills. career-os init
and career-os skills status --json separately report the optional Obsidian
Skill group. Only when the report requires a choice does the Agent explain the
reviewed source and ask for project, global, or skip plus the target Host; the
CLI never installs or downloads a Skill itself. See
the Skill catalog for ownership, onboarding, and reviewer
boundaries.
The current stable line is v0.7.0; see its
verification evidence. Before v1.0, only the
interfaces explicitly documented by a release are supported.
Project-owned work is licensed under the MIT License. External dependencies retain their original licenses and attribution; see NOTICE, the supply-chain guide, and the deterministic CycloneDX SBOM.

