Spoke

enterprise-jobframe

Your tenant's instance of the JobFrame canon — job profiles, overlays, governance, and the job ⇄ person ⇄ position graph, built for the people who run job architecture.

Character

You own job architecture for a real organization. The global taxonomy is fine in the abstract, but you need your roles — your titles, your overrides, your governance — without re-typing a job description ever again or letting local edits corrupt the shared canon.

Problem

External. Job descriptions live in scattered docs nobody maintains; a leadership philosophy lives in a deck nobody reads; comp visibility is an all-or-nothing argument with legal.

Internal. You are asked to operationalize strategy across every role on command, and to disclose pay responsibly — but the tools force you to choose between control and consistency.

Philosophical. A role's architecture should be assembled from trusted pieces and governed like code — versioned, audited, never silently overwritten.

Guide

enterprise-jobframe is the tenant-facing layer over the JobFrame canon. Assemble job profiles from canon components (accept / reject / edit / replace, with full edit provenance — never type a JD), apply an so a philosophy or strategy is injected into every role org-wide, and decide comp exposure through a tenant that keeps individual pay private under the min-N floor. Tenants govern their own overlays and overrides; JobFrame governs the global canon; tenant changes never mutate it.

Abstract

Background. Enterprises need their own instance of a canonical job architecture — profiles, overrides, lifecycle, and the job ⇄ person ⇄ position graph — without forking or corrupting the shared canon.

Methodology. A top-down constructor assembles profiles from canon components with preserved component ids + edit provenance; a pure injection engine applies overlay fragments by level × function (composing with Focus, idempotent, with stale-fragment retirement); a disclosure policy engine gates comp artifacts by viewer scope, the min-N privacy floor, and pay-transparency law.

Scope. The tenant instance + governance — it composes the canon (job-family-agent), comp (anycomp / wage-benchmark / wage-compliance), and people/org (org-graph) over HTTP; it does not own them.

Contribution. Organizational Overlays as a second JD axis parallel to Focus, and a disclosure policy where public posting is one setting — generalizing the public-vs-enterprise comp-exposure decision.

Evidence / Provenance. PAT-JFE-ENT series; every adoption + injection + lifecycle transition routes to a shared review queue + audit log.

Plan

  1. 01

    Scaffold from canon

    GET /api/spokes/enterprise-jobframe/scaffold?familyId=&focusId=&levelId= to assemble a profile from canon components — accept, reject, or edit each brick.

  2. 02

    Adopt an overlay

    Pick an organizational overlay (philosophy / strategy / change objective) and inject it org-wide by level × function; track rollout per role.

  3. 03

    Set a disclosure policy

    Configure who sees what comp data; the min-N floor and any pay-transparency law are enforced for you — individual pay is never exposed.

  4. 04

    Govern + version

    Approve / publish gate on admin+; publish snapshots an immutable version; canon promotion is a governed proposal, never a silent mutation.

Call to Action

Direct. curl the scaffold endpoint and assemble your first governed profile.

Transitional. Read the Enterprise JobFrame build-out for the overlay + disclosure model.

Spoke I/O (visual language v1)

Every toolbox spoke shares the same abstract choreography: typed inputs on the left, distilled verbs in the center, typed outputs on the right, and (when relevant) cross-spoke HTTP composition along the bottom rail. Source package: @people-analytics-toolbox/spoke-illustrations.

Enterprise JobFrameINPUTSMAIN ACTIONSOUTPUTSTenant job profilesTenantJobProfile[]Canon componentsCanonicalProfileOrg overlays (philosophy)OverlayInstance[]Assemble + overlay JDGovern + versionDisclose by policyGoverned job architecturePublishedProfileversioned + auditedCOMPOSES WITHjob-family-agentorg-graphanycompdata-anonymizer

Try it now

Copy this curl. Paste in any terminal. Public read — no auth needed.

enterprise-jobframe.scaffold

GET

Top-down constructor scaffold assembled from the JobFrame canon.

curl -sS "https://people-analytics-toolbox.vercel.app/api/spokes/enterprise-jobframe/scaffold?familyId=SWE&focusId=GEN&levelId=P3"

Vendor the contract

The Zod contract is the source of truth. Vendor a copy into your consumer app — you keep it; we don't break it underneath you. Re-vendor when the version bumps.

// Vendor canonical types:
// src/spokes/enterprise-jobframe/contracts/types.ts

Source path: src/spokes/enterprise-jobframe/contracts/types.ts · GitHub

Failure

Strategy stays trapped in slides, job descriptions rot, and comp disclosure is a recurring fight — the architecture is a document system instead of a governed part of HR operations.

Success

Every role is assembled from trusted canon, carries the org's current philosophy, and discloses pay exactly as policy and law require — versioned, audited, and never overwriting the shared canon.