Career-transition & reskilling domain plugin for the OakQuant timber substrate.
Project description
oak-domain-career
A career-transition & reskilling domain for the OakQuant platform — the third domain built on Timber's plugin system, and the platform's counter-cyclical pillar.
Career DNA is built across all three layers (v0.1.0), not yet deployed. The spine capability — assessment models + service + pure scoring engine + flow config + grove endpoints (
/api/v3/career) + acorn coach tool — is real and tested (43 tests green). It plugs into timber/grove/acorn at runtime via the entry-point registries with no edits to any sibling repo (ADR-0003). It is not published to PyPI and not installed anywhere: merging0.1.0to main triggers the publish, and installing into the grove/acorn images + adding a sky assessment page are the approval-gated go-live steps. The other three flows (layoff-triage / land-a-role / reskill) remain scaffolds. See docs/STATUS.md.
What it is
oak-domain-career is a discoverable Timber domain plugin. Installing it will add a
career-transition capability to an OakQuant deployment; leaving it out is a no-op. Like the
other two domains it is fully additive and opt-in — it ships its own models, services,
and integration points and wires them into the platform's shared registries at startup,
with no edits to the core Timber, Grove, or Acorn libraries.
Why career transition — the counter-cyclical pillar
OakQuant's portfolio thesis is one engine across the whole economic cycle:
| Domain | Cycle role | Seat |
|---|---|---|
| investments | boom — grows when markets do | B2C advice |
| legal-intake | altruistic foundation — access to justice | B2B2C workflow |
| career (this) | bust — demand rises when people lose work | B2C self-serve |
Career transition is counter-cyclical: layoffs are the demand signal. It is the domain "everyone needs in a bust," and it runs on the same seams as the other two — assessment → goal → workflow → outcome, with a continuous-learning loop closing on real placement data.
See docs/00-ambition.md for the full thesis, and research/ for the market, competitive, funding, and monetization analysis that this plan is built on.
The first release (R1) — four flows, one arc
R1 is deliberately a full arc rather than a single feature, because the flows chain off a shared spine (Career DNA feeds the other three):
- Career DNA — a HITL behavioral + skills assessment → persona, skill-gap map, and a readiness/risk score. The root the other three consume. (Mirrors Financial DNA.)
- Layoff triage (first 72 hrs) — the counter-cyclical entry point: just-laid-off intake → benefits/runway math → an immediate, routed action plan with SLAs.
- Land your next role — a
CareerGoalwith a deadline-driven application pipeline, résumé/brand imagery, and interview-prep video. - Reskill pathway — an adaptive learning path with mastery tracking — the tightest continuous-learning loop.
Start with the product narrative: docs/application-flows-and-benefits.md — every flow as Who / How / Benefit, with a visual SVG process diagram each. Internal flow detail: docs/02-flows.md.
The plugin shape
This package plugs into all three OakQuant layers through one entry point per layer. Each layer discovers only its own entry-point group and imports only that entry point's module — so the Timber layer never pulls in Grove/FastAPI or Acorn.
| Layer | Entry-point group | Object | Contributes |
|---|---|---|---|
| Timber | timber.domains |
oak_domain_career:CareerDomain |
ORM models + assessment / pathway / job-search / triage / outcome services |
| Grove | grove.domains |
oak_domain_career.grove_plugin:CareerGroveDomain |
FastAPI router under /api/v3/career |
| Acorn | acorn.domains |
oak_domain_career.acorn_plugin:CareerAcornDomain |
career-coach assistant profile + agent tools |
Repository layout
oak-domain-career/
├── README.md · LICENSE · pyproject.toml · CHANGELOG.md · .gitignore
├── .github/workflows/release.yml # PyPI Trusted-Publishing on version bump (parity w/ siblings)
├── docs/ # product narrative + SVG diagrams, ambition, plan, architecture, ADRs
│ ├── application-flows-and-benefits.md # ← flagship user-facing doc (Who/How/Benefit + diagrams)
│ ├── funded-training-and-benefits-resources.md
│ └── diagrams/ # generated SVG process diagrams (generate.mjs)
├── research/ # competitive / funding / market / monetization / regulatory
├── oak_domain_career/ # the package skeleton (contracts + TODOs, no behavior yet)
│ ├── domain.py models.py grove_plugin.py acorn_plugin.py
│ ├── calendar_taxonomy.py routing_seed.py
│ └── services/ # assessment / pathway / job_search / triage / outcome / calendar / routing
├── tests/ # discovery test skeleton
└── config/ # future Tier-1 config dir (grove.feature_packages)
Relationship to the other domain repos
Stored on GitHub exactly like its siblings under the oakquant-ai org
(github.com/oakquant-ai/oak-domain-career), same main default branch, same root files,
same .github/workflows/release.yml, same package/tests layout. See
docs/03-architecture.md for what it reuses from
oak-domain-investments (Financial DNA, the adaptive engine, Plaid, calendar generators)
versus what is net-new.
Status & next steps
This is a planning repository. The build sequence, open questions, and the (future) integration checkpoints that will require touching other repos are tracked in docs/STATUS.md.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file oak_domain_career-0.2.0.tar.gz.
File metadata
- Download URL: oak_domain_career-0.2.0.tar.gz
- Upload date:
- Size: 100.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c41de8a33015d3799820e712041d70b2a336f918c1b6ee19258c8042bff8845
|
|
| MD5 |
461bdb4a9c1706da9d9339917b9ecd22
|
|
| BLAKE2b-256 |
7efa5c74527a99226d3c70087aba739ffcd93c415cc98e451a2939b6c3fed5e9
|
Provenance
The following attestation bundles were made for oak_domain_career-0.2.0.tar.gz:
Publisher:
release.yml on oakquant-ai/oak-domain-career
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
oak_domain_career-0.2.0.tar.gz -
Subject digest:
8c41de8a33015d3799820e712041d70b2a336f918c1b6ee19258c8042bff8845 - Sigstore transparency entry: 2195080740
- Sigstore integration time:
-
Permalink:
oakquant-ai/oak-domain-career@864ac355943db71e007b9d1ba1ed180c04b3287f -
Branch / Tag:
refs/heads/main - Owner: https://github.com/oakquant-ai
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@864ac355943db71e007b9d1ba1ed180c04b3287f -
Trigger Event:
push
-
Statement type:
File details
Details for the file oak_domain_career-0.2.0-py3-none-any.whl.
File metadata
- Download URL: oak_domain_career-0.2.0-py3-none-any.whl
- Upload date:
- Size: 51.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e69e4cf68a02c156e682fadeb0a46409b004d5d11dfab4c0a96df0b164cd7fbc
|
|
| MD5 |
931165a2ccbab41b4ca93accc4914b83
|
|
| BLAKE2b-256 |
7a6fec2ac2e0ca2b65feff6e5659f69e9254c1defd4d736567b5e14a50150e19
|
Provenance
The following attestation bundles were made for oak_domain_career-0.2.0-py3-none-any.whl:
Publisher:
release.yml on oakquant-ai/oak-domain-career
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
oak_domain_career-0.2.0-py3-none-any.whl -
Subject digest:
e69e4cf68a02c156e682fadeb0a46409b004d5d11dfab4c0a96df0b164cd7fbc - Sigstore transparency entry: 2195080743
- Sigstore integration time:
-
Permalink:
oakquant-ai/oak-domain-career@864ac355943db71e007b9d1ba1ed180c04b3287f -
Branch / Tag:
refs/heads/main - Owner: https://github.com/oakquant-ai
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@864ac355943db71e007b9d1ba1ed180c04b3287f -
Trigger Event:
push
-
Statement type: