.do

soc.org.ai

Standard Occupational Classification and O*NET occupation data

soc.org.ai

Standard Occupational Classification (SOC) system and O*NET occupation data with 1,016 occupations and detailed workforce information.

Overview

The soc.org.ai package provides TypeScript types and data for the SOC taxonomy and O*NET occupation database, including skills, tasks, tools, and job requirements.

Installation

pnpm add soc.org.ai

Quick Start

import { occupations } from 'soc.org.ai'

// Get occupation
const swe = occupations.get('15-1252.00') // Software Developers

console.log(swe.title) // 'Software Developers'
console.log(swe.description) // 'Research, design, and develop...'
console.log(swe.tasks) // Array of tasks
console.log(swe.skills) // Array of required skills

Occupations

Find Occupations

import { occupations } from 'soc.org.ai'

// By SOC code
const occupation = occupations.get('15-1252.00')

// Search by title
const results = occupations.search('software developer')

// By category
const techJobs = occupations.byCategory('Computer and Mathematical')

Occupation Data

interface Occupation {
  socCode: string // '15-1252.00'
  title: string // 'Software Developers'
  description: string
  tasks: Task[]
  skills: Skill[]
  knowledge: Knowledge[]
  abilities: Ability[]
  technologies: Technology[]
  tools: Tool[]
  education: EducationLevel
  experience: ExperienceLevel
  salary: {
    median: number
    percentile10: number
    percentile90: number
  }
}

Tasks

Occupation Tasks

const swe = occupations.get('15-1252.00')

// Get tasks
const tasks = swe.tasks
// [
//   { id: '...', description: 'Design and develop software systems' },
//   { id: '...', description: 'Test and debug applications' },
//   ...
// ]

// Filter by importance
const criticalTasks = tasks.filter((t) => t.importance > 4.0)

Skills

Required Skills

const swe = occupations.get('15-1252.00')

// Get skills
const skills = swe.skills
// [
//   { name: 'Programming', level: 4.5, importance: 4.8 },
//   { name: 'Critical Thinking', level: 4.2, importance: 4.5 },
//   ...
// ]

// Top skills
const topSkills = skills.sort((a, b) => b.importance - a.importance).slice(0, 10)

Knowledge Areas

Required Knowledge

const swe = occupations.get('15-1252.00')

// Get knowledge areas
const knowledge = swe.knowledge
// [
//   { area: 'Computers and Electronics', level: 4.8 },
//   { area: 'Mathematics', level: 3.8 },
//   { area: 'Engineering and Technology', level: 3.5 },
//   ...
// ]

Tools & Technologies

Work Tools

const swe = occupations.get('15-1252.00')

// Get tools
const tools = swe.tools
// [
//   { name: 'Integrated Development Environments', examples: ['VS Code', 'IntelliJ'] },
//   { name: 'Version Control', examples: ['Git', 'GitHub'] },
//   ...
// ]

// Get technologies
const tech = swe.technologies
// [
//   { name: 'JavaScript', category: 'Programming Languages' },
//   { name: 'Python', category: 'Programming Languages' },
//   { name: 'React', category: 'Web Frameworks' },
//   ...
// ]

Job Requirements

Education

const swe = occupations.get('15-1252.00')

console.log(swe.education)
// {
//   typical: 'Bachelor\'s degree',
//   range: ['Associate\'s degree', 'Bachelor\'s degree', 'Master\'s degree']
// }

Experience

console.log(swe.experience)
// {
//   related: '2-4 years',
//   onTheJob: '1-2 years'
// }

Salary Data

Wage Information

const swe = occupations.get('15-1252.00')

console.log(swe.salary)
// {
//   median: 120730,
//   percentile10: 77020,
//   percentile25: 97470,
//   percentile75: 155240,
//   percentile90: 194280
// }

SOC Hierarchy

Major Groups

import { socHierarchy } from 'soc.org.ai'

// Get major groups
const groups = socHierarchy.majorGroups()
// [
//   { code: '11', title: 'Management Occupations' },
//   { code: '13', title: 'Business and Financial Operations' },
//   { code: '15', title: 'Computer and Mathematical' },
//   ...
// ]

Browse Hierarchy

// Get minor groups under major group
const minorGroups = socHierarchy.minorGroups('15') // Computer and Mathematical

// Get broad occupations
const broadOccupations = socHierarchy.broadOccupations('15-12') // Software Developers

// Get detailed occupations
const detailedOccupations = socHierarchy.detailedOccupations('15-1252')

Use Cases

Job Matching

// Match candidate skills to occupations
const candidateSkills = ['JavaScript', 'React', 'Node.js']

const matches = occupations.matchSkills(candidateSkills)
// [
//   { occupation: '15-1252.00', matchScore: 0.85 },
//   { occupation: '15-1254.00', matchScore: 0.72 },
//   ...
// ]

Career Pathways

// Find related occupations
const currentOccupation = '15-1252.00' // Software Developers
const related = occupations.findRelated(currentOccupation, {
  similarSkills: true,
  careerProgression: true,
})

// [
//   { code: '15-1253.00', title: 'Software Quality Assurance Analysts', similarity: 0.88 },
//   { code: '15-1254.00', title: 'Web Developers', similarity: 0.82 },
//   ...
// ]

Skills Gap Analysis

// Compare current skills to target occupation
const currentSkills = ['HTML', 'CSS', 'JavaScript']
const targetOccupation = '15-1252.00'

const gap = occupations.analyzeSkillsGap(currentSkills, targetOccupation)
// {
//   missing: ['Python', 'SQL', 'Git'],
//   present: ['JavaScript'],
//   matchPercentage: 25
// }

Workforce Planning

// Get occupation demand
const demand = occupations.getDemand('15-1252.00')
// {
//   growth: 'Much faster than average',
//   growthRate: 25.7, // percentage
//   projectedJobs: 1847900,
//   jobOpenings: 189200 // annual
// }

Integration

With Agents

import { agent } from 'sdk.do'
import { occupations } from 'soc.org.ai'

// Create agent for occupation
const recruiter = await agent.create({
  occupation: '13-1071.00', // Human Resources Specialists
  skills: occupations.get('13-1071.00').skills,
  tasks: occupations.get('13-1071.00').tasks,
})

With Database

import { db } from 'sdk.do'

// Store occupation data
await db.create('job-listings', {
  title: 'Senior Software Developer',
  socCode: '15-1252.00',
  requiredSkills: occupations.get('15-1252.00').skills.slice(0, 10),
  salary: { min: 100000, max: 150000 },
})

Documentation