openworkid.org / extensions

Extension Library

Extensions are modular, profession-specific field sets that attach to any ProfessionalIdentity. The core schema is universal — extensions are what make a Psychotherapist's profile structurally different from a Software Engineer's. Each is independently versioned.

11 extensions · v1.0.0MIT License4 regulated professions
How Extensions Work

A ProfessionalIdentity document may contain any number of extensions in its extensions array. Each extension references a canonical schema URI and a version. Unrecognised extension fields must be preserved on import and may be ignored in display.

Extension in a ProfessionalIdentity document
{
  "extensions": [
    {
      "@type": "Extension",
      "extensionId": "openworkid.org/extensions/software-engineer",
      "extensionVersion": "1.0.0",
      "fields": { /* extension-specific fields */ }
    }
  ]
}

A profile may combine multiple extensions — for example a Physician who also has a management-consultant extension for their healthcare advisory work. Extensions do not conflict. Fields in fields are always namespaced by the extension they belong to.


Technical4 extensions
Software Engineer
openworkid.org/extensions/software-engineer@1.0.0
v1.0.0Technical14 fields

For software engineers, full-stack developers, backend/frontend specialists, mobile developers, and DevOps/platform engineers. Covers language stack, frameworks, cloud infrastructure, open source work, and seniority.

FieldTypeRequiredValues / Notes
primaryLanguagesstring[]requiredFree-form. e.g. "TypeScript", "Python", "Rust", "Go"
frameworksstring[]optionale.g. "Next.js", "FastAPI", "Rails", "Spring"
cloudProvidersstring[]optionale.g. "AWS", "GCP", "Azure", "Vercel", "Hetzner"
databasesstring[]optionale.g. "PostgreSQL", "Redis", "MongoDB", "ClickHouse"
seniorityenumrequired"junior" · "mid" · "senior" · "principal" · "staff"
remotePreferenceenumoptional"on-site" · "hybrid" · "remote-only" · "flexible"
availableHoursenumoptional"full-time" · "part-time" · "project-based"
openSourceContributionsobject[]optionalArray of { repo: URL, role: "author"|"contributor"|"maintainer" }
githubUrlURLoptionalPublic GitHub profile URL.
aiToolsstring[]optionale.g. "Claude Code", "Cursor", "Copilot" — AI-assisted development tools
rateRangeRateRangeoptional{ min, max, currency: "EUR"|"USD"|..., unit: "hour"|"day" }
languagesstring[]optionalISO 639-1 codes. e.g. "de", "en"
Example JSON
software-engineer extension
{
  "extensionId": "openworkid.org/extensions/software-engineer",
  "extensionVersion": "1.0.0",
  "fields": {
    "primaryLanguages": ["TypeScript", "Python", "Rust"],
    "frameworks": ["Next.js", "FastAPI"],
    "cloudProviders": ["AWS", "Vercel"],
    "databases": ["PostgreSQL", "Redis"],
    "seniority": "senior",
    "remotePreference": "remote-only",
    "aiTools": ["Claude Code", "Cursor"],
    "rateRange": { "min": 900, "max": 1400, "currency": "EUR", "unit": "day" },
    "languages": ["de", "en"]
  }
}
Data Scientist
openworkid.org/extensions/data-scientist@1.0.0
v1.0.0Technical13 fields

For data scientists, ML engineers, analytics engineers, and AI researchers. Covers ML frameworks, specialisations, and cloud ML platforms.

FieldTypeRequiredValues / Notes
primaryLanguagesstring[]required"Python", "R", "SQL", "Julia", "Scala"
mlFrameworksstring[]optional"PyTorch", "TensorFlow", "scikit-learn", "JAX", "Keras"
dataToolsstring[]optional"Spark", "dbt", "Airflow", "dask", "Polars"
specialisationsstring[]optional"ML" · "Deep Learning" · "NLP" · "Computer Vision" · "MLOps" · "Analytics" · "Causal Inference"
cloudMLstring[]optional"AWS SageMaker", "GCP Vertex AI", "Azure ML", "Databricks"
domainsstring[]optionalIndustry domains. e.g. "Healthcare", "Finance", "Retail"
publicationsintegeroptionalNumber of peer-reviewed publications.
seniorityenumrequired"junior" · "mid" · "senior" · "principal" · "staff"
rateRangeRateRangeoptional{ min, max, currency, unit: "hour"|"day" }
Product Manager
openworkid.org/extensions/product-manager@1.0.0
v1.0.0Technical11 fields

