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.aiQuick 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 skillsOccupations
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
Related
- schema.org.ai - Schema.org vocabulary
- agents - Occupation-based agents
- tasks.org.ai - Task definitions
- skills.org.ai - Skills data