Metadata-Version: 2.4
Name: oak-domain-career
Version: 0.3.0
Summary: Career-transition & reskilling domain plugin for the OakQuant timber substrate.
Author-email: Pumulo Sikaneta <pumulo@gmail.com>
License-Expression: Apache-2.0
License-File: LICENSE
Requires-Python: >=3.11
Requires-Dist: pyyaml>=6.0
Requires-Dist: timber-common>=0.6.14
Provides-Extra: dev
Requires-Dist: fastapi>=0.110; extra == 'dev'
Requires-Dist: httpx>=0.27; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Description-Content-Type: text/markdown

# 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.**

[![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)
[![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://www.python.org/downloads/)
[![Status: Career DNA built](https://img.shields.io/badge/status-career_dna_built-green.svg)](docs/STATUS.md)

> **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**:
> merging `0.1.0` to 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](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](docs/00-ambition.md) for the full thesis, and
[research/](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):

1. **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.)
2. **Layoff triage (first 72 hrs)** — the counter-cyclical entry point: just-laid-off
   intake → benefits/runway math → an immediate, routed action plan with SLAs.
3. **Land your next role** — a `CareerGoal` with a deadline-driven application pipeline,
   résumé/brand imagery, and interview-prep video.
4. **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](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](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](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](docs/STATUS.md).