For product managers, product owners, and heads of product. Covers product types, methodology, tools, and technical affinity.

FieldTypeRequiredValues / Notes
productTypesstring[]required"B2B SaaS" · "B2C" · "Platform" · "Marketplace" · "Mobile App" · "AI Product" · "Developer Tools"
methodologiesstring[]optional"Agile" · "Scrum" · "OKR" · "Shape Up" · "SAFe" · "Continuous Discovery"
toolsstring[]optionale.g. "Linear", "Jira", "Notion", "Figma", "Amplitude"
teamSizeintegeroptionalTypical cross-functional team size.
techAffinityenumoptional"low" · "medium" · "high" — comfort with technical depth
industriesstring[]optionalFree-form industry strings.
seniorityenumrequired"associate" · "pm" · "senior-pm" · "principal-pm" · "head-of-product" · "cpo"
UX Designer
openworkid.org/extensions/ux-designer@1.0.0
v1.0.0Technical10 fields

For UX designers, UI designers, service designers, and design researchers. Includes portfolio URL field.

FieldTypeRequiredValues / Notes
disciplinesstring[]required"UX" · "UI" · "Service Design" · "Design Research" · "Motion" · "Design Systems" · "Accessibility"
toolsstring[]optional"Figma", "Framer", "Protopie", "Sketch", "Webflow"
projectTypesstring[]optional"App" · "Web" · "Design System" · "User Research" · "Design Sprint"
industriesstring[]optionalFree-form.
portfolioUrlURLoptionalMust be a valid HTTPS URL. Displayed as a primary action on the profile.
seniorityenumrequired"junior" · "mid" · "senior" · "lead" · "head-of-design"

Business3 extensions
Finance Controller
openworkid.org/extensions/finance-controller@1.0.0
v1.0.0Business11 fields

For finance controllers, CFOs, FP&A specialists, treasury managers, and financial reporting experts. This is the extension used by the upstand.work demo profile.

FieldTypeRequiredValues / Notes
specialisationsstring[]required"FP&A" · "Reporting" · "Treasury" · "Tax" · "M&A" · "Business Intelligence" · "Controlling" · "Audit"
systemsstring[]optional"SAP", "Power BI", "Cognos", "Tagetik", "Hyperion", "Oracle EPM", "Lucanet"
industriesstring[]optionalFree-form. e.g. "Automotive", "Manufacturing", "Retail"
internationalExperiencebooleanoptionalHas led or worked in multi-country reporting structures.
teamSizeTypicalintegeroptionalTypical size of teams led.
rateRangeRateRangeoptional{ min, max, currency, unit: "hour"|"day"|"month" }
languagesstring[]optionalISO 639-1.
certificationsstring[]optionale.g. "CFA", "CIMA", "CPA", "ACCA"
Example JSON
finance-controller extension
{
  "extensionId": "openworkid.org/extensions/finance-controller",
  "extensionVersion": "1.0.0",
  "fields": {
    "specialisations": ["FP&A", "Reporting", "Business Intelligence"],
    "systems": ["SAP", "Power BI", "Cognos"],
    "industries": ["Automotive", "Manufacturing"],
    "internationalExperience": true,
    "teamSizeTypical": 6,
    "rateRange": { "min": 900, "max": 1200, "currency": "EUR", "unit": "day" },
    "languages": ["de", "en"]
  }
}
Management Consultant
openworkid.org/extensions/management-consultant@1.0.0
v1.0.0Business9 fields

For strategy consultants, transformation leads, interim managers, and organisational development experts.

FieldTypeRequiredValues / Notes
specialisationsstring[]required"Strategy" · "Transformation" · "Operations" · "M&A" · "Interim Management" · "Org Design" · "Digital"
industriesstring[]optionalFree-form.
methodologiesstring[]optionale.g. "McKinsey 7S", "Design Thinking", "Lean", "Agile at Scale"
typicalEngagementLengthenumoptional"weeks" · "months" · "years"
teamSizeTypicalintegeroptionalTypical project team size led.
languagesstring[]optionalISO 639-1.
rateRangeRateRangeoptional{ min, max, currency, unit: "hour"|"day" }
Creative Director
openworkid.org/extensions/creative-director@1.0.0
v1.0.0Business10 fields

