Overview
Skills are a generic abstraction for any provider attribute your organization cares about — licensed regions, enrollments, spoken languages, clinical specialties, and more. Rather than building separate systems for each attribute type, you define skills, assign values to providers, and enforce skill requirements. This gives you a single, composable mechanism that covers a wide range of scheduling constraints without custom logic for each one.Core concepts
Skills
A skill is a named category of provider attribute. Each skill has anid and a set of possible values.
| Example skill | Possible values |
|---|---|
| Licensed Region | US-KY, US-OH, US-IN, … |
| Hospital Enrollment | st_mary, general_east, childrens_central, … |
| Language | en, es, fr, zh, … |
| Specialty | cardiology, radiology, emergency_medicine, … |
Skill assignments
A provider can hold zero or more values for each skill, as well as a valid range for the assignment:| Provider | Skill | Value | Range |
|---|---|---|---|
| Dr. Reed | Licensed Region | US-KY | — |
| Dr. Reed | Licensed Region | US-OH | 2026-01-10 onwards |
| Dr. Reed | Licensed Region | US-WI | until 2028-12-31 |
Skill requirements
A skill requirement is a constraint — typically placed on a shift — that a provider must satisfy in order to be eligible. Requirements are composable: you can combine simple checks withand / or logic to express complex eligibility rules.
Requirement schema
Skill requirements use a recursive, tree-structured schema. There are two node types: leaf nodes that check a single skill value, and logical nodes that combine other requirements.equal — leaf requirement
Asserts that a provider holds a specific value for a specific skill.
and — all must match
or — at least one must match
Full type definition
The schema is recursive —and and or nodes can contain any mix of equal, and, and or children, allowing arbitrary nesting depth.