WorkBasedProgram
WorkBasedProgram is a direct EducationalOccupationalProgram subtype for programmes where the primary learning happens on the job: apprenticeships, residencies, registered training programmes, fellowship programmes. It shares the full 23-property parent vocabulary and emphasises two fields for apprenticeship-specific context:
occupationalCategory: the O*NET / SOC code for the occupation trained.trainingSalary: the wage paid during training (apprenticeships often pay a progressively increasing scale).
Pair WorkBasedProgram with a sponsoring employer on provider and the awarded credential on occupationalCredentialAwarded.
Full example of schema.org/WorkBasedProgram json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WorkBasedProgram",
"@id": "https://xoocodecontracting.example/apprenticeship-electrician",
"name": "Registered Electrician Apprenticeship",
"url": "https://xoocodecontracting.example/apprenticeship-electrician",
"description": "2-year registered apprenticeship programme. 4,000 on-the-job training hours and 288 classroom hours. Progressive wage scale; completion awards a NCCER journeyman-electrician credential.",
"programType": "Apprenticeship",
"timeToComplete": "P2Y",
"occupationalCategory": "47-2111.00",
"trainingSalary": {
"@type": "MonetaryAmountDistribution",
"name": "Apprentice wage scale",
"currency": "USD",
"median": 22.50,
"minValue": 18.00,
"maxValue": 28.00
},
"salaryUponCompletion": { "@type": "MonetaryAmountDistribution", "name": "Journeyman electrician median wage (Pennsylvania)", "currency": "USD", "median": 68000 },
"occupationalCredentialAwarded": { "@type": "EducationalOccupationalCredential", "name": "NCCER Journeyman Electrician credential" },
"applicationStartDate": "2026-06-01",
"applicationDeadline": "2026-07-31",
"startDate": "2026-09-01",
"maximumEnrollment": 12,
"provider": { "@type": "Organization", "name": "Xoo Code Contracting Co-op" }
}
</script>Minimal valid version
The smallest markup that still produces a valid WorkBasedProgram entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WorkBasedProgram",
"name": "Registered Electrician Apprenticeship",
"occupationalCategory": "47-2111.00",
"provider": { "@type": "Organization", "name": "Xoo Code Contracting Co-op" }
}
</script>Google rich results this unlocks
Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.
- Google docsEducation / careers surfaces (apprenticeship match)primary
Common WorkBasedProgram mistakes
Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.
- 01
Plain EducationalOccupationalProgram on an apprenticeship
WrongEducationalOccupationalProgram for work-based programmesRightWorkBasedProgram — the specific subtypeApprenticeship-match engines filter on WorkBasedProgram specifically.
- 02
Single trainingSalary figure
WrongStatic trainingSalary: 22.50RightMonetaryAmountDistribution with min/median/max for the apprentice wage scaleApprentice wages scale progressively; the distribution reflects the real pay trajectory.
Schema properties in this example
Also mentioned in 2 other examples
WorkBasedProgram also appears in EducationalOccupationalProgram, and MonetaryAmountDistribution. See the full WorkBasedProgram schema page for every reference.
About the example data
A fictional 2-year registered electrician apprenticeship at Xoo Code Contracting Co-op.
Comments
Loading comments...