For creative directors, art directors, brand strategists, and editorial directors. Includes portfolio URL and team leadership scope.

FieldTypeRequiredValues / Notes
disciplinesstring[]required"Brand" · "Editorial" · "Advertising" · "Digital" · "Film/Video" · "Packaging" · "Environmental"
toolsstring[]optionale.g. "Figma", "Adobe CC", "Keynote", "DaVinci Resolve"
industriesstring[]optionalFree-form. e.g. "Fashion", "Tech", "FMCG"
projectTypesstring[]optional"Brand Identity" · "Campaign" · "Design System" · "Launch" · "Rebrand"
portfolioUrlURLoptionalMust be HTTPS. Displayed as primary profile action.
teamSizeTypicalintegeroptionalSize of creative teams typically led.
rateRangeRateRangeoptional{ min, max, currency, unit: "hour"|"day"|"project" }

Regulated Professions ⚖4 extensions

Extensions in this category include a regulatoryNotice field. Implementing platforms must display this text visibly in the profile editor for this profession. It is not optional. The notice protects both the professional and the platform.

Psychotherapist
openworkid.org/extensions/psychotherapist@1.0.0
v1.0.0Regulated ⚖9 fields

For licensed psychotherapists (approbiert), therapists in training, and Heilpraktiker Psychotherapie. Covers therapeutic approach, setting, and statutory insurance approval.

⚖ DEAls Psychotherapeut gelten besondere Datenschutz- und Werbebeschränkungen nach Heilmittelwerbegesetz (HWG) und Berufsordnung. Keine Patientenfälle — auch nicht anonymisiert — ohne ausdrückliche schriftliche Einwilligung. Keine Erfolgsversprechen, keine vergleichende Darstellung von Behandlungsergebnissen.
FieldTypeRequiredValues / Notes
approbationStatusenumrequired"approbiert" · "in-ausbildung" · "heilpraktiker"
therapeuticApproachstring[]required"VT" · "TP" · "AP" · "Systemisch" · "DBT" · "EMDR" · "Schematherapie" · "ACT" · "CFT" · "Hypnotherapie"
settingstring[]required"Einzeltherapie" · "Gruppentherapie" · "Paartherapie" · "Familientherapie" · "Online"
targetGroupsstring[]optional"Erwachsene" · "Kinder" · "Jugendliche" · "\u00C4ltere" · "Trauma" · "Pers\u00F6nlichkeitsst\u00F6rungen" · "Essst\u00F6rungen"
kassenzulassungbooleanrequiredWhether statutory health insurance (GKV) is accepted.
supervisorStatusbooleanoptionalWhether the professional is licensed to supervise therapists in training.
languagesstring[]optionalISO 639-1. Therapy languages offered.
regulatoryNoticestringrequiredPre-populated by the standard. Implementing platforms must display this to the professional during profile editing. Do not modify the text.
Physician
openworkid.org/extensions/physician@1.0.0
v1.0.0Regulated ⚖12 fields

For licensed physicians in clinical, ambulatory, or research settings. Covers specialty, subspecialty, setting, and expert witness activity.

⚖ DEAls Arzt gilt das Heilmittelwerbegesetz (HWG). Keine Heilsversprechen, keine Erfolgsgarantien, keine vergleichende Werbung, keine Vorher-Nachher-Darstellungen. Bitte prüfe dein Profil auf Konformität mit den Richtlinien deiner Ärztekammer.
FieldTypeRequiredValues / Notes
specialtystringrequiredFree-form. e.g. "Innere Medizin", "Chirurgie", "Psychiatrie"
subspecialtystringoptionalFree-form subspecialty or focus area.
settingstring[]required"Klinik" · "Niederlassung" · "MVZ" · "Forschung" · "Telemedizin"
kassenzulassungbooleanoptionalWhether statutory health insurance (GKV) is accepted in private practice.
gutachterTaetigkeitbooleanoptionalExpert witness or medical assessment activity.
publicationsintegeroptionalNumber of peer-reviewed publications.
languagesstring[]optionalISO 639-1. Languages in which patient care is offered.
certificationsstring[]optionalAdditional board certifications or Zusatzbezeichnungen. Free-form.
regulatoryNoticestringrequiredPre-populated. Must be displayed during profile editing.
Lawyer
openworkid.org/extensions/lawyer@1.0.0
v1.0.0Regulated ⚖10 fields

