The JobCannon Knowledge Graph
2,536 careers. 1,533 skills. 64,317 verified relationships. This is how it is built, where the numbers come from, and what the graph can and cannot tell you about a person's career.
What the knowledge graph is
A knowledge graph is a structured network in which the nodes are the things you care about and the edges are the verified relationships between them. Our knowledge graph has two principal node types — careers (2,536 leaf-level occupations like ML engineer, physical therapist, arborist) and skills (1,533 atomic competencies like Python, manual dexterity, active listening). The 64,317 edges between them encode statements of the form "this skill is important for this career, at this level of importance, supported by this evidence."
The point of structuring career matching this way — rather than running a black-box similarity model — is auditability. Every result a user sees on a career page can be traced back to a specific edge, that edge to a specific source, and that source to a public dataset. If we tell a student that data engineer is a strong fit because of Conscientiousness, Logical Reasoning, and a high importance score on SQL, you can pull up that exact edge with its weight and provenance.
Where the data comes from
Three primary sources, all public, all auditable.
O*NET-SOC 2019.The U.S. Department of Labor's Occupational Information Network is the canonical occupational database in the English-speaking world. It rates roughly 35 skills per occupation on two scales — importance (how essential the skill is) and level (how proficient you need to be). O*NET is the foundation of the graph because it is rigorously curated, peer-reviewed in its design, and refreshed annually. We use the SOC 2018 taxonomy as the spine — about 900 parent occupations from which we derive the 2,536 leaf-level career titles users actually search for.
Bureau of Labor Statistics OEWS. The BLS Occupational Employment and Wage Statistics survey provides the wage and employment attributes shown on every career page — median salary, percentile bands, growth projections, geographic concentration. OEWS is keyed to SOC, so it bolts cleanly onto the O*NET spine.
Live job-posting evidence. O*NET is excellent at codifying long-stable occupations and weak at picking up genuinely novel roles (LLM engineer, climate-policy analyst, prompt designer) before they have been formally surveyed. To close that gap we ingest de-identified job postings, parse them for skill mentions, aggregate by SOC, and admit a skill as relevant to an occupation when it appears in at least 15% of recent postings for that occupation. Postings are never used to identify individuals and are never the sole basis for a link in the graph.
How an edge gets verified
An edge — a single (career, skill, weight, evidence) tuple — enters the graph only after passing at least one of three independent evidence tests.
- O*NET importance gate. If O*NET rates the skill at an importance score of 3.0 or higher on the 1–5 scale for that occupation, the edge enters with the O*NET weight. This is the most authoritative path.
- Posting co-occurrence gate. If the skill is mentioned in at least 15% of recent postings tagged to that SOC, the edge enters with the empirical frequency as its weight. This path catches emerging skills that O*NET has not yet codified.
- Expert review gate. For genuinely novel roles where neither source applies yet, a vocational psychologist or domain expert proposes a candidate edge and a second reviewer either confirms or rejects it. Edges admitted by this path are tagged
provenance:expertand re-checked when O*NET or posting evidence catches up.
How the graph is refreshed
The graph is versioned and dated, and we expose the snapshot date on every career page. The refresh cadences are bounded by the upstream sources, not by us.
- O*NET importance and level scores: annually, in autumn, on the official O*NET-SOC release schedule.
- BLS wage and employment attributes: annually, in spring, based on the previous May reference period.
- Posting-derived skill weights: monthly, with a rolling 90-day window.
- Expert-review edges: continuously, with a quarterly audit against the latest O*NET and posting evidence.
How careers connect to assessments
The knowledge graph is the substrate on which our career-matching layer runs. Personality and interest assessments — Big Five, RIASEC, DISC, and the cognitive-reasoning composite — produce trait profiles. Those profiles are matched against career nodes whose typical-incumbent trait profiles are derived from O*NET's Work Styles and Work Values inventories (which are themselves Big-Five-aligned in their factor structure). The match score is a transparent weighted similarity, never a black-box embedding.
The matching logic is detailed on the dedicated Career Fit Score methodology page. The skills sub-graph and how it surfaces course recommendations is on the Skills Graph page.
What the graph cannot do
Honest limitations matter for an evidence-first product. We disclose four.
It does not predict individual outcomes.The graph encodes population-level career–skill fit. Any individual's actual career success depends on motivation, market timing, geographic constraints, network access, and other factors the graph does not see. We treat recommendations as a structured starting point for exploration, not a forecast.
Emerging roles lag. O*NET typically takes 18–36 months to codify a genuinely novel occupation. Our posting-evidence and expert-review gates exist to shorten that lag, but they cannot eliminate it. For roles that are months old, the graph will be under-resolved and we say so.
It reflects U.S. labor structure first. O*NET and BLS are U.S. agencies. We map to ESCO (the European framework) for cross-walks but the primary occupational spine is American. Salary attributes for non-U.S. users are derived from regional sources where available and disclosed as such.
It cannot adjudicate disagreements between sources. When O*NET importance disagrees with posting evidence by more than one importance band, the edge is flagged for expert review rather than auto-resolved. This is a feature: the graph should not invent certainty where the evidence is split.
Citations
- U.S. Department of Labor / Employment and Training Administration (2024). O*NET OnLine — Occupational Information Network. https://www.onetonline.org · Database release O*NET-SOC 2019 taxonomy. link
- U.S. Bureau of Labor Statistics (2024). Standard Occupational Classification System (SOC 2018). https://www.bls.gov/soc/ link
- European Commission (2022). ESCO — European Skills, Competences, Qualifications and Occupations. ESCO v1.1.1 occupation–skill taxonomy. link
- Holland, J. L. (1997). Making vocational choices: A theory of vocational personalities and work environments (3rd ed.). Psychological Assessment Resources. link
Three primary sources, all public and auditable. (1) O*NET-SOC 2019 from the U.S. Department of Labor — the canonical occupational database covering ~1,000 work activities, knowledge areas, skills, abilities, and work styles per occupation. (2) The Bureau of Labor Statistics SOC 2018 taxonomy and BLS Occupational Employment and Wage Statistics for wage and growth attributes. (3) Live job postings used as evidence to weight which skills are currently in demand for each role — postings are de-identified, aggregated, and never used as the sole basis for any link in the graph.
O*NET's 900-odd canonical occupations are SOC categories — broad parents like "Software Developers" (15-1252.00). JobCannon expands these into the more specific job titles students and workers actually search for ("backend engineer", "ML engineer", "DevOps engineer"), each mapped back to its SOC parent. We use the O*NET Alternate Titles table plus curated industry titles. The result is 2,536 leaf-level career pages, all traceable to a SOC parent. We disclose the parent on every career page.
A career–skill edge has to pass at least one of three evidence tests before it enters the graph. (1) O*NET-Skill Importance — O*NET rates ~35 skills per occupation on importance (1–5) and level (0–7); we admit a link when importance ≥ 3.0. (2) Co-occurrence in live postings — if a skill appears in at least 15% of recent postings tagged to that SOC, the link is admitted with that frequency as its weight. (3) Expert review for emerging roles where O*NET lags reality (AI roles, climate-tech roles). Every edge carries a provenance tag so we can re-derive it.
Skill weights from live job-posting evidence are refreshed monthly. O*NET releases its database annually (the canonical refresh window is autumn). Salary and growth attributes follow BLS's OEWS release schedule (May reference month, published the following April). We version the graph and stamp every career page with its current data snapshot date so users can see how recent the underlying evidence is.
Yes, in two ways we openly disclose. First, the graph maps interests and traits to occupational fit at a population level — it does not predict individual outcomes (motivation, market timing, geographic constraints, and luck matter more for any single person). Second, the graph reflects today's labor market: emerging roles take 18–36 months to enter O*NET, so genuinely novel niches will be under-represented until either job-posting evidence accumulates or expert review backfills them. We treat career recommendations as a structured starting point for exploration, not a deterministic forecast.
A research subset is published at /research/dataset under a permissive license, intended for academic and journalistic use. The full edge-weighted graph (including live posting evidence) is part of the JobCannon product and is not redistributed wholesale. Enterprise and white-label partners can access targeted slices under a data-processing agreement.