For admitted lawyers, in-house counsel, and legal consultants. Covers practice areas, jurisdiction, and mandate types.

⚖ DEAls Rechtsanwalt gilt die Bundesrechtsanwaltsordnung (BRAO) und das Rechtsdienstleistungsgesetz (RDG). Keine Erfolgsversprechen, keine Mandanten-Namen ohne ausdrückliche Einwilligung, keine vergleichende Werbung. Bitte prüfe dein Profil auf Konformität mit deiner Rechtsanwaltskammer.
FieldTypeRequiredValues / Notes
legalAreasstring[]requirede.g. "Arbeitsrecht", "M&A", "IP", "Datenschutz", "Strafrecht", "Familienrecht"
barAdmissionstring[]requiredJurisdictions of admission. e.g. "DE", "NY", "EU"
mandateTypesstring[]optional"Beratung" · "Prozessvertretung" · "Schiedsverfahren" · "Gutachten" · "Transaktionen" · "Compliance"
courtExperiencebooleanoptionalLitigation / court representation experience.
fachanwaltstitelstring[]optionalGerman specialist lawyer titles. e.g. "Fachanwalt f\u00FCr Arbeitsrecht"
languagesstring[]optionalISO 639-1. Languages in which legal services are offered.
rateRangeRateRangeoptional{ min, max, currency, unit: "hour" }
regulatoryNoticestringrequiredPre-populated. Must be displayed during profile editing.
Architect
openworkid.org/extensions/architect@1.0.0
v1.0.0Regulated ⚖13 fields

For licensed architects and urban planners. Uses HOAI service phases (Leistungsphasen) as the primary structuring element, which is unique to German-speaking markets.

⚖ DEDie Berufsbezeichnung "Architekt" ist in Deutschland geschützt und an die Mitgliedschaft in der Architektenkammer gebunden. Prüfe die Eintragungsvoraussetzungen deines Bundeslandes.
FieldTypeRequiredValues / Notes
leistungsphaseninteger[]requiredHOAI service phases. Values 1–9. e.g. [1,2,3,4,5]
buildingTypesstring[]requirede.g. "Wohnungsbau", "Gewerbebau", "Schulbau", "Denkmalschutz", "Industriebau"
certificationsstring[]optionale.g. "DGNB", "LEED", "BIM-Manager", "Energieberater"
bimExperiencebooleanoptionalBuilding Information Modelling experience.
softwarestring[]optionale.g. "Revit", "ArchiCAD", "AutoCAD", "Rhino", "SketchUp"
projectSizeRangeobjectoptional{ min, max, unit: "sqm"|"EUR" } — typical project scale
chamberMembershipstringoptionale.g. "Architektenkammer Bayern"
regulatoryNoticestringrequiredPre-populated. Must be displayed during profile editing.
Example JSON
architect extension
{
  "extensionId": "openworkid.org/extensions/architect",
  "extensionVersion": "1.0.0",
  "fields": {
    "leistungsphasen": [1, 2, 3, 4, 5],
    "buildingTypes": ["Wohnungsbau", "Denkmalschutz"],
    "certifications": ["DGNB", "BIM-Manager"],
    "bimExperience": true,
    "software": ["Revit", "ArchiCAD"],
    "projectSizeRange": { "min": 500, "max": 5000, "unit": "sqm" },
    "chamberMembership": "Architektenkammer Bayern"
  }
}

Propose an Extension

Extensions are community-authored. If your profession is not covered, open an RFC on GitHub. The process is lightweight — a YAML schema definition and a short justification.

RFC template skeleton
# RFC: extensions/[your-profession]

name: Your Profession Name
slug: your-profession
category: technical | business | regulated
regulatedIn: []  # ISO country codes if applicable

fields:
  - name: fieldName
    type: string | string[] | boolean | integer | enum | object
    required: true | false
    values: []  # for enums
    description: one sentence
Open an RFC on GitHub →