Each server exposes a scoped set of tools over the stateless MCP JSON-RPC transport.
Clients connect by posting tools/list or tools/call to the endpoint below.
Authentication. The transport accepts both Cobrainer JWTs and Cobrainer API keys ?
send JWTs as a Bearer token in the Authorization header and API keys in the
X-API-Key header. The listed authority on the credential gates which server can be
reached; per-tool checks (e.g. reviewer assignment) run on invocation.
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"query":{"type":"string","description":"Free-text retrieval query (1-1000 chars)."},"numberOfResults":{"type":"integer","format":"int32","description":"Results to return (1-100). Defaults to 5."}},"required":["query"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"chunks":{"type":"array","items":{"type":"string"}},"paradigms":{"type":"array","items":{"type":"string"}},"results":{"type":"array","items":{"type":"object","properties":{"chunk_index":{"type":["integer","null"],"format":"int32"},"document_id":{"type":["string","null"]},"graph_context":{"type":["object","null"],"properties":{"entities":{"type":"array","items":{"type":"object","properties":{"disputed":{"type":"boolean"},"id":{"type":"string"},"name":{"type":["string","null"]}}}}}},"paradigms":{"type":"array","items":{"type":"string"}},"scores":{"type":"object","properties":{"graph":{"type":["number","null"],"format":"double"},"lexical":{"type":["number","null"],"format":"double"},"rerank":{"type":["number","null"],"format":"double"},"rrf":{"type":["number","null"],"format":"double"},"vector":{"type":["number","null"],"format":"double"}}},"text":{"type":"string"}}}}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"documentId":{"type":"string","description":"document_id from a prior knowledge_base_search / knowledge_base_expand_entity result."},"chunkIndex":{"type":"integer","format":"int32","description":"chunk_index of the anchor chunk within that document."},"window":{"type":"integer","format":"int32","description":"Chunks to fetch on each side of the anchor (0-10). Defaults to 2."}},"required":["documentId","chunkIndex"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"chunks":{"type":"array","items":{"type":"object","properties":{"chunk_index":{"type":"integer","format":"int32"},"text":{"type":"string"}}}},"document_id":{"type":["string","null"]}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"entityId":{"type":"string","description":"Entity id from a knowledge_base_search result's graph_context.entities[].id."},"depth":{"type":"integer","format":"int32","description":"Hops to walk from the anchor (1-3). Defaults to 1."},"chunkLimit":{"type":"integer","format":"int32","description":"Max provenance chunks per entity/relation (0-50; 0 = structure only). Defaults to 5."}},"required":["entityId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"ExpandChunk":{"type":"object","properties":{"chunk_id":{"type":["string","null"]},"chunk_index":{"type":["integer","null"],"format":"int32"},"document_id":{"type":["string","null"]},"text":{"type":"string"}}}},"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"assertion":{"type":["string","null"]},"chunks":{"type":"array","items":{"$ref":"#/$defs/ExpandChunk"}},"confidence":{"type":["number","null"],"format":"double"},"depth":{"type":["integer","null"],"format":"int32"},"disputed":{"type":"boolean"},"id":{"type":"string"},"kind":{"type":["string","null"]},"name":{"type":["string","null"]}}}},"relations":{"type":"array","items":{"type":"object","properties":{"chunks":{"type":"array","items":{"$ref":"#/$defs/ExpandChunk"}},"confidence":{"type":["number","null"],"format":"double"},"from":{"type":["string","null"]},"id":{"type":"string"},"kind":{"type":["string","null"]},"to":{"type":["string","null"]}}}}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"query":{"type":"string","description":"Free-text retrieval query (1-1000 chars)."},"numberOfResults":{"type":"integer","format":"int32","description":"Results to return after fusion/rerank (1-100). Defaults to 5."},"paradigms":{"type":"array","items":{"type":"string"},"description":"Methods to fuse (vector, lexical, graph). Omit for all three."},"rerank":{"type":"boolean","description":"Whether to rerank. Defaults to true."}},"required":["query"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"chunks":{"type":"array","items":{"type":"string"}},"paradigms":{"type":"array","items":{"type":"string"}},"results":{"type":"array","items":{"type":"object","properties":{"chunk_index":{"type":["integer","null"],"format":"int32"},"document_id":{"type":["string","null"]},"graph_context":{"type":["object","null"],"properties":{"entities":{"type":"array","items":{"type":"object","properties":{"disputed":{"type":"boolean"},"id":{"type":"string"},"name":{"type":["string","null"]}}}}}},"paradigms":{"type":"array","items":{"type":"string"}},"scores":{"type":"object","properties":{"graph":{"type":["number","null"],"format":"double"},"lexical":{"type":["number","null"],"format":"double"},"rerank":{"type":["number","null"],"format":"double"},"rrf":{"type":["number","null"],"format":"double"},"vector":{"type":["number","null"],"format":"double"}}},"text":{"type":"string"}}}}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID whose role embeddings to search against."},"roleId":{"type":"string","description":"Source role UUID."},"version":{"type":"integer","format":"int32","description":"Source role version number."},"topK":{"type":"integer","format":"int32","description":"Max hits. Defaults to 3, capped at 25."}},"required":["jobArchitectureId","roleId","version"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string"},"jobArchitectureId":{"type":"string"},"jobArchitectureTitle":{"type":"string"},"layer":{"type":"string","description":"'FAMILY', 'CLUSTER' or 'ROLE'."},"similarityScore":{"type":"number","format":"double","description":"Cosine similarity; higher = more similar."},"title":{"type":"string","description":"English title."},"translations":{"type":"array","items":{"type":"object","properties":{"description":{"type":["string","null"],"description":"On families/clusters this is the main descriptive text ('structured' is always null there). On roles/levels it is only an internal working summary: machine-translated languages leave it blank ? blank is normal, not missing content ? and the profile content users see lives in 'structured' (which may itself contain a section named 'Description')."},"language":{"type":"string","description":"BCP-47 tag (e.g. 'en-US')."},"structured":{"description":"Content sections (e.g. responsibilities, qualifications); TASKS sections are excluded, see 'tasks'. Pass verbatim back to 'update_job_role' / 'update_job_level' on a partial edit to preserve them.","type":["array","null"],"items":{"type":"object","properties":{"id":{"type":["string","null"],"description":"Stable section-instance id. Defaults to 'tag' when omitted."},"tag":{"type":"string","description":"Section tag (e.g. 'responsibilities'). Must match a section from 'get_job_profile_template'."},"value":{"type":"string","description":"Plain text, in the author's language."}},"required":["tag","value"]}},"title":{"type":"string"}},"required":["language","title"]}}},"required":["itemId","jobArchitectureId","jobArchitectureTitle","layer","similarityScore","title","translations"]}}},"required":["items"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpCobrainerTemplateSectionView":{"type":"object","properties":{"contentType":{"type":"string","description":"BULLET_POINTS, SENTENCES or TASKS."},"guidance":{"type":"string","description":"Follow when authoring this section."},"maxNumberOfItems":{"type":"integer","format":"int32"},"minNumberOfItems":{"type":"integer","format":"int32"},"name":{"type":"string"},"sectionId":{"type":"string","description":"Use as the 'tag' when authoring structured content."}},"required":["contentType","guidance","maxNumberOfItems","minNumberOfItems","name","sectionId"]},"McpSkillLimits":{"type":"object","properties":{"expectedNumberOfSkills":{"type":"integer","format":"int32","description":"Target skill count ? aim for this when detecting skills."},"maximumNumberOfSkills":{"type":"integer","format":"int32","description":"Hard cap."},"skillDetectionPreference":{"type":["string","null"],"description":"Free-text soft preference biasing skill detection (max 5000 chars)."}},"required":["expectedNumberOfSkills","maximumNumberOfSkills"]}},"type":"object","properties":{"template":{"type":["object","null"],"properties":{"activatedAt":{"type":["string","null"],"format":"date-time","description":"Null = never activated."},"createdAt":{"type":"string","format":"date-time"},"description":{"type":"string"},"jobLevelSections":{"type":"array","items":{"$ref":"#/$defs/McpCobrainerTemplateSectionView"}},"jobRoleSections":{"type":"array","items":{"$ref":"#/$defs/McpCobrainerTemplateSectionView"}},"levelSkillLimits":{"$ref":"#/$defs/McpSkillLimits"},"name":{"type":"string"},"roleSkillLimits":{"$ref":"#/$defs/McpSkillLimits"},"status":{"type":"string","description":"DRAFT, ACTIVE or DEPRECATED."},"templateId":{"type":"string"}},"required":["createdAt","description","jobLevelSections","jobRoleSections","levelSkillLimits","name","roleSkillLimits","status","templateId"],"description":"Null = none active ? surface this to the user and do not author template content blindly."}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"templateId":{"type":"string","description":"Cobrainer template UUID."}},"required":["templateId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpCobrainerTemplateSectionView":{"type":"object","properties":{"contentType":{"type":"string","description":"BULLET_POINTS, SENTENCES or TASKS."},"guidance":{"type":"string","description":"Follow when authoring this section."},"maxNumberOfItems":{"type":"integer","format":"int32"},"minNumberOfItems":{"type":"integer","format":"int32"},"name":{"type":"string"},"sectionId":{"type":"string","description":"Use as the 'tag' when authoring structured content."}},"required":["contentType","guidance","maxNumberOfItems","minNumberOfItems","name","sectionId"]},"McpSkillLimits":{"type":"object","properties":{"expectedNumberOfSkills":{"type":"integer","format":"int32","description":"Target skill count ? aim for this when detecting skills."},"maximumNumberOfSkills":{"type":"integer","format":"int32","description":"Hard cap."},"skillDetectionPreference":{"type":["string","null"],"description":"Free-text soft preference biasing skill detection (max 5000 chars)."}},"required":["expectedNumberOfSkills","maximumNumberOfSkills"]}},"type":"object","properties":{"template":{"type":["object","null"],"properties":{"activatedAt":{"type":["string","null"],"format":"date-time","description":"Null = never activated."},"createdAt":{"type":"string","format":"date-time"},"description":{"type":"string"},"jobLevelSections":{"type":"array","items":{"$ref":"#/$defs/McpCobrainerTemplateSectionView"}},"jobRoleSections":{"type":"array","items":{"$ref":"#/$defs/McpCobrainerTemplateSectionView"}},"levelSkillLimits":{"$ref":"#/$defs/McpSkillLimits"},"name":{"type":"string"},"roleSkillLimits":{"$ref":"#/$defs/McpSkillLimits"},"status":{"type":"string","description":"DRAFT, ACTIVE or DEPRECATED."},"templateId":{"type":"string"}},"required":["createdAt","description","jobLevelSections","jobRoleSections","levelSkillLimits","name","roleSkillLimits","status","templateId"],"description":"Null = unknown template id."}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID the role/level belongs to."},"itemId":{"type":"string","description":"UUID of the role or level whose comments to list."},"language":{"type":"string","description":"Optional BCP-47 source-language tag (e.g. 'de-DE'). Omit to return comments in every source language."},"includeResolved":{"type":"boolean","description":"Include resolved/closed comments too. Defaults to false (only open comments)."},"version":{"type":"integer","format":"int32","description":"Version number to read comments for. Omit to use the current version (published, else reviewed, else latest)."},"includeStale":{"type":"boolean","description":"Include stale section comments ('unresolved'/'ambiguous' anchor) too. Defaults to false."}},"required":["jobArchitectureId","itemId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"comments":{"description":"Flattened: a reply carries the 'parentCommentId' of the comment it answers.","type":"array","items":{"type":"object","properties":{"anchorStatus":{"type":["string","null"],"description":"Vs current content: 'anchored' (highlighted text still exists), 'unresolved' (not found) or 'ambiguous' (matches more than one place). Treat 'unresolved'/'ambiguous' as stale ? do not act on them unless the user explicitly refers to them. Null for 'title'/'skill' comments."},"authorId":{"type":["string","null"]},"authorName":{"type":["string","null"]},"commentId":{"type":"string"},"content":{"type":"string"},"language":{"type":"string","description":"BCP-47 tag."},"parentCommentId":{"type":["string","null"],"description":"Null = top-level comment."},"quotedText":{"type":["string","null"],"description":"Text the user highlighted ? what the feedback is about."},"resolved":{"type":"boolean"},"resolvedInVersion":{"type":["integer","null"],"format":"int32","description":"Version that resolved the thread. Null = open."},"sectionId":{"type":["string","null"],"description":"Only for 'description-section'."},"skillId":{"type":["string","null"],"description":"Only for 'skill'."},"stepIndex":{"type":["integer","null"],"format":"int32","description":"Only for work-task workflow-step targets."},"targetKind":{"type":"string","description":"Profile or work-task target kind."},"version":{"type":["integer","null"],"format":"int32","description":"Content version the comment targets."}},"required":["commentId","content","language","resolved","targetKind"]}}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"itemId":{"type":"string","description":"Role or level UUID."}},"required":["jobArchitectureId","itemId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpJobProfileContentElementInput":{"type":"object","properties":{"id":{"type":["string","null"],"description":"Stable section-instance id. Defaults to 'tag' when omitted."},"tag":{"type":"string","description":"Section tag (e.g. 'responsibilities'). Must match a section from 'get_job_profile_template'."},"value":{"type":"string","description":"Plain text, in the author's language."}},"required":["tag","value"]}},"type":"object","properties":{"version":{"type":["object","null"],"properties":{"comment":{"type":["string","null"]},"competencies":{"description":"Referenced by the skills' 'competencyId'.","type":"array","items":{"type":"object","properties":{"competencyId":{"type":"string","description":"Referenced by the grouped skills' 'competencyId'."},"description":{"type":["string","null"]},"title":{"type":"string","description":"Falls back to English when untranslated."}},"required":["competencyId","title"]}},"englishDescription":{"type":["string","null"],"description":"Internal working summary, not part of the rendered profile. Often blank ? blank is normal, not missing content. The profile content users see lives in 'englishStructured'."},"englishStructured":{"description":"English content sections. Pass verbatim back to 'update_job_role' / 'update_job_level' on a partial edit to preserve them.","type":["array","null"],"items":{"$ref":"#/$defs/McpJobProfileContentElementInput"}},"englishTitle":{"type":"string","description":"Empty when no English translation exists."},"itemId":{"type":"string","description":"Role or level UUID."},"jobArchitectureId":{"type":"string"},"layer":{"type":"string","description":"'ROLE' or 'LEVEL'."},"publishedAt":{"type":["string","null"],"format":"date-time","description":"Null = still draft."},"reviewedAt":{"type":["string","null"],"format":"date-time","description":"Null = unreviewed."},"sectionTags":{"type":["array","null"],"items":{"type":"object","properties":{"names":{"type":"array","items":{"type":"object","properties":{"language":{"type":"string","description":"BCP-47 tag."},"text":{"type":"string"}},"required":["language","text"]}},"sectionId":{"type":"string","description":"Matches the 'id' of structured content elements in this section."},"type":{"type":"string","description":"Content format: BULLET_POINTS, SENTENCES or TASKS. TASKS content lives in 'tasks'; never author structured text for it."}},"required":["names","sectionId"]}},"skills":{"type":"array","items":{"type":"object","properties":{"competencyId":{"type":["string","null"],"description":"Matches an entry in 'competencies'. Null = ungrouped."},"id":{"type":"string","description":"Skill UUID."},"level":{"type":"integer","description":"Required proficiency level (1..5; language skills 1..6)."},"skillType":{"type":["string","null"],"description":"hard, soft or language."},"title":{"type":"string"}},"required":["id","level","title"]}},"translations":{"type":"array","items":{"type":"object","properties":{"description":{"type":["string","null"],"description":"On families/clusters this is the main descriptive text ('structured' is always null there). On roles/levels it is only an internal working summary: machine-translated languages leave it blank ? blank is normal, not missing content ? and the profile content users see lives in 'structured' (which may itself contain a section named 'Description')."},"language":{"type":"string","description":"BCP-47 tag (e.g. 'en-US')."},"structured":{"description":"Content sections (e.g. responsibilities, qualifications); TASKS sections are excluded, see 'tasks'. Pass verbatim back to 'update_job_role' / 'update_job_level' on a partial edit to preserve them.","type":["array","null"],"items":{"$ref":"#/$defs/McpJobProfileContentElementInput"}},"title":{"type":"string"}},"required":["language","title"]}},"version":{"type":"integer","format":"int32","description":"Monotonically increasing, starting at 1."}},"required":["englishTitle","itemId","jobArchitectureId","layer","skills","translations","version"],"description":"Null = unknown architecture, item or version."}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"itemId":{"type":"string","description":"Role or level UUID."},"version":{"type":"integer","format":"int32","description":"Version number."}},"required":["jobArchitectureId","itemId","version"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpJobProfileContentElementInput":{"type":"object","properties":{"id":{"type":["string","null"],"description":"Stable section-instance id. Defaults to 'tag' when omitted."},"tag":{"type":"string","description":"Section tag (e.g. 'responsibilities'). Must match a section from 'get_job_profile_template'."},"value":{"type":"string","description":"Plain text, in the author's language."}},"required":["tag","value"]}},"type":"object","properties":{"version":{"type":["object","null"],"properties":{"comment":{"type":["string","null"]},"competencies":{"description":"Referenced by the skills' 'competencyId'.","type":"array","items":{"type":"object","properties":{"competencyId":{"type":"string","description":"Referenced by the grouped skills' 'competencyId'."},"description":{"type":["string","null"]},"title":{"type":"string","description":"Falls back to English when untranslated."}},"required":["competencyId","title"]}},"englishDescription":{"type":["string","null"],"description":"Internal working summary, not part of the rendered profile. Often blank ? blank is normal, not missing content. The profile content users see lives in 'englishStructured'."},"englishStructured":{"description":"English content sections. Pass verbatim back to 'update_job_role' / 'update_job_level' on a partial edit to preserve them.","type":["array","null"],"items":{"$ref":"#/$defs/McpJobProfileContentElementInput"}},"englishTitle":{"type":"string","description":"Empty when no English translation exists."},"itemId":{"type":"string","description":"Role or level UUID."},"jobArchitectureId":{"type":"string"},"layer":{"type":"string","description":"'ROLE' or 'LEVEL'."},"publishedAt":{"type":["string","null"],"format":"date-time","description":"Null = still draft."},"reviewedAt":{"type":["string","null"],"format":"date-time","description":"Null = unreviewed."},"sectionTags":{"type":["array","null"],"items":{"type":"object","properties":{"names":{"type":"array","items":{"type":"object","properties":{"language":{"type":"string","description":"BCP-47 tag."},"text":{"type":"string"}},"required":["language","text"]}},"sectionId":{"type":"string","description":"Matches the 'id' of structured content elements in this section."},"type":{"type":"string","description":"Content format: BULLET_POINTS, SENTENCES or TASKS. TASKS content lives in 'tasks'; never author structured text for it."}},"required":["names","sectionId"]}},"skills":{"type":"array","items":{"type":"object","properties":{"competencyId":{"type":["string","null"],"description":"Matches an entry in 'competencies'. Null = ungrouped."},"id":{"type":"string","description":"Skill UUID."},"level":{"type":"integer","description":"Required proficiency level (1..5; language skills 1..6)."},"skillType":{"type":["string","null"],"description":"hard, soft or language."},"title":{"type":"string"}},"required":["id","level","title"]}},"translations":{"type":"array","items":{"type":"object","properties":{"description":{"type":["string","null"],"description":"On families/clusters this is the main descriptive text ('structured' is always null there). On roles/levels it is only an internal working summary: machine-translated languages leave it blank ? blank is normal, not missing content ? and the profile content users see lives in 'structured' (which may itself contain a section named 'Description')."},"language":{"type":"string","description":"BCP-47 tag (e.g. 'en-US')."},"structured":{"description":"Content sections (e.g. responsibilities, qualifications); TASKS sections are excluded, see 'tasks'. Pass verbatim back to 'update_job_role' / 'update_job_level' on a partial edit to preserve them.","type":["array","null"],"items":{"$ref":"#/$defs/McpJobProfileContentElementInput"}},"title":{"type":"string"}},"required":["language","title"]}},"version":{"type":"integer","format":"int32","description":"Monotonically increasing, starting at 1."}},"required":["englishTitle","itemId","jobArchitectureId","layer","skills","translations","version"],"description":"Null = unknown architecture, item or version."}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."}},"required":["jobArchitectureId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpJobProfileTemplateSection":{"type":"object","properties":{"contentType":{"type":"string","description":"BULLET_POINTS, SENTENCES or TASKS. Never author structured text for TASKS sections."},"guidance":{"type":"string","description":"Follow when authoring this section."},"maxNumberOfItems":{"type":"integer","format":"int32"},"minNumberOfItems":{"type":"integer","format":"int32"},"name":{"type":"string","description":"English name (e.g. 'Responsibilities')."},"names":{"description":"Localized display names.","type":"array","items":{"type":"object","properties":{"language":{"type":"string","description":"BCP-47 tag."},"text":{"type":"string"}},"required":["language","text"]}},"origin":{"type":"string","description":"e.g. SYSTEM, CUSTOM."},"sectionId":{"type":"string","description":"Use as the structured element 'id' when authoring this section."}},"required":["contentType","guidance","maxNumberOfItems","minNumberOfItems","name","origin","sectionId"]},"McpSkillLimits":{"type":"object","properties":{"expectedNumberOfSkills":{"type":"integer","format":"int32","description":"Target skill count ? aim for this when detecting skills."},"maximumNumberOfSkills":{"type":"integer","format":"int32","description":"Hard cap."},"skillDetectionPreference":{"type":["string","null"],"description":"Free-text soft preference biasing skill detection (max 5000 chars)."}},"required":["expectedNumberOfSkills","maximumNumberOfSkills"]}},"type":"object","properties":{"template":{"type":["object","null"],"properties":{"description":{"type":"string"},"jobLevelSections":{"description":"Sections to author for a job level.","type":"array","items":{"$ref":"#/$defs/McpJobProfileTemplateSection"}},"jobRoleSections":{"description":"Sections to author for a job role.","type":"array","items":{"$ref":"#/$defs/McpJobProfileTemplateSection"}},"levelSkillLimits":{"$ref":"#/$defs/McpSkillLimits"},"name":{"type":"string"},"roleSkillLimits":{"$ref":"#/$defs/McpSkillLimits"},"templateId":{"type":"string"}},"required":["description","jobLevelSections","jobRoleSections","levelSkillLimits","name","roleSkillLimits","templateId"],"description":"Null = no template assigned yet ? surface this to the user and do not author profile content until one is configured."}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."}},"required":["jobArchitectureId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"Map_String.String_":{"type":"object"}},"type":"object","properties":{"availableLanguages":{"description":"BCP-47 tags used in this architecture. Pass the user's language to 'get_nodes' via 'languages'; English is always returned.","type":"array","items":{"type":"string"}},"clustersCount":{"type":"integer","format":"int32"},"companyContext":{"type":["object","null"],"properties":{"businessUnits":{"description":"Business units the architecture covers.","type":"array","items":{"type":"string"}},"companyDescription":{"type":["string","null"],"description":"What the company does."},"companyName":{"type":["string","null"],"description":"Name of the company the architecture was built for."},"companyPriorities":{"type":["string","null"],"description":"The company's strategic/future priorities."},"companySize":{"type":"integer","format":"int32","description":"Approximate employee count."},"primaryGoalOtherText":{"type":["string","null"],"description":"Free-text goal when 'primaryGoals' contains 'other'."},"primaryGoals":{"description":"Primary goals driving the architecture: 'eu_pay_transparency', 'reorganization', 'sap_success_factors' or 'other'.","type":"array","items":{"type":"string"}}},"required":["companySize"],"description":"Company context captured when the architecture was created: what the company does, its future priorities, size, business units and primary goals. Null when never provided."},"families":{"description":"Full tree: families with clusters, clusters with roles, roles with levels. Metadata only, including titles, ids, localized titles, external ids and counts ? fetch node content via 'get_nodes'.","type":"array","items":{"type":"object","properties":{"clusterCount":{"type":"integer","format":"int32"},"clusters":{"type":"array","items":{"type":"object","properties":{"externalId":{"type":["string","null"],"description":"Customer-supplied external id."},"id":{"type":"string"},"levelsCount":{"type":"integer","format":"int32","description":"Rollup, includes nested."},"localizedTitles":{"$ref":"#/$defs/Map_String.String_","description":"Localized titles differing from 'title', by BCP-47 tag."},"roles":{"type":"array","items":{"type":"object","properties":{"externalId":{"type":["string","null"],"description":"Customer-supplied external id."},"id":{"type":"string"},"levels":{"type":"array","items":{"type":"object","properties":{"externalId":{"type":["string","null"],"description":"Customer-supplied external id."},"id":{"type":"string"},"localizedTitles":{"$ref":"#/$defs/Map_String.String_","description":"Localized titles differing from 'title', by BCP-47 tag."},"reviewerUserId":{"type":["string","null"],"description":"User UUID of the assigned reviewer; null when none."},"title":{"type":"string","description":"English title."}},"required":["id","localizedTitles","title"]}},"levelsCount":{"type":"integer","format":"int32"},"localizedTitles":{"$ref":"#/$defs/Map_String.String_","description":"Localized titles differing from 'title', by BCP-47 tag."},"reviewerUserId":{"type":["string","null"],"description":"User UUID of the assigned reviewer; null when none."},"title":{"type":"string","description":"English title."}},"required":["id","levels","levelsCount","localizedTitles","title"]}},"rolesCount":{"type":"integer","format":"int32","description":"Rollup, includes nested."},"title":{"type":"string","description":"English title."}},"required":["id","levelsCount","localizedTitles","roles","rolesCount","title"]}},"externalId":{"type":["string","null"],"description":"Customer-supplied external id."},"id":{"type":"string"},"levelsCount":{"type":"integer","format":"int32","description":"Rollup, includes nested."},"localizedTitles":{"$ref":"#/$defs/Map_String.String_","description":"Localized titles differing from 'title', by BCP-47 tag."},"rolesCount":{"type":"integer","format":"int32","description":"Rollup, includes nested."},"title":{"type":"string","description":"English title."}},"required":["clusterCount","clusters","id","levelsCount","localizedTitles","rolesCount","title"]}},"familiesCount":{"type":"integer","format":"int32"},"jobArchitectureId":{"type":"string"},"levelsCount":{"type":"integer","format":"int32"},"localizedTitles":{"$ref":"#/$defs/Map_String.String_","description":"Localized titles differing from 'title', by BCP-47 tag."},"rolesCount":{"type":"integer","format":"int32"},"title":{"type":"string","description":"English title of the job architecture."}},"required":["clustersCount","families","familiesCount","jobArchitectureId","levelsCount","rolesCount"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"levelId":{"type":"string","description":"Job level UUID."}},"required":["levelId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"configured":{"type":"boolean","description":"False = this job level is not pinned to a leveling-framework level; every other field is then null."},"currency":{"type":["string","null"],"description":"ISO 4217 currency of the framework; regional bands may override it."},"frameworkId":{"type":["string","null"]},"frameworkName":{"type":["string","null"]},"level":{"type":["object","null"],"properties":{"compensation":{"description":"The level's pay. The entry without a 'region' is the level's default pay; any further entries are regional bands. Empty when no pay has been set.","type":"array","items":{"type":"object","properties":{"currency":{"type":["string","null"],"description":"ISO 4217. A band may use a different currency from the framework's."},"fringeBenefits":{"type":["string","null"]},"longTermIncentive":{"type":["string","null"]},"name":{"type":["string","null"],"description":"Label for the band, e.g. \"Denmark\". Absent on the level's default pay."},"payType":{"type":["string","null"],"description":"SALARIED or HOURLY."},"region":{"type":["string","null"],"description":"Country or region this band applies to. Absent on the level's default pay."},"salaryMaximum":{"type":["number","null"]},"salaryMidpoint":{"type":["number","null"]},"salaryMinimum":{"type":["number","null"]},"targetBonus":{"type":["string","null"]}}}},"description":{"type":"string"},"employmentType":{"type":["string","null"],"description":"TARIF or AT. Applies to the whole level."},"level":{"type":"integer","format":"int32","description":"1-based within the track."},"name":{"type":"string"},"payGrade":{"type":["string","null"],"description":"Applies to the whole level, every pay band included."},"progressionCriteria":{"type":["string","null"]}},"required":["description","level","name"],"description":"The framework level itself, including its default pay and every regional band."},"levelId":{"type":"string","description":"The job level this pay context was resolved for ? not the framework level below."},"trackId":{"type":["string","null"]},"trackName":{"type":["string","null"]}},"required":["configured","levelId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"frameworkId":{"type":"string","description":"Leveling framework UUID."},"jobArchitectureId":{"type":"string","description":"Optional job architecture UUID to scope the lookup to."}},"required":["frameworkId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"createdAt":{"type":"string","format":"date-time"},"currency":{"type":["string","null"],"description":"ISO 4217, for salary data on the framework's levels."},"description":{"type":"string"},"frameworkId":{"type":"string"},"jobArchitectureId":{"type":["string","null"],"description":"Null for tenant- or globally-scoped frameworks."},"lastUpdate":{"type":"string","format":"date-time"},"name":{"type":"string"},"ownerScope":{"type":"string","description":"GLOBAL (system-wide) or TENANT (owned by the caller's tenant)."},"tracks":{"description":"Career tracks (lanes), in defined ordering.","type":"array","items":{"type":"object","properties":{"description":{"type":"string"},"levels":{"description":"Ordered by ascending level number.","type":"array","items":{"type":"object","properties":{"compensation":{"description":"The level's pay. The entry without a 'region' is the level's default pay; any further entries are regional bands. Empty when no pay has been set.","type":"array","items":{"type":"object","properties":{"currency":{"type":["string","null"],"description":"ISO 4217. A band may use a different currency from the framework's."},"fringeBenefits":{"type":["string","null"]},"longTermIncentive":{"type":["string","null"]},"name":{"type":["string","null"],"description":"Label for the band, e.g. \"Denmark\". Absent on the level's default pay."},"payType":{"type":["string","null"],"description":"SALARIED or HOURLY."},"region":{"type":["string","null"],"description":"Country or region this band applies to. Absent on the level's default pay."},"salaryMaximum":{"type":["number","null"]},"salaryMidpoint":{"type":["number","null"]},"salaryMinimum":{"type":["number","null"]},"targetBonus":{"type":["string","null"]}}}},"description":{"type":"string"},"employmentType":{"type":["string","null"],"description":"TARIF or AT. Applies to the whole level."},"level":{"type":"integer","format":"int32","description":"1-based within the track."},"name":{"type":"string"},"payGrade":{"type":["string","null"],"description":"Applies to the whole level, every pay band included."},"progressionCriteria":{"type":["string","null"]}},"required":["description","level","name"]}},"name":{"type":"string"},"trackId":{"type":"string"}},"required":["description","levels","name","trackId"]}},"type":{"type":"string","description":"MARKET, UNION or CUSTOM."}},"required":["createdAt","description","frameworkId","lastUpdate","name","ownerScope","tracks","type"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Optional job architecture UUID to scope recommendations."}},"required":[]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpNextAction":{"type":"object","properties":{"code":{"type":"string"},"priority":{"type":"integer","format":"int32"},"reason":{"type":"object","properties":{"actual":{"type":["integer","null"],"format":"int32"},"code":{"type":"string"},"required":{"type":["integer","null"],"format":"int32"}},"required":["code"]},"requiredCapability":{"type":["string","null"]},"source":{"type":"string"},"status":{"type":"string"},"target":{"type":"object","properties":{"itemId":{"type":["string","null"]},"jobArchitectureId":{"type":"string"},"kind":{"type":"string"},"notificationIds":{"type":"array","items":{"type":"string"}},"versionNo":{"type":["integer","null"],"format":"int32"}},"required":["jobArchitectureId","kind"]}},"required":["code","priority","reason","source","status","target"]}},"type":"object","properties":{"alternativeActions":{"type":"array","items":{"$ref":"#/$defs/McpNextAction"}},"architectureProgress":{"type":"array","items":{"type":"object","properties":{"jobArchitectureId":{"type":"string"},"publicationCompleted":{"type":"integer","format":"int32"},"publicationTotal":{"type":"integer","format":"int32"},"setupCompleted":{"type":"integer","format":"int32"},"setupTotal":{"type":"integer","format":"int32"},"title":{"type":"string"}},"required":["jobArchitectureId","publicationCompleted","publicationTotal","setupCompleted","setupTotal","title"]}},"outcome":{"type":"string"},"primaryAction":{"anyOf":[{"type":"null"},{"$ref":"#/$defs/McpNextAction"}]}},"required":["alternativeActions","architectureProgress","outcome"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID all nodes must belong to."},"nodes":{"type":"array","items":{"type":"object","properties":{"nodeId":{"type":"string","description":"Family, cluster, role or level UUID."},"version":{"type":["integer","null"],"format":"int32","description":"Role/level only: return this past version's content instead of the current state. Omit for current. List versions via 'list_job_architecture_versions'."}},"required":["nodeId"]},"description":"Nodes to fetch (max 25), each an object with 'nodeId' and an optional 'version'. May mix families, clusters, roles and levels. 'version' is applied only to roles/levels; repeat a role/level id with different versions to fetch several at once."},"languages":{"type":"array","items":{"type":"string"},"description":"Optional BCP-47 language tags to return localized content in (e.g. ['de-DE'] or ['fr-FR']). Pass the language the user is writing in to avoid shipping every language's structured content; English is always included as the canonical base. Available tags are listed in 'get_jsa_overview.availableLanguages'. Omit to return all languages."},"scope":{"type":"object","properties":{"parentIds":{"description":"Architecture, family, cluster or role UUIDs whose descendants to return. Pass the job architecture id for the whole architecture.","type":"array","items":{"type":"string"}},"types":{"description":"Node types to return from below those parents.","type":"array","items":{"type":"string","enum":["FAMILY","CLUSTER","ROLE","LEVEL"]}}},"required":["parentIds","types"],"description":"Fetch every current node of 'types' below 'parentIds' (max 200 matches). Combined with 'nodes' when both are given. Parents outside this architecture are returned in 'notFound'."}},"required":["jobArchitectureId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpAttachedSkill":{"type":"object","properties":{"competencyId":{"type":["string","null"],"description":"Matches an entry in 'competencies'. Null = ungrouped."},"id":{"type":"string","description":"Skill UUID in the skill graph."},"level":{"type":"integer","description":"Required proficiency level (1..5; language skills 1..6)."},"skillType":{"type":["string","null"],"description":"hard, soft or language."},"title":{"type":"string","description":"In the snapshot's language."}},"required":["id","level","title"]},"McpCompetency":{"type":"object","properties":{"competencyId":{"type":"string","description":"Referenced by the grouped skills' 'competencyId'."},"description":{"type":["string","null"]},"title":{"type":"string","description":"Falls back to English when untranslated."}},"required":["competencyId","title"]},"McpSectionTag":{"type":"object","properties":{"names":{"type":"array","items":{"type":"object","properties":{"language":{"type":"string","description":"BCP-47 tag."},"text":{"type":"string"}},"required":["language","text"]}},"sectionId":{"type":"string","description":"Matches the 'id' of structured content elements in this section."},"type":{"type":"string","description":"Content format: BULLET_POINTS, SENTENCES or TASKS. TASKS content lives in 'tasks'; never author structured text for it."}},"required":["names","sectionId"]},"McpTranslation":{"type":"object","properties":{"description":{"type":["string","null"],"description":"On families/clusters this is the main descriptive text ('structured' is always null there). On roles/levels it is only an internal working summary: machine-translated languages leave it blank ? blank is normal, not missing content ? and the profile content users see lives in 'structured' (which may itself contain a section named 'Description')."},"language":{"type":"string","description":"BCP-47 tag (e.g. 'en-US')."},"structured":{"description":"Content sections (e.g. responsibilities, qualifications); TASKS sections are excluded, see 'tasks'. Pass verbatim back to 'update_job_role' / 'update_job_level' on a partial edit to preserve them.","type":["array","null"],"items":{"type":"object","properties":{"id":{"type":["string","null"],"description":"Stable section-instance id. Defaults to 'tag' when omitted."},"tag":{"type":"string","description":"Section tag (e.g. 'responsibilities'). Must match a section from 'get_job_profile_template'."},"value":{"type":"string","description":"Plain text, in the author's language."}},"required":["tag","value"]}},"title":{"type":"string"}},"required":["language","title"]},"McpWorkTask":{"type":"object","properties":{"description":{"type":["string","null"]},"generationState":{"type":"string","description":"QUEUED, STARTED, FINISHED or FAILED. Only FINISHED tasks accept 'update_work_task'."},"order":{"type":"integer","format":"int32","description":"Position in the TASKS section, ascending from 0."},"requiredSkills":{"type":"array","items":{"type":"object","properties":{"level":{"type":"integer","description":"Proficiency 0..6."},"skillId":{"type":"string"}},"required":["level","skillId"]}},"taskId":{"type":"string"},"title":{"type":"string","description":"Empty until generation produced one."},"version":{"type":"integer","format":"int32","description":"Immutable task version pinned to this role/level version."}},"required":["generationState","order","taskId","title","version"]}},"type":"object","properties":{"clusters":{"type":"array","items":{"type":"object","properties":{"clusterId":{"type":"string"},"englishDescription":{"type":["string","null"],"description":"The cluster's primary user-facing text ? unlike on roles/levels, this is real content."},"englishTitle":{"type":"string","description":"Empty when no English translation exists."},"externalId":{"type":["string","null"],"description":"Customer-supplied external id."},"familyId":{"type":"string","description":"Parent family UUID."},"jobArchitectureId":{"type":"string"},"levelsCount":{"type":"integer","format":"int32","description":"Rollup, includes nested."},"rolesCount":{"type":"integer","format":"int32","description":"Rollup, includes nested."},"translations":{"description":"Title + description per language; no structured content. 'description' here is the primary user-facing text.","type":"array","items":{"$ref":"#/$defs/McpTranslation"}}},"required":["clusterId","englishTitle","familyId","jobArchitectureId","levelsCount","rolesCount","translations"]}},"families":{"type":"array","items":{"type":"object","properties":{"clusterCount":{"type":"integer","format":"int32"},"englishDescription":{"type":["string","null"],"description":"The family's primary user-facing text ? unlike on roles/levels, this is real content."},"englishTitle":{"type":"string","description":"Empty when no English translation exists."},"externalId":{"type":["string","null"],"description":"Customer-supplied external id."},"familyId":{"type":"string"},"jobArchitectureId":{"type":"string"},"levelsCount":{"type":"integer","format":"int32","description":"Rollup, includes nested."},"rolesCount":{"type":"integer","format":"int32","description":"Rollup, includes nested."},"translations":{"description":"Title + description per language; no structured content. 'description' here is the primary user-facing text.","type":"array","items":{"$ref":"#/$defs/McpTranslation"}}},"required":["clusterCount","englishTitle","familyId","jobArchitectureId","levelsCount","rolesCount","translations"]}},"levels":{"type":"array","items":{"type":"object","properties":{"canAssignReviewer":{"type":["boolean","null"],"description":"False = do not propose a reviewer change."},"competencies":{"description":"Referenced by the skills' 'competencyId'.","type":"array","items":{"$ref":"#/$defs/McpCompetency"}},"currentVersion":{"type":["integer","null"],"format":"int32","description":"Version this content reflects; null before any version exists. Past version: 'version' arg of 'get_nodes'; list via 'list_job_architecture_versions'."},"isArchived":{"type":"boolean","description":"Archived = hidden but recoverable."},"jobArchitectureId":{"type":"string"},"jobProfileId":{"type":["string","null"],"description":"Current job profile UUID. Null = none exists yet."},"levelId":{"type":"string"},"reviewerUserId":{"type":["string","null"]},"roleId":{"type":"string","description":"Parent role UUID."},"sectionTags":{"description":"Resolves a structured element's 'id' to localized section names. Null = no job profile.","type":["array","null"],"items":{"$ref":"#/$defs/McpSectionTag"}},"skills":{"type":"array","items":{"$ref":"#/$defs/McpAttachedSkill"}},"tasks":{"description":"Work tasks of the TASKS section, in order. Null = no TASKS section; empty = section without tasks. Edit only via the '*_work_task' tools, never through 'structured'.","type":["array","null"],"items":{"$ref":"#/$defs/McpWorkTask"}},"translations":{"description":"One entry per tenant language. On a partial edit, pass the matching entry's 'description' and 'structured' verbatim to 'update_job_level' to preserve existing values.","type":"array","items":{"$ref":"#/$defs/McpTranslation"}}},"required":["isArchived","jobArchitectureId","levelId","roleId","translations"]}},"notFound":{"description":"Requested ids that did not resolve or belong to another architecture.","type":"array","items":{"type":"string"}},"roles":{"type":"array","items":{"type":"object","properties":{"canAssignReviewer":{"type":["boolean","null"],"description":"False = do not propose a reviewer change."},"clusterId":{"type":"string","description":"Parent cluster UUID."},"competencies":{"description":"Referenced by the skills' 'competencyId'.","type":"array","items":{"$ref":"#/$defs/McpCompetency"}},"currentVersion":{"type":["integer","null"],"format":"int32","description":"Version this content reflects; null before any version exists. Past version: 'version' arg of 'get_nodes'; list via 'list_job_architecture_versions'."},"isArchived":{"type":"boolean","description":"Archived = hidden but recoverable."},"jobArchitectureId":{"type":"string"},"jobProfileId":{"type":["string","null"],"description":"Current job profile UUID. Null = none exists yet."},"reviewerUserId":{"type":["string","null"]},"roleId":{"type":"string"},"sectionTags":{"description":"Resolves a structured element's 'id' to localized section names. Null = no job profile.","type":["array","null"],"items":{"$ref":"#/$defs/McpSectionTag"}},"skills":{"type":"array","items":{"$ref":"#/$defs/McpAttachedSkill"}},"tasks":{"description":"Work tasks of the TASKS section, in order. Null = no TASKS section; empty = section without tasks. Edit only via the '*_work_task' tools, never through 'structured'.","type":["array","null"],"items":{"$ref":"#/$defs/McpWorkTask"}},"translations":{"description":"One entry per tenant language. On a partial edit, pass the matching entry's 'description' and 'structured' verbatim to 'update_job_role' to preserve existing values.","type":"array","items":{"$ref":"#/$defs/McpTranslation"}}},"required":["clusterId","isArchived","jobArchitectureId","roleId","translations"]}}},"required":["clusters","families","levels","notFound","roles"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"skillId":{"type":"string","description":"Skill UUID."}},"required":["skillId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"skill":{"type":["object","null"],"properties":{"description":{"type":["string","null"]},"proficiencyLevels":{"type":"array","items":{"type":"object","properties":{"description":{"type":["string","null"]},"level":{"type":"integer","format":"int32","description":"Level number (e.g. 1..5)."},"shortDescription":{"type":["string","null"]},"subSkills":{"type":"array","items":{"type":"object","properties":{"description":{"type":["string","null"]},"title":{"type":"string"}},"required":["title"]}}},"required":["level"]}},"skillId":{"type":"string","description":"Use verbatim in surgical skillEdits. Inventing ids is forbidden."},"skillType":{"type":"string","description":"'hard' (technical), 'soft' (behavioural) or 'language'."},"title":{"type":"string","description":"Canonical English title."}},"required":["skillId","skillType","title"],"description":"Null = unknown skill id."}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID the role/level belongs to."},"itemId":{"type":"string","description":"Role or level UUID the task belongs to."},"taskId":{"type":"string","description":"Work task UUID."},"language":{"type":"string","description":"BCP-47 source-language tag. Omit for all languages."},"includeResolved":{"type":"boolean","description":"Include resolved threads. Defaults to false."},"version":{"type":"integer","format":"int32","description":"Task version. Omit for the version currently pinned to the item."},"includeStale":{"type":"boolean","description":"Include comments whose anchor is stale. Defaults to false."}},"required":["jobArchitectureId","itemId","taskId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"comments":{"description":"Flattened: a reply carries the 'parentCommentId' of the comment it answers.","type":"array","items":{"type":"object","properties":{"anchorStatus":{"type":["string","null"],"description":"Vs current content: 'anchored' (highlighted text still exists), 'unresolved' (not found) or 'ambiguous' (matches more than one place). Treat 'unresolved'/'ambiguous' as stale ? do not act on them unless the user explicitly refers to them. Null for 'title'/'skill' comments."},"authorId":{"type":["string","null"]},"authorName":{"type":["string","null"]},"commentId":{"type":"string"},"content":{"type":"string"},"language":{"type":"string","description":"BCP-47 tag."},"parentCommentId":{"type":["string","null"],"description":"Null = top-level comment."},"quotedText":{"type":["string","null"],"description":"Text the user highlighted ? what the feedback is about."},"resolved":{"type":"boolean"},"resolvedInVersion":{"type":["integer","null"],"format":"int32","description":"Version that resolved the thread. Null = open."},"sectionId":{"type":["string","null"],"description":"Only for 'description-section'."},"skillId":{"type":["string","null"],"description":"Only for 'skill'."},"stepIndex":{"type":["integer","null"],"format":"int32","description":"Only for work-task workflow-step targets."},"targetKind":{"type":"string","description":"Profile or work-task target kind."},"version":{"type":["integer","null"],"format":"int32","description":"Content version the comment targets."}},"required":["commentId","content","language","resolved","targetKind"]}}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."}},"required":["jobArchitectureId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpArchivedItemView":{"type":"object","properties":{"archivedAt":{"type":["string","null"],"format":"date-time"},"clusterId":{"type":["string","null"],"description":"Ancestor cluster."},"familyId":{"type":["string","null"],"description":"Ancestor family."},"id":{"type":"string"},"localizedTitles":{"type":"object","description":"Localized titles differing from 'title', by BCP-47 tag."},"parentRoleId":{"type":["string","null"],"description":"Levels only: UUID of the parent role. The role may itself be archived ? it then also appears in 'roles'."},"title":{"type":"string","description":"English title."}},"required":["id","localizedTitles","title"]}},"type":"object","properties":{"jobArchitectureId":{"type":"string"},"levels":{"type":"array","items":{"$ref":"#/$defs/McpArchivedItemView"}},"roles":{"type":"array","items":{"$ref":"#/$defs/McpArchivedItemView"}}},"required":["jobArchitectureId","levels","roles"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpCobrainerTemplateSectionView":{"type":"object","properties":{"contentType":{"type":"string","description":"BULLET_POINTS, SENTENCES or TASKS."},"guidance":{"type":"string","description":"Follow when authoring this section."},"maxNumberOfItems":{"type":"integer","format":"int32"},"minNumberOfItems":{"type":"integer","format":"int32"},"name":{"type":"string"},"sectionId":{"type":"string","description":"Use as the 'tag' when authoring structured content."}},"required":["contentType","guidance","maxNumberOfItems","minNumberOfItems","name","sectionId"]},"McpSkillLimits":{"type":"object","properties":{"expectedNumberOfSkills":{"type":"integer","format":"int32","description":"Target skill count ? aim for this when detecting skills."},"maximumNumberOfSkills":{"type":"integer","format":"int32","description":"Hard cap."},"skillDetectionPreference":{"type":["string","null"],"description":"Free-text soft preference biasing skill detection (max 5000 chars)."}},"required":["expectedNumberOfSkills","maximumNumberOfSkills"]}},"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"activatedAt":{"type":["string","null"],"format":"date-time","description":"Null = never activated."},"createdAt":{"type":"string","format":"date-time"},"description":{"type":"string"},"jobLevelSections":{"type":"array","items":{"$ref":"#/$defs/McpCobrainerTemplateSectionView"}},"jobRoleSections":{"type":"array","items":{"$ref":"#/$defs/McpCobrainerTemplateSectionView"}},"levelSkillLimits":{"$ref":"#/$defs/McpSkillLimits"},"name":{"type":"string"},"roleSkillLimits":{"$ref":"#/$defs/McpSkillLimits"},"status":{"type":"string","description":"DRAFT, ACTIVE or DEPRECATED."},"templateId":{"type":"string"}},"required":["createdAt","description","jobLevelSections","jobRoleSections","levelSkillLimits","name","roleSkillLimits","status","templateId"]}}},"required":["items"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"page":{"type":"integer","format":"int32","description":"0-based page number. Defaults to 0."},"size":{"type":"integer","format":"int32","description":"Page size (max 200). Defaults to 20."}},"required":["jobArchitectureId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpChangeLogEntityView":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","description":"Name at the time of the event."},"type":{"type":["string","null"],"description":"'root', 'family', 'cluster', 'role' or 'level'."}},"required":["id","name"]},"McpChangeLogEntityView-nullable":{"anyOf":[{"type":"null"},{"$ref":"#/$defs/McpChangeLogEntityView"}]},"McpChangedSkill":{"type":"object","properties":{"id":{"type":"string"},"level":{"type":["integer","null"],"format":"int32"},"title":{"type":"string"}},"required":["id","title"]},"McpChangedTask":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"version":{"type":"integer","format":"int32","description":"Task version the event left the item pinned to."}},"required":["id","title","version"]}},"type":"object","properties":{"events":{"description":"Newest first.","type":"array","items":{"type":"object","properties":{"actorName":{"type":["string","null"]},"actorUserId":{"type":["string","null"],"description":"Null for system-driven changes."},"changeId":{"type":"string","description":"Logical change id; multiple events can share it."},"entity":{"$ref":"#/$defs/McpChangeLogEntityView"},"entityType":{"type":"string","description":"'root', 'family', 'cluster', 'role' or 'level'."},"eventId":{"type":"string"},"eventType":{"type":"string","description":"e.g. CREATED, UPDATED, PUBLISHED."},"field":{"type":["string","null"],"description":"Changed field, for field-level edits."},"from":{"$ref":"#/$defs/McpChangeLogEntityView-nullable","description":"Previous location; only for move events."},"itemId":{"type":["string","null"],"description":"Null for architecture-wide events."},"language":{"type":["string","null"],"description":"BCP-47 tag; only for translation events."},"newValue":{"type":["string","null"]},"oldValue":{"type":["string","null"]},"onBehalfOfUser":{"type":"boolean","description":"True = the actor acted on behalf of another user."},"parent":{"$ref":"#/$defs/McpChangeLogEntityView-nullable","description":"Parent context (e.g. the cluster of a role). Null when not applicable."},"publisherUserId":{"type":["string","null"],"description":"Only for publish/unpublish events."},"reviewerUserId":{"type":["string","null"],"description":"Only for reviewer assignment/review events."},"skillsAdded":{"description":"Required skills added; only for SKILLS_UPDATED and TASK_SKILLS_UPDATED events.","type":["array","null"],"items":{"$ref":"#/$defs/McpChangedSkill"}},"skillsLevelChanged":{"description":"Required-proficiency changes; only for SKILLS_UPDATED and TASK_SKILLS_UPDATED events.","type":["array","null"],"items":{"type":"object","properties":{"id":{"type":"string"},"newLevel":{"type":"integer","format":"int32"},"oldLevel":{"type":"integer","format":"int32"},"title":{"type":"string"}},"required":["id","newLevel","oldLevel","title"]}},"skillsRemoved":{"description":"Required skills removed; only for SKILLS_UPDATED and TASK_SKILLS_UPDATED events.","type":["array","null"],"items":{"$ref":"#/$defs/McpChangedSkill"}},"task":{"anyOf":[{"type":"null"},{"$ref":"#/$defs/McpChangedTask"}],"description":"Only for TASK_CREATED, TASK_EDITED, TASK_DELETED and TASK_SKILLS_UPDATED events."},"tasks":{"description":"New order; only for TASKS_REORDERED events.","type":["array","null"],"items":{"$ref":"#/$defs/McpChangedTask"}},"timestamp":{"type":"string","format":"date-time"},"to":{"$ref":"#/$defs/McpChangeLogEntityView-nullable","description":"New location; only for move events."},"version":{"type":["integer","null"],"format":"int32","description":"Affected item version; for reviewer, review, publish, skill, version and task events."}},"required":["changeId","entity","entityType","eventId","eventType","onBehalfOfUser","timestamp"]}},"page":{"type":"integer","format":"int32","description":"Zero-based."},"size":{"type":"integer","format":"int32"},"totalEvents":{"type":"integer","format":"int32","description":"Across all pages."},"totalPages":{"type":"integer","format":"int32"}},"required":["events","page","size","totalEvents","totalPages"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"itemId":{"type":"string","description":"Role or level UUID."}},"required":["jobArchitectureId","itemId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpJobProfileContentElementInput":{"type":"object","properties":{"id":{"type":["string","null"],"description":"Stable section-instance id. Defaults to 'tag' when omitted."},"tag":{"type":"string","description":"Section tag (e.g. 'responsibilities'). Must match a section from 'get_job_profile_template'."},"value":{"type":"string","description":"Plain text, in the author's language."}},"required":["tag","value"]}},"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"comment":{"type":["string","null"]},"competencies":{"description":"Referenced by the skills' 'competencyId'.","type":"array","items":{"type":"object","properties":{"competencyId":{"type":"string","description":"Referenced by the grouped skills' 'competencyId'."},"description":{"type":["string","null"]},"title":{"type":"string","description":"Falls back to English when untranslated."}},"required":["competencyId","title"]}},"englishDescription":{"type":["string","null"],"description":"Internal working summary, not part of the rendered profile. Often blank ? blank is normal, not missing content. The profile content users see lives in 'englishStructured'."},"englishStructured":{"description":"English content sections. Pass verbatim back to 'update_job_role' / 'update_job_level' on a partial edit to preserve them.","type":["array","null"],"items":{"$ref":"#/$defs/McpJobProfileContentElementInput"}},"englishTitle":{"type":"string","description":"Empty when no English translation exists."},"itemId":{"type":"string","description":"Role or level UUID."},"jobArchitectureId":{"type":"string"},"layer":{"type":"string","description":"'ROLE' or 'LEVEL'."},"publishedAt":{"type":["string","null"],"format":"date-time","description":"Null = still draft."},"reviewedAt":{"type":["string","null"],"format":"date-time","description":"Null = unreviewed."},"sectionTags":{"type":["array","null"],"items":{"type":"object","properties":{"names":{"type":"array","items":{"type":"object","properties":{"language":{"type":"string","description":"BCP-47 tag."},"text":{"type":"string"}},"required":["language","text"]}},"sectionId":{"type":"string","description":"Matches the 'id' of structured content elements in this section."},"type":{"type":"string","description":"Content format: BULLET_POINTS, SENTENCES or TASKS. TASKS content lives in 'tasks'; never author structured text for it."}},"required":["names","sectionId"]}},"skills":{"type":"array","items":{"type":"object","properties":{"competencyId":{"type":["string","null"],"description":"Matches an entry in 'competencies'. Null = ungrouped."},"id":{"type":"string","description":"Skill UUID."},"level":{"type":"integer","description":"Required proficiency level (1..5; language skills 1..6)."},"skillType":{"type":["string","null"],"description":"hard, soft or language."},"title":{"type":"string"}},"required":["id","level","title"]}},"translations":{"type":"array","items":{"type":"object","properties":{"description":{"type":["string","null"],"description":"On families/clusters this is the main descriptive text ('structured' is always null there). On roles/levels it is only an internal working summary: machine-translated languages leave it blank ? blank is normal, not missing content ? and the profile content users see lives in 'structured' (which may itself contain a section named 'Description')."},"language":{"type":"string","description":"BCP-47 tag (e.g. 'en-US')."},"structured":{"description":"Content sections (e.g. responsibilities, qualifications); TASKS sections are excluded, see 'tasks'. Pass verbatim back to 'update_job_role' / 'update_job_level' on a partial edit to preserve them.","type":["array","null"],"items":{"$ref":"#/$defs/McpJobProfileContentElementInput"}},"title":{"type":"string"}},"required":["language","title"]}},"version":{"type":"integer","format":"int32","description":"Monotonically increasing, starting at 1."}},"required":["englishTitle","itemId","jobArchitectureId","layer","skills","translations","version"]}}},"required":["items"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Optional job architecture UUID to scope results to."},"page":{"type":"integer","format":"int32","description":"0-based page number. Defaults to 0."},"size":{"type":"integer","format":"int32","description":"Page size (max 200). Defaults to 20."}},"required":[]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"createdAt":{"type":"string","format":"date-time"},"currency":{"type":["string","null"],"description":"ISO 4217, for salary data on the framework's levels."},"description":{"type":"string"},"frameworkId":{"type":"string"},"jobArchitectureId":{"type":["string","null"],"description":"Null for tenant- or globally-scoped frameworks."},"lastUpdate":{"type":"string","format":"date-time"},"name":{"type":"string"},"ownerScope":{"type":"string","description":"GLOBAL (system-wide) or TENANT (owned by the caller's tenant)."},"tracks":{"description":"Career tracks (lanes), in defined ordering.","type":"array","items":{"type":"object","properties":{"description":{"type":"string"},"levels":{"description":"Ordered by ascending level number.","type":"array","items":{"type":"object","properties":{"compensation":{"description":"The level's pay. The entry without a 'region' is the level's default pay; any further entries are regional bands. Empty when no pay has been set.","type":"array","items":{"type":"object","properties":{"currency":{"type":["string","null"],"description":"ISO 4217. A band may use a different currency from the framework's."},"fringeBenefits":{"type":["string","null"]},"longTermIncentive":{"type":["string","null"]},"name":{"type":["string","null"],"description":"Label for the band, e.g. \"Denmark\". Absent on the level's default pay."},"payType":{"type":["string","null"],"description":"SALARIED or HOURLY."},"region":{"type":["string","null"],"description":"Country or region this band applies to. Absent on the level's default pay."},"salaryMaximum":{"type":["number","null"]},"salaryMidpoint":{"type":["number","null"]},"salaryMinimum":{"type":["number","null"]},"targetBonus":{"type":["string","null"]}}}},"description":{"type":"string"},"employmentType":{"type":["string","null"],"description":"TARIF or AT. Applies to the whole level."},"level":{"type":"integer","format":"int32","description":"1-based within the track."},"name":{"type":"string"},"payGrade":{"type":["string","null"],"description":"Applies to the whole level, every pay band included."},"progressionCriteria":{"type":["string","null"]}},"required":["description","level","name"]}},"name":{"type":"string"},"trackId":{"type":"string"}},"required":["description","levels","name","trackId"]}},"type":{"type":"string","description":"MARKET, UNION or CUSTOM."}},"required":["createdAt","description","frameworkId","lastUpdate","name","ownerScope","tracks","type"]}},"page":{"type":"integer","format":"int32","description":"0-based."},"pages":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"total":{"type":"integer","format":"int32","description":"Across all pages."}},"required":["data","page","pages","size","total"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"skillId":{"type":"string","description":"Skill UUID. Obtain it from 'search_skills' or 'semantic_search_skills'."},"jobArchitectureId":{"type":"string","description":"Optional job architecture UUID to scope references to a single architecture. Omit for tenant-wide."},"page":{"type":"integer","format":"int32","description":"0-based page number applied to both the role and level lists. Defaults to 0."},"size":{"type":"integer","format":"int32","description":"Page size per layer (max 200). Defaults to 50."}},"required":["skillId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpSkillReferenceLayer":{"type":"object","properties":{"items":{"description":"This page, newest first.","type":"array","items":{"type":"object","properties":{"architectureId":{"type":"string"},"isFromPublishedVersion":{"type":"boolean","description":"False = only a draft references it."},"itemId":{"type":"string","description":"Role or level UUID. Pass to 'get_nodes' for full detail."},"title":{"type":"string","description":"Empty when no English profile translation exists."}},"required":["architectureId","isFromPublishedVersion","itemId","title"]}},"total":{"type":"integer","format":"int32","description":"Exceeds items.size when more pages exist."}},"required":["total"]}},"type":"object","properties":{"levels":{"$ref":"#/$defs/McpSkillReferenceLayer","description":"Levels whose profile references this skill."},"roles":{"$ref":"#/$defs/McpSkillReferenceLayer","description":"Roles whose profile references this skill."},"skillId":{"type":"string","description":"Echoes the requested skillId."},"skillType":{"type":["string","null"],"description":"'hard', 'soft' or 'language'. Null = skill id unknown."},"title":{"type":["string","null"],"description":"Canonical English title. Null = skill id unknown to the skills service."}},"required":["levels","roles","skillId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID to rank skills within."},"attribution":{"type":"string","enum":["ROLE","LEVEL","ROLE_LEVEL"],"description":"What to rank by: ROLE (role profiles), LEVEL (level profiles) or ROLE_LEVEL (combined, default)."},"size":{"type":"integer","format":"int32","description":"Top-N skills to return (max 200). Defaults to 50."}},"required":["jobArchitectureId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Echoes the requested jobArchitectureId."},"skills":{"description":"Most-attributed first; capped to the requested top-N.","type":"array","items":{"type":"object","properties":{"levelCount":{"type":"integer","format":"int32","description":"Active (non-archived) level profiles referencing the skill."},"roleCount":{"type":"integer","format":"int32","description":"Active (non-archived) role profiles referencing the skill."},"skillId":{"type":"string"},"skillType":{"type":["string","null"],"description":"'hard', 'soft' or 'language'. Null = skill id unknown."},"title":{"type":["string","null"],"description":"Canonical English title. Null = skill id unknown to the skills service."}},"required":["levelCount","roleCount","skillId"]}},"totalLevelAttributions":{"type":"integer","format":"int32","description":"Sum over ALL skills' levelCount, not limited to the returned top-N."},"totalRoleAttributions":{"type":"integer","format":"int32","description":"Sum over ALL skills' roleCount, not limited to the returned top-N."}},"required":["jobArchitectureId","totalLevelAttributions","totalRoleAttributions"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"itemIds":{"type":"array","items":{"type":"string"},"description":"Family/cluster/role/level UUIDs to resolve. Combined with skillIds, max 50."},"skillIds":{"type":"array","items":{"type":"string"},"description":"Skill UUIDs to resolve. Combined with itemIds, max 50."}},"required":[]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"entities":{"description":"One per id existing under the caller's tenant. Unknown, foreign-tenant or deleted ids are simply absent ? no error, no placeholder.","type":"array","items":{"type":"object","properties":{"clusterId":{"type":["string","null"],"description":"Ancestor cluster. Null for a family or cluster."},"entityId":{"type":"string"},"familyId":{"type":["string","null"],"description":"Ancestor family. Null for a family."},"isArchived":{"type":["boolean","null"],"description":"True when the item is archived (hidden but recoverable). Omitted for active items and skills."},"jobArchitectureId":{"type":["string","null"],"description":"Null for a skill."},"layer":{"type":"string","description":"'FAMILY', 'CLUSTER', 'ROLE', 'LEVEL' or 'SKILL'."},"roleId":{"type":["string","null"],"description":"Parent role. Only present for a level."},"skillType":{"type":["string","null"],"description":"Only for SKILL: 'hard', 'soft' or 'language'."},"version":{"type":["integer","null"],"format":"int32","description":"Current (published-or-latest) version. Null when unversioned or for family/cluster."}},"required":["entityId","layer"]}}},"required":["entities"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"query":{"type":"string","description":"Free-text query. Must be non-blank."},"layers":{"type":"array","items":{"type":"string","enum":["FAMILY","CLUSTER","ROLE","LEVEL"]},"description":"Optional layer filter. Omit to search all layers. Pass a subset to narrow."},"jobArchitectureId":{"type":"string","description":"Optional job architecture UUID to scope the search to a single architecture. Omit for tenant-wide."},"limit":{"type":"integer","format":"int32","description":"Max hits per layer per locale. Defaults to 10, capped at 25."}},"required":["query"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"byLocale":{"type":"object","description":"Grouped by tenant locale (BCP-47 tag); titles reflect that locale."}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"searchTerm":{"type":"string","description":"Name (or part of a name) to search for."},"limit":{"type":"integer","format":"int32","description":"Max results (default 50)."}},"required":["searchTerm"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"emailAddress":{"type":["string","null"],"description":"Present only to disambiguate same-named people."},"firstName":{"type":"string"},"id":{"type":"string","description":"Pass verbatim as reviewerUserId to set_role_reviewer / set_level_reviewer."},"lastName":{"type":"string"}},"required":["firstName","id","lastName"]}}},"required":["items"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"query":{"type":"string","description":"Skill title keywords. Must be non-blank."},"locale":{"type":"string","description":"BCP-47 locale to search in ? pass the user's language (e.g. 'en-US', 'fr-FR', 'fr-CA', 'de-DE'). Must be a tenant-enabled locale."},"limit":{"type":"integer","format":"int32","description":"Max hits. Defaults to 10, capped at 25."}},"required":["query","locale"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"type":"string","description":"BCP-47 tag the search ran in; titles are in this locale."},"skills":{"description":"Matching skills; empty when none matched.","type":"array","items":{"type":"object","properties":{"skillId":{"type":"string","description":"Use verbatim in surgical skillEdits. Inventing ids is forbidden."},"skillType":{"type":"string","description":"'hard' (technical), 'soft' (behavioural) or 'language'."},"title":{"type":"string"}},"required":["skillId","skillType","title"]}}},"required":["locale"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"query":{"type":"string","description":"Free-text concept query. Provide this OR similarToItemId."},"similarToItemId":{"type":"string","description":"UUID of an existing FAMILY/CLUSTER/ROLE to find similar items to. Provide this OR query."},"layers":{"type":"array","items":{"type":"string","enum":["FAMILY","CLUSTER","ROLE"]},"description":"Restrict to these layers. Omit to search all of them."},"jobArchitectureId":{"type":"string","description":"Optional job architecture UUID to scope the search."},"topK":{"type":"integer","format":"int32","description":"Max hits. Defaults to 5, capped at 25."}},"required":[]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string"},"jobArchitectureId":{"type":"string"},"jobArchitectureTitle":{"type":"string"},"layer":{"type":"string","description":"'FAMILY', 'CLUSTER' or 'ROLE'."},"similarityScore":{"type":"number","format":"double","description":"Cosine similarity; higher = more similar."},"title":{"type":"string","description":"English title."},"translations":{"type":"array","items":{"type":"object","properties":{"description":{"type":["string","null"],"description":"On families/clusters this is the main descriptive text ('structured' is always null there). On roles/levels it is only an internal working summary: machine-translated languages leave it blank ? blank is normal, not missing content ? and the profile content users see lives in 'structured' (which may itself contain a section named 'Description')."},"language":{"type":"string","description":"BCP-47 tag (e.g. 'en-US')."},"structured":{"description":"Content sections (e.g. responsibilities, qualifications); TASKS sections are excluded, see 'tasks'. Pass verbatim back to 'update_job_role' / 'update_job_level' on a partial edit to preserve them.","type":["array","null"],"items":{"type":"object","properties":{"id":{"type":["string","null"],"description":"Stable section-instance id. Defaults to 'tag' when omitted."},"tag":{"type":"string","description":"Section tag (e.g. 'responsibilities'). Must match a section from 'get_job_profile_template'."},"value":{"type":"string","description":"Plain text, in the author's language."}},"required":["tag","value"]}},"title":{"type":"string"}},"required":["language","title"]}}},"required":["itemId","jobArchitectureId","jobArchitectureTitle","layer","similarityScore","title","translations"]}}},"required":["items"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"type":"string","description":"BCP-47 locale to search in ? pass the user's language (e.g. 'en-US', 'fr-FR', 'fr-CA', 'de-DE'). Must be a tenant-enabled locale."},"query":{"type":"string","description":"Free-text concept query. Provide this OR relatedToSkillId. Must be non-blank when given."},"relatedToSkillId":{"type":"string","description":"UUID of an existing skill to find related skills for. Provide this OR query."},"limit":{"type":"integer","format":"int32","description":"Max hits. Defaults to 10, capped at 25."}},"required":["locale"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"locale":{"type":"string","description":"BCP-47 tag the search ran in; titles are in this locale."},"skills":{"description":"Matching skills; empty when none matched.","type":"array","items":{"type":"object","properties":{"skillId":{"type":"string","description":"Use verbatim in surgical skillEdits. Inventing ids is forbidden."},"skillType":{"type":"string","description":"'hard' (technical), 'soft' (behavioural) or 'language'."},"title":{"type":"string"}},"required":["skillId","skillType","title"]}}},"required":["locale"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"frameworkId":{"type":"string","description":"Leveling framework UUID to translate."},"jobArchitectureId":{"type":"string","description":"Job architecture UUID the framework belongs to."}},"required":["frameworkId","jobArchitectureId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"frameworkId":{"type":"string"},"targetLanguages":{"description":"Language tags the framework will actually gain. Empty when it already carries every language configured for the tenant, in which case nothing will change.","type":"array","items":{"type":"string"}}},"required":["frameworkId","targetLanguages"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture that must contain every requested role or level."},"items":{"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string","description":"Role or level UUID belonging to the requested job architecture."},"reviewerUserId":{"type":["string","null"],"description":"User UUID to assign as reviewer. Omit or null to remove the item's current reviewer."}},"required":["itemId"]},"description":"Role or level UUIDs with the reviewer UUID to assign, or without one to remove the current reviewer; 1-200 items."}},"required":["jobArchitectureId","items"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"failed":{"description":"Failures in input order; empty means every action succeeded.","type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Stable backend error code."},"itemId":{"type":"string"},"message":{"type":"string"},"version":{"type":["integer","null"],"format":"int32","description":"Failed version; omitted for reviewer assignment."}},"required":["code","itemId","message"]}}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture that must contain every requested role or level."},"items":{"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string","description":"Role or level UUID belonging to the requested job architecture."},"version":{"type":"integer","format":"int32","description":"Exact version to publish or approve."}},"required":["itemId","version"]},"description":"Role or level UUID and exact version pairs; 1-200 items."}},"required":["jobArchitectureId","items"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"failed":{"description":"Failures in input order; empty means every action succeeded.","type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Stable backend error code."},"itemId":{"type":"string"},"message":{"type":"string"},"version":{"type":["integer","null"],"format":"int32","description":"Failed version; omitted for reviewer assignment."}},"required":["code","itemId","message"]}}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"familyId":{"type":"string","description":"Parent family UUID."},"title":{"type":"string","description":"Cluster title, in 'languageTag' language."},"description":{"type":"string","description":"Short seed description the AI generation extends. Omit to generate from scratch."},"languageTag":{"type":"string","description":"BCP-47 tag of title/description. Defaults to 'en-US'."}},"required":["jobArchitectureId","familyId","title"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"itemId":{"type":"string","description":"Created or updated role/level UUID."},"version":{"type":["integer","null"],"format":"int32","description":"New version number. Null when no new version was created (e.g. reviewer-only update)."}},"required":["itemId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"title":{"type":"string","description":"Family title, in 'languageTag' language."},"description":{"type":"string","description":"Short seed description the AI generation extends. Omit to generate from scratch."},"languageTag":{"type":"string","description":"BCP-47 tag of title/description. Defaults to 'en-US'."}},"required":["jobArchitectureId","title"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"itemId":{"type":"string","description":"Created or updated role/level UUID."},"version":{"type":["integer","null"],"format":"int32","description":"New version number. Null when no new version was created (e.g. reviewer-only update)."}},"required":["itemId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"roleId":{"type":"string","description":"Parent role UUID."},"translation":{"type":"object","properties":{"description":{"type":["string","null"],"description":"Optional internal working summary, not rendered profile content. User-visible content belongs only in 'structured'. Plain text; markdown is not rendered. Leave null unless the user asked for a summary."},"languageTag":{"type":["string","null"],"description":"BCP-47 author language (e.g. 'en-US'). Null or blank = 'en-US'. Other tenant languages are filled in asynchronously."},"structured":{"description":"Content sections. Legal tags come from 'get_job_profile_template'.","type":["array","null"],"items":{"type":"object","properties":{"id":{"type":["string","null"],"description":"Stable section-instance id. Defaults to 'tag' when omitted."},"tag":{"type":"string","description":"Section tag (e.g. 'responsibilities'). Must match a section from 'get_job_profile_template'."},"value":{"type":"string","description":"Plain text, in the author's language."}},"required":["tag","value"]}},"title":{"type":"string","description":"In the author's language. Visible to end users."}},"required":["title"],"description":"Origin-language job profile translation for the new level."},"detectSkills":{"type":"boolean","description":"true = detect skills asynchronously from the created profile content. Null or false = no detection."}},"required":["jobArchitectureId","roleId","translation"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"itemId":{"type":"string","description":"Created or updated role/level UUID."},"version":{"type":["integer","null"],"format":"int32","description":"New version number. Null when no new version was created (e.g. reviewer-only update)."}},"required":["itemId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"clusterId":{"type":"string","description":"Parent cluster UUID."},"translation":{"type":"object","properties":{"description":{"type":["string","null"],"description":"Optional internal working summary, not rendered profile content. User-visible content belongs only in 'structured'. Plain text; markdown is not rendered. Leave null unless the user asked for a summary."},"languageTag":{"type":["string","null"],"description":"BCP-47 author language (e.g. 'en-US'). Null or blank = 'en-US'. Other tenant languages are filled in asynchronously."},"structured":{"description":"Content sections. Legal tags come from 'get_job_profile_template'.","type":["array","null"],"items":{"type":"object","properties":{"id":{"type":["string","null"],"description":"Stable section-instance id. Defaults to 'tag' when omitted."},"tag":{"type":"string","description":"Section tag (e.g. 'responsibilities'). Must match a section from 'get_job_profile_template'."},"value":{"type":"string","description":"Plain text, in the author's language."}},"required":["tag","value"]}},"title":{"type":"string","description":"In the author's language. Visible to end users."}},"required":["title"],"description":"Origin-language job profile translation for the new role."},"detectSkills":{"type":"boolean","description":"true = detect skills asynchronously from the created profile content. Null or false = no detection."}},"required":["jobArchitectureId","clusterId","translation"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"itemId":{"type":"string","description":"Created or updated role/level UUID."},"version":{"type":["integer","null"],"format":"int32","description":"New version number. Null when no new version was created (e.g. reviewer-only update)."}},"required":["itemId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"input":{"type":"object","properties":{"currency":{"type":["string","null"],"description":"ISO 4217 (e.g. EUR). Defaults to EUR when omitted; an unrecognised code is rejected."},"description":{"type":"string","description":"In English."},"name":{"type":"string","description":"In English."},"tracks":{"description":"May be empty for an outline-only framework.","type":"array","items":{"type":"object","properties":{"description":{"type":["string","null"]},"levels":{"description":"Lowest seniority first. Each level keeps the 'level' number it carries; levels without one are numbered by their position (1-based), so a track that does not start at 1 must send 'level'.","type":"array","items":{"type":"object","properties":{"compensation":{"description":"The level's pay. Give the level's default pay as the entry without a 'region', and one further entry per regional band. Omit entirely to leave the level's pay untouched on update, or unset on create.","type":"array","items":{"type":"object","properties":{"currency":{"type":["string","null"],"description":"ISO 4217. Defaults to the framework's currency."},"fringeBenefits":{"type":["string","null"]},"longTermIncentive":{"type":["string","null"]},"name":{"type":["string","null"],"description":"Label for the band, e.g. \"Denmark\". Defaults to the region when omitted."},"payType":{"type":["string","null"],"description":"SALARIED or HOURLY. Defaults to SALARIED."},"region":{"type":["string","null"],"description":"Country or region this band applies to, e.g. \"DK\" or \"Singapore\". Leave it out for the level's default pay ? exactly one entry may omit it."},"salaryMaximum":{"type":["number","null"]},"salaryMidpoint":{"type":["number","null"],"description":"Defaults to the midpoint between minimum and maximum when omitted."},"salaryMinimum":{"type":["number","null"]},"targetBonus":{"type":["string","null"],"description":"Free text, e.g. \"10%\" ? varies by region, so it sits on the band."}}}},"description":{"type":["string","null"]},"employmentType":{"type":["string","null"],"description":"TARIF or AT. Applies to the whole level. Defaults to TARIF when pay is given."},"level":{"type":["integer","null"],"format":"int32","description":"The number this level carries in its track. Omit to number it by its position in the list (1-based) ? send it whenever a track starts above 1 or leaves gaps."},"name":{"type":"string","description":"In English."},"payGrade":{"type":["string","null"],"description":"Applies to the whole level, every pay band included."},"progressionCriteria":{"type":["string","null"]}},"required":["name"]}},"name":{"type":"string","description":"In English."},"trackId":{"type":["string","null"],"description":"Omit when creating. When updating, pass the track's existing 'trackId' so it keeps its identity ? a track written back without its id is a different track, and any role that had selected the old one loses that selection."}},"required":["name"]}},"translateOtherLanguages":{"type":"boolean","description":"False = keep the framework English-only; skip the automatic backfill into the tenant's other languages."},"type":{"type":"string","description":"MARKET, UNION or CUSTOM. Defaults to MARKET."}},"required":["description","name"],"description":"Framework definition (English-only)."},"jobArchitectureId":{"type":"string","description":"Optional job architecture UUID to scope the framework to."}},"required":["input"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"createdAt":{"type":"string","format":"date-time"},"currency":{"type":["string","null"],"description":"ISO 4217, for salary data on the framework's levels."},"description":{"type":"string"},"frameworkId":{"type":"string"},"jobArchitectureId":{"type":["string","null"],"description":"Null for tenant- or globally-scoped frameworks."},"lastUpdate":{"type":"string","format":"date-time"},"name":{"type":"string"},"ownerScope":{"type":"string","description":"GLOBAL (system-wide) or TENANT (owned by the caller's tenant)."},"tracks":{"description":"Career tracks (lanes), in defined ordering.","type":"array","items":{"type":"object","properties":{"description":{"type":"string"},"levels":{"description":"Ordered by ascending level number.","type":"array","items":{"type":"object","properties":{"compensation":{"description":"The level's pay. The entry without a 'region' is the level's default pay; any further entries are regional bands. Empty when no pay has been set.","type":"array","items":{"type":"object","properties":{"currency":{"type":["string","null"],"description":"ISO 4217. A band may use a different currency from the framework's."},"fringeBenefits":{"type":["string","null"]},"longTermIncentive":{"type":["string","null"]},"name":{"type":["string","null"],"description":"Label for the band, e.g. \"Denmark\". Absent on the level's default pay."},"payType":{"type":["string","null"],"description":"SALARIED or HOURLY."},"region":{"type":["string","null"],"description":"Country or region this band applies to. Absent on the level's default pay."},"salaryMaximum":{"type":["number","null"]},"salaryMidpoint":{"type":["number","null"]},"salaryMinimum":{"type":["number","null"]},"targetBonus":{"type":["string","null"]}}}},"description":{"type":"string"},"employmentType":{"type":["string","null"],"description":"TARIF or AT. Applies to the whole level."},"level":{"type":"integer","format":"int32","description":"1-based within the track."},"name":{"type":"string"},"payGrade":{"type":["string","null"],"description":"Applies to the whole level, every pay band included."},"progressionCriteria":{"type":["string","null"]}},"required":["description","level","name"]}},"name":{"type":"string"},"trackId":{"type":"string"}},"required":["description","levels","name","trackId"]}},"type":{"type":"string","description":"MARKET, UNION or CUSTOM."}},"required":["createdAt","description","frameworkId","lastUpdate","name","ownerScope","tracks","type"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID the template belongs to."},"templateId":{"type":"string","description":"Template UUID to delete."}},"required":["jobArchitectureId","templateId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"itemId":{"type":"string","description":"Role or level UUID."},"translation":{"type":"object","properties":{"description":{"type":["string","null"],"description":"Optional internal working summary, not rendered profile content. User-visible content belongs only in 'structured'. Plain text; markdown is not rendered. Leave null unless the user asked for a summary."},"languageTag":{"type":["string","null"],"description":"BCP-47 author language (e.g. 'en-US'). Null or blank = 'en-US'. Other tenant languages are filled in asynchronously."},"structured":{"description":"Content sections. Legal tags come from 'get_job_profile_template'.","type":["array","null"],"items":{"type":"object","properties":{"id":{"type":["string","null"],"description":"Stable section-instance id. Defaults to 'tag' when omitted."},"tag":{"type":"string","description":"Section tag (e.g. 'responsibilities'). Must match a section from 'get_job_profile_template'."},"value":{"type":"string","description":"Plain text, in the author's language."}},"required":["tag","value"]}},"title":{"type":"string","description":"In the author's language. Visible to end users."}},"required":["title"],"description":"Candidate translation used as detection input."},"additionalPrompt":{"type":"object","properties":{"type":{"type":"string","enum":["REDETECT","ADJUST"],"description":"'REDETECT' = fresh run ignoring the item's current skills; 'ADJUST' = anchor on current skills and apply 'userInput' as guidance."},"userInput":{"type":["string","null"],"description":"Free-text guidance; only for 'ADJUST'."}},"required":["type"],"description":"Steering prompt for the detector. 'REDETECT' forces a fresh run ignoring prior skills; 'ADJUST' applies optional 'userInput' as free-text guidance."},"version":{"type":"integer","format":"int32","description":"Optional version number whose skills are used as the diff baseline. Defaults to the item's current version."}},"required":["jobArchitectureId","itemId","translation","additionalPrompt"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpDetectedSkill":{"type":"object","properties":{"competencyId":{"type":["string","null"],"description":"Competency grouping; preserved when persisting."},"confidence":{"type":["number","null"],"format":"float","description":"Detector confidence (0.0-1.0). Informational only."},"level":{"type":"integer","description":"Required proficiency level (1..5; language skills 1..6)."},"skillId":{"type":"string","description":"Must reference an existing catalog skill."},"textOccurrences":{"description":"Source text fragments that triggered detection. Ignored on input.","type":["array","null"],"items":{"type":"string"}},"title":{"type":"string","description":"English title. Ignored on input."},"type":{"type":"string","description":"'hard', 'soft' or 'language'. Ignored on input."}},"required":["level","skillId","title","type"]}},"type":"object","properties":{"addedSkills":{"description":"Informational delta vs the item's current skills.","type":"array","items":{"$ref":"#/$defs/McpDetectedSkill"}},"changedSkills":{"description":"Informational delta vs the item's current skills.","type":"array","items":{"$ref":"#/$defs/McpDetectedSkill"}},"detectedSkills":{"description":"Full inferred set. Pass verbatim as the 'skills' argument of 'update_job_role' / 'update_job_level' to persist.","type":"array","items":{"$ref":"#/$defs/McpDetectedSkill"}},"removedSkills":{"description":"Informational delta vs the item's current skills.","type":"array","items":{"$ref":"#/$defs/McpDetectedSkill"}}},"required":["addedSkills","changedSkills","detectedSkills","removedSkills"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"roleId":{"type":"string","description":"Parent role UUID."},"title":{"type":"string","description":"Level title, in 'languageTag' language."},"description":{"type":"string","description":"Short seed description the AI generation builds on. Omit to generate from scratch."},"languageTag":{"type":"string","description":"BCP-47 tag of title/description. Defaults to 'en-US'."}},"required":["jobArchitectureId","roleId","title"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"itemId":{"type":"string","description":"Created or updated role/level UUID."},"version":{"type":["integer","null"],"format":"int32","description":"New version number. Null when no new version was created (e.g. reviewer-only update)."}},"required":["itemId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"clusterId":{"type":"string","description":"Parent cluster UUID."},"title":{"type":"string","description":"Role title, in 'languageTag' language."},"description":{"type":"string","description":"Short seed description the AI generation builds on. Omit to generate from scratch."},"languageTag":{"type":"string","description":"BCP-47 tag of title/description. Defaults to 'en-US'."}},"required":["jobArchitectureId","clusterId","title"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"itemId":{"type":"string","description":"Created or updated role/level UUID."},"version":{"type":["integer","null"],"format":"int32","description":"New version number. Null when no new version was created (e.g. reviewer-only update)."}},"required":["itemId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"itemId":{"type":"string","description":"Role or level UUID."},"title":{"type":"string","description":"Max 256 characters; stored verbatim."},"language":{"type":"string","description":"BCP-47 tag of 'title'. Defaults to 'en-US'."}},"required":["jobArchitectureId","itemId","title"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"generationState":{"type":["string","null"],"description":"QUEUED right after generation or regeneration; content arrives asynchronously."},"itemVersion":{"type":["integer","null"],"format":"int32","description":"Role/level version the task section is pinned on after this call."},"orderedTaskIds":{"description":"Final order after 'reorder_work_tasks'.","type":["array","null"],"items":{"type":"string"}},"removed":{"type":["boolean","null"]},"taskId":{"type":["string","null"]},"version":{"type":["integer","null"],"format":"int32","description":"New pinned task version after update or regeneration."}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"levelId":{"type":"string","description":"Level UUID."},"version":{"type":"integer","format":"int32","description":"Version number to publish."}},"required":["jobArchitectureId","levelId","version"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"roleId":{"type":"string","description":"Role UUID."},"version":{"type":"integer","format":"int32","description":"Version number to publish."}},"required":["jobArchitectureId","roleId","version"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpCustomTemplateSectionInput":{"type":"object","properties":{"contentType":{"type":"string","description":"BULLET_POINTS, SENTENCES or TASKS. For COBRAINER sections must equal the section's contentType as returned by get_job_profile_template (or by the Cobrainer template tools when the architecture has no template yet); it cannot be changed. CUSTOM TASKS sections cannot be created via this tool yet."},"guidance":{"type":"string","description":"Authoring guidance. Ignored for COBRAINER sections."},"maxNumberOfItems":{"type":"integer","format":"int32","description":"Ignored for COBRAINER sections."},"minNumberOfItems":{"type":"integer","format":"int32","description":"Ignored for COBRAINER sections."},"name":{"type":"string","description":"In English. For COBRAINER sections overrides the displayed name only."},"sectionId":{"type":["string","null"],"description":"Required for COBRAINER (must reference an existing Cobrainer section); optional for CUSTOM ? generated when omitted."},"type":{"type":"string","description":"'COBRAINER' (re-uses a Cobrainer-managed section by id) or 'CUSTOM' (tenant-defined)."}},"required":["contentType","guidance","maxNumberOfItems","minNumberOfItems","name","type"]},"McpSkillLimits":{"type":"object","properties":{"expectedNumberOfSkills":{"type":"integer","format":"int32","description":"Target skill count ? aim for this when detecting skills."},"maximumNumberOfSkills":{"type":"integer","format":"int32","description":"Hard cap."},"skillDetectionPreference":{"type":["string","null"],"description":"Free-text soft preference biasing skill detection (max 5000 chars)."}},"required":["expectedNumberOfSkills","maximumNumberOfSkills"]}},"type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID the template belongs to."},"templateId":{"type":"string","description":"Template UUID. Generate a new UUID to create; pass the existing one to update in place."},"input":{"type":"object","properties":{"cobrainerJobTemplateId":{"type":["string","null"],"description":"Omit = keep stored link or auto-detect; null = detach."},"description":{"type":"string","description":"In English."},"jobLevelSections":{"description":"In desired ordering.","type":"array","items":{"$ref":"#/$defs/McpCustomTemplateSectionInput"}},"jobRoleSections":{"description":"In desired ordering.","type":"array","items":{"$ref":"#/$defs/McpCustomTemplateSectionInput"}},"levelSkillLimits":{"$ref":"#/$defs/McpSkillLimits"},"name":{"type":"string","description":"In English."},"roleSkillLimits":{"$ref":"#/$defs/McpSkillLimits"}},"required":["description","jobLevelSections","jobRoleSections","levelSkillLimits","name","roleSkillLimits"],"description":"Template definition (English-only)."}},"required":["jobArchitectureId","templateId","input"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpJobProfileTemplateSection":{"type":"object","properties":{"contentType":{"type":"string","description":"BULLET_POINTS, SENTENCES or TASKS. Never author structured text for TASKS sections."},"guidance":{"type":"string","description":"Follow when authoring this section."},"maxNumberOfItems":{"type":"integer","format":"int32"},"minNumberOfItems":{"type":"integer","format":"int32"},"name":{"type":"string","description":"English name (e.g. 'Responsibilities')."},"names":{"description":"Localized display names.","type":"array","items":{"type":"object","properties":{"language":{"type":"string","description":"BCP-47 tag."},"text":{"type":"string"}},"required":["language","text"]}},"origin":{"type":"string","description":"e.g. SYSTEM, CUSTOM."},"sectionId":{"type":"string","description":"Use as the structured element 'id' when authoring this section."}},"required":["contentType","guidance","maxNumberOfItems","minNumberOfItems","name","origin","sectionId"]},"McpSkillLimits":{"type":"object","properties":{"expectedNumberOfSkills":{"type":"integer","format":"int32","description":"Target skill count ? aim for this when detecting skills."},"maximumNumberOfSkills":{"type":"integer","format":"int32","description":"Hard cap."},"skillDetectionPreference":{"type":["string","null"],"description":"Free-text soft preference biasing skill detection (max 5000 chars)."}},"required":["expectedNumberOfSkills","maximumNumberOfSkills"]}},"type":"object","properties":{"description":{"type":"string"},"jobLevelSections":{"description":"Sections to author for a job level.","type":"array","items":{"$ref":"#/$defs/McpJobProfileTemplateSection"}},"jobRoleSections":{"description":"Sections to author for a job role.","type":"array","items":{"$ref":"#/$defs/McpJobProfileTemplateSection"}},"levelSkillLimits":{"$ref":"#/$defs/McpSkillLimits"},"name":{"type":"string"},"roleSkillLimits":{"$ref":"#/$defs/McpSkillLimits"},"templateId":{"type":"string"}},"required":["description","jobLevelSections","jobRoleSections","levelSkillLimits","name","roleSkillLimits","templateId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"itemId":{"type":"string","description":"Role or level UUID."},"taskId":{"type":"string","description":"Referenced work task UUID."},"title":{"type":"string","description":"Optional replacement title, max 256 characters."},"language":{"type":"string","description":"BCP-47 language of the title/instruction. Defaults to 'en-US'."},"instruction":{"type":"string","description":"Optional plain-text guidance for this regeneration."}},"required":["jobArchitectureId","itemId","taskId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"generationState":{"type":["string","null"],"description":"QUEUED right after generation or regeneration; content arrives asynchronously."},"itemVersion":{"type":["integer","null"],"format":"int32","description":"Role/level version the task section is pinned on after this call."},"orderedTaskIds":{"description":"Final order after 'reorder_work_tasks'.","type":["array","null"],"items":{"type":"string"}},"removed":{"type":["boolean","null"]},"taskId":{"type":["string","null"]},"version":{"type":["integer","null"],"format":"int32","description":"New pinned task version after update or regeneration."}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"itemId":{"type":"string","description":"Role or level UUID."},"taskId":{"type":"string"}},"required":["jobArchitectureId","itemId","taskId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"generationState":{"type":["string","null"],"description":"QUEUED right after generation or regeneration; content arrives asynchronously."},"itemVersion":{"type":["integer","null"],"format":"int32","description":"Role/level version the task section is pinned on after this call."},"orderedTaskIds":{"description":"Final order after 'reorder_work_tasks'.","type":["array","null"],"items":{"type":"string"}},"removed":{"type":["boolean","null"]},"taskId":{"type":["string","null"]},"version":{"type":["integer","null"],"format":"int32","description":"New pinned task version after update or regeneration."}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"itemId":{"type":"string","description":"Role or level UUID."},"orderedTaskIds":{"type":"array","items":{"type":"string"},"description":"Every current task UUID exactly once, in the desired order."}},"required":["jobArchitectureId","itemId","orderedTaskIds"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"generationState":{"type":["string","null"],"description":"QUEUED right after generation or regeneration; content arrives asynchronously."},"itemVersion":{"type":["integer","null"],"format":"int32","description":"Role/level version the task section is pinned on after this call."},"orderedTaskIds":{"description":"Final order after 'reorder_work_tasks'.","type":["array","null"],"items":{"type":"string"}},"removed":{"type":["boolean","null"]},"taskId":{"type":["string","null"]},"version":{"type":["integer","null"],"format":"int32","description":"New pinned task version after update or regeneration."}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"itemId":{"type":"string","description":"Role or level UUID the comments belong to."},"commentIds":{"type":"array","items":{"type":"string"},"description":"Root comment UUIDs to resolve."},"version":{"type":"integer","format":"int32","description":"Version the comments are resolved in (the version just created)."}},"required":["jobArchitectureId","itemId","commentIds","version"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"itemId":{"type":"string","description":"Role or level UUID the task belongs to."},"taskId":{"type":"string","description":"Work task UUID."},"commentIds":{"type":"array","items":{"type":"string"},"description":"Root comment UUIDs to resolve."},"version":{"type":"integer","format":"int32","description":"New task version that addressed the comments."}},"required":["jobArchitectureId","itemId","taskId","commentIds","version"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"itemIds":{"type":"array","items":{"type":"string"},"description":"Role and level UUIDs to change, mixed freely."},"archived":{"type":"boolean","description":"true to archive, false to restore."}},"required":["jobArchitectureId","itemIds","archived"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"levelId":{"type":"string","description":"Level UUID whose reviewer to set."},"reviewerUserId":{"type":"string","description":"User UUID of the new reviewer (from search_reviewers). Omit/null to remove the current reviewer."}},"required":["jobArchitectureId","levelId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"roleId":{"type":"string","description":"Role UUID whose reviewer to set."},"reviewerUserId":{"type":"string","description":"User UUID of the new reviewer (from search_reviewers). Omit/null to remove the current reviewer."}},"required":["jobArchitectureId","roleId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"levelId":{"type":"string","description":"Level UUID."},"version":{"type":"integer","format":"int32","description":"Version number to unpublish."}},"required":["jobArchitectureId","levelId","version"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"roleId":{"type":"string","description":"Role UUID."},"version":{"type":"integer","format":"int32","description":"Version number to unpublish."}},"required":["jobArchitectureId","roleId","version"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"levelId":{"type":"string","description":"Level UUID."},"version":{"type":"integer","format":"int32","description":"Version number."}},"required":["jobArchitectureId","levelId","version"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"roleId":{"type":"string","description":"Role UUID."},"version":{"type":"integer","format":"int32","description":"Version number."}},"required":["jobArchitectureId","roleId","version"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"clusterId":{"type":"string","description":"Cluster UUID."},"title":{"type":"string","description":"New cluster title, in 'languageTag' language."},"description":{"type":"string","description":"New full cluster description, in 'languageTag' language."},"languageTag":{"type":"string","description":"BCP-47 tag of title/description. Defaults to 'en-US'."},"translateOtherLanguages":{"type":"boolean","description":"Whether to auto-translate this change into the tenant's other languages. Defaults to true. Pass false to change only the given language and leave the others unchanged."}},"required":["jobArchitectureId","clusterId","title","description"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"itemId":{"type":"string","description":"Created or updated role/level UUID."},"version":{"type":["integer","null"],"format":"int32","description":"New version number. Null when no new version was created (e.g. reviewer-only update)."}},"required":["itemId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"familyId":{"type":"string","description":"Family UUID."},"title":{"type":"string","description":"New family title, in 'languageTag' language."},"description":{"type":"string","description":"New full family description, in 'languageTag' language."},"languageTag":{"type":"string","description":"BCP-47 tag of title/description. Defaults to 'en-US'."},"translateOtherLanguages":{"type":"boolean","description":"Whether to auto-translate this change into the tenant's other languages. Defaults to true. Pass false to change only the given language and leave the others unchanged."}},"required":["jobArchitectureId","familyId","title","description"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"itemId":{"type":"string","description":"Created or updated role/level UUID."},"version":{"type":["integer","null"],"format":"int32","description":"New version number. Null when no new version was created (e.g. reviewer-only update)."}},"required":["itemId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"levelId":{"type":"string","description":"Level UUID."},"translation":{"type":"object","properties":{"description":{"type":["string","null"],"description":"Optional internal working summary, not rendered profile content. User-visible content belongs only in 'structured'. Plain text; markdown is not rendered. Leave null unless the user asked for a summary."},"languageTag":{"type":["string","null"],"description":"BCP-47 author language (e.g. 'en-US'). Null or blank = 'en-US'. Other tenant languages are filled in asynchronously."},"structured":{"description":"Content sections. Legal tags come from 'get_job_profile_template'.","type":["array","null"],"items":{"type":"object","properties":{"id":{"type":["string","null"],"description":"Stable section-instance id. Defaults to 'tag' when omitted."},"tag":{"type":"string","description":"Section tag (e.g. 'responsibilities'). Must match a section from 'get_job_profile_template'."},"value":{"type":"string","description":"Plain text, in the author's language."}},"required":["tag","value"]}},"title":{"type":"string","description":"In the author's language. Visible to end users."}},"required":["title"],"description":"New origin-language translation; produces a new version."},"skills":{"type":"array","items":{"type":"object","properties":{"competencyId":{"type":["string","null"],"description":"Competency grouping; preserved when persisting."},"confidence":{"type":["number","null"],"format":"float","description":"Detector confidence (0.0-1.0). Informational only."},"level":{"type":"integer","description":"Required proficiency level (1..5; language skills 1..6)."},"skillId":{"type":"string","description":"Must reference an existing catalog skill."},"textOccurrences":{"description":"Source text fragments that triggered detection. Ignored on input.","type":["array","null"],"items":{"type":"string"}},"title":{"type":"string","description":"English title. Ignored on input."},"type":{"type":"string","description":"'hard', 'soft' or 'language'. Ignored on input."}},"required":["level","skillId","title","type"]},"description":"Skills to attach to the new version. Pass the 'detectedSkills' list from 'detect_skills' verbatim. Omit or pass null to leave the current skill set unchanged. An empty list clears all skills."},"sectionTags":{"type":"array","items":{"type":"object","properties":{"names":{"type":"array","items":{"type":"object","properties":{"language":{"type":"string","description":"BCP-47 tag."},"text":{"type":"string"}},"required":["language","text"]}},"sectionId":{"type":"string","description":"Matches the 'id' of structured content elements in this section."},"type":{"type":"string","description":"Content format: BULLET_POINTS, SENTENCES or TASKS. TASKS content lives in 'tasks'; never author structured text for it."}},"required":["names","sectionId"]},"description":"Section tags describing the structured content sections of the new version. Pass the level's 'sectionTags' (as returned by 'get_nodes') verbatim. Omit, pass null, or pass an empty list to leave the current section tags unchanged."},"comment":{"type":"string","description":"One short sentence, in the translation's language, summarising what changed in this update. Stored as the new version's change note. Omit or pass null to leave it empty."},"translateOtherLanguages":{"type":"boolean","description":"Whether to auto-translate this change into the tenant's other languages. Defaults to true. Pass false to change only the translation's own language and leave the others unchanged."},"translationInstructions":{"type":"array","items":{"type":"object","properties":{"instruction":{"type":"string","description":"Wording changes to apply in that language's translation, e.g. reviewer feedback on the existing translation."},"languageTag":{"type":"string","description":"BCP-47 tag of the target language this instruction applies to."}},"required":["instruction","languageTag"]},"description":"Per-target-language wording instructions applied during the automatic retranslation (e.g. reviewer feedback on a specific language's text). Ignored when 'translateOtherLanguages' is false. Each entry: languageTag (BCP-47) + instruction."},"replacementTaskTitles":{"type":"array","items":{"type":"string"},"description":"Full regeneration only. Replaces the complete work-task set: every current task and its generated content is dropped and new tasks are generated asynchronously from these titles. Omit/null preserves the current tasks. Never pass current titles verbatim; edit single tasks with the *_work_task tools."}},"required":["jobArchitectureId","levelId","translation"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"itemId":{"type":"string","description":"Created or updated role/level UUID."},"version":{"type":["integer","null"],"format":"int32","description":"New version number. Null when no new version was created (e.g. reviewer-only update)."}},"required":["itemId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"roleId":{"type":"string","description":"Role UUID."},"translation":{"type":"object","properties":{"description":{"type":["string","null"],"description":"Optional internal working summary, not rendered profile content. User-visible content belongs only in 'structured'. Plain text; markdown is not rendered. Leave null unless the user asked for a summary."},"languageTag":{"type":["string","null"],"description":"BCP-47 author language (e.g. 'en-US'). Null or blank = 'en-US'. Other tenant languages are filled in asynchronously."},"structured":{"description":"Content sections. Legal tags come from 'get_job_profile_template'.","type":["array","null"],"items":{"type":"object","properties":{"id":{"type":["string","null"],"description":"Stable section-instance id. Defaults to 'tag' when omitted."},"tag":{"type":"string","description":"Section tag (e.g. 'responsibilities'). Must match a section from 'get_job_profile_template'."},"value":{"type":"string","description":"Plain text, in the author's language."}},"required":["tag","value"]}},"title":{"type":"string","description":"In the author's language. Visible to end users."}},"required":["title"],"description":"New origin-language translation; produces a new version."},"skills":{"type":"array","items":{"type":"object","properties":{"competencyId":{"type":["string","null"],"description":"Competency grouping; preserved when persisting."},"confidence":{"type":["number","null"],"format":"float","description":"Detector confidence (0.0-1.0). Informational only."},"level":{"type":"integer","description":"Required proficiency level (1..5; language skills 1..6)."},"skillId":{"type":"string","description":"Must reference an existing catalog skill."},"textOccurrences":{"description":"Source text fragments that triggered detection. Ignored on input.","type":["array","null"],"items":{"type":"string"}},"title":{"type":"string","description":"English title. Ignored on input."},"type":{"type":"string","description":"'hard', 'soft' or 'language'. Ignored on input."}},"required":["level","skillId","title","type"]},"description":"Skills to attach to the new version. Pass the 'detectedSkills' list from 'detect_skills' verbatim. Omit or pass null to leave the current skill set unchanged. An empty list clears all skills."},"sectionTags":{"type":"array","items":{"type":"object","properties":{"names":{"type":"array","items":{"type":"object","properties":{"language":{"type":"string","description":"BCP-47 tag."},"text":{"type":"string"}},"required":["language","text"]}},"sectionId":{"type":"string","description":"Matches the 'id' of structured content elements in this section."},"type":{"type":"string","description":"Content format: BULLET_POINTS, SENTENCES or TASKS. TASKS content lives in 'tasks'; never author structured text for it."}},"required":["names","sectionId"]},"description":"Section tags describing the structured content sections of the new version. Pass the role's 'sectionTags' (as returned by 'get_nodes') verbatim. Omit, pass null, or pass an empty list to leave the current section tags unchanged."},"comment":{"type":"string","description":"One short sentence, in the translation's language, summarising what changed in this update. Stored as the new version's change note. Omit or pass null to leave it empty."},"translateOtherLanguages":{"type":"boolean","description":"Whether to auto-translate this change into the tenant's other languages. Defaults to true. Pass false to change only the translation's own language and leave the others unchanged."},"translationInstructions":{"type":"array","items":{"type":"object","properties":{"instruction":{"type":"string","description":"Wording changes to apply in that language's translation, e.g. reviewer feedback on the existing translation."},"languageTag":{"type":"string","description":"BCP-47 tag of the target language this instruction applies to."}},"required":["instruction","languageTag"]},"description":"Per-target-language wording instructions applied during the automatic retranslation (e.g. reviewer feedback on a specific language's text). Ignored when 'translateOtherLanguages' is false. Each entry: languageTag (BCP-47) + instruction."},"replacementTaskTitles":{"type":"array","items":{"type":"string"},"description":"Full regeneration only. Replaces the complete work-task set: every current task and its generated content is dropped and new tasks are generated asynchronously from these titles. Omit/null preserves the current tasks. Never pass current titles verbatim; edit single tasks with the *_work_task tools."}},"required":["jobArchitectureId","roleId","translation"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"itemId":{"type":"string","description":"Created or updated role/level UUID."},"version":{"type":["integer","null"],"format":"int32","description":"New version number. Null when no new version was created (e.g. reviewer-only update)."}},"required":["itemId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"frameworkId":{"type":"string","description":"Leveling framework UUID to update."},"input":{"type":"object","properties":{"currency":{"type":["string","null"],"description":"ISO 4217 (e.g. EUR). Defaults to EUR when omitted; an unrecognised code is rejected."},"description":{"type":"string","description":"In English."},"name":{"type":"string","description":"In English."},"tracks":{"description":"May be empty for an outline-only framework.","type":"array","items":{"type":"object","properties":{"description":{"type":["string","null"]},"levels":{"description":"Lowest seniority first. Each level keeps the 'level' number it carries; levels without one are numbered by their position (1-based), so a track that does not start at 1 must send 'level'.","type":"array","items":{"type":"object","properties":{"compensation":{"description":"The level's pay. Give the level's default pay as the entry without a 'region', and one further entry per regional band. Omit entirely to leave the level's pay untouched on update, or unset on create.","type":"array","items":{"type":"object","properties":{"currency":{"type":["string","null"],"description":"ISO 4217. Defaults to the framework's currency."},"fringeBenefits":{"type":["string","null"]},"longTermIncentive":{"type":["string","null"]},"name":{"type":["string","null"],"description":"Label for the band, e.g. \"Denmark\". Defaults to the region when omitted."},"payType":{"type":["string","null"],"description":"SALARIED or HOURLY. Defaults to SALARIED."},"region":{"type":["string","null"],"description":"Country or region this band applies to, e.g. \"DK\" or \"Singapore\". Leave it out for the level's default pay ? exactly one entry may omit it."},"salaryMaximum":{"type":["number","null"]},"salaryMidpoint":{"type":["number","null"],"description":"Defaults to the midpoint between minimum and maximum when omitted."},"salaryMinimum":{"type":["number","null"]},"targetBonus":{"type":["string","null"],"description":"Free text, e.g. \"10%\" ? varies by region, so it sits on the band."}}}},"description":{"type":["string","null"]},"employmentType":{"type":["string","null"],"description":"TARIF or AT. Applies to the whole level. Defaults to TARIF when pay is given."},"level":{"type":["integer","null"],"format":"int32","description":"The number this level carries in its track. Omit to number it by its position in the list (1-based) ? send it whenever a track starts above 1 or leaves gaps."},"name":{"type":"string","description":"In English."},"payGrade":{"type":["string","null"],"description":"Applies to the whole level, every pay band included."},"progressionCriteria":{"type":["string","null"]}},"required":["name"]}},"name":{"type":"string","description":"In English."},"trackId":{"type":["string","null"],"description":"Omit when creating. When updating, pass the track's existing 'trackId' so it keeps its identity ? a track written back without its id is a different track, and any role that had selected the old one loses that selection."}},"required":["name"]}},"translateOtherLanguages":{"type":"boolean","description":"False = keep the framework English-only; skip the automatic backfill into the tenant's other languages."},"type":{"type":"string","description":"MARKET, UNION or CUSTOM. Defaults to MARKET."}},"required":["description","name"],"description":"Replacement framework definition (English-only)."},"jobArchitectureId":{"type":"string","description":"Optional job architecture UUID to scope the update to."}},"required":["frameworkId","input"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"createdAt":{"type":"string","format":"date-time"},"currency":{"type":["string","null"],"description":"ISO 4217, for salary data on the framework's levels."},"description":{"type":"string"},"frameworkId":{"type":"string"},"jobArchitectureId":{"type":["string","null"],"description":"Null for tenant- or globally-scoped frameworks."},"lastUpdate":{"type":"string","format":"date-time"},"name":{"type":"string"},"ownerScope":{"type":"string","description":"GLOBAL (system-wide) or TENANT (owned by the caller's tenant)."},"tracks":{"description":"Career tracks (lanes), in defined ordering.","type":"array","items":{"type":"object","properties":{"description":{"type":"string"},"levels":{"description":"Ordered by ascending level number.","type":"array","items":{"type":"object","properties":{"compensation":{"description":"The level's pay. The entry without a 'region' is the level's default pay; any further entries are regional bands. Empty when no pay has been set.","type":"array","items":{"type":"object","properties":{"currency":{"type":["string","null"],"description":"ISO 4217. A band may use a different currency from the framework's."},"fringeBenefits":{"type":["string","null"]},"longTermIncentive":{"type":["string","null"]},"name":{"type":["string","null"],"description":"Label for the band, e.g. \"Denmark\". Absent on the level's default pay."},"payType":{"type":["string","null"],"description":"SALARIED or HOURLY."},"region":{"type":["string","null"],"description":"Country or region this band applies to. Absent on the level's default pay."},"salaryMaximum":{"type":["number","null"]},"salaryMidpoint":{"type":["number","null"]},"salaryMinimum":{"type":["number","null"]},"targetBonus":{"type":["string","null"]}}}},"description":{"type":"string"},"employmentType":{"type":["string","null"],"description":"TARIF or AT. Applies to the whole level."},"level":{"type":"integer","format":"int32","description":"1-based within the track."},"name":{"type":"string"},"payGrade":{"type":["string","null"],"description":"Applies to the whole level, every pay band included."},"progressionCriteria":{"type":["string","null"]}},"required":["description","level","name"]}},"name":{"type":"string"},"trackId":{"type":"string"}},"required":["description","levels","name","trackId"]}},"type":{"type":"string","description":"MARKET, UNION or CUSTOM."}},"required":["createdAt","description","frameworkId","lastUpdate","name","ownerScope","tracks","type"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"itemId":{"type":"string","description":"Role or level UUID."},"taskId":{"type":"string","description":"Obtain from the item's 'tasks'."},"title":{"type":"string","description":"Max 256 characters."},"description":{"type":"string"},"workflow":{"type":"object","properties":{"steps":{"description":"1..100 steps in execution order. Replaces the whole workflow.","type":"array","items":{"type":"object","properties":{"description":{"type":"string"},"physicality":{"type":["string","null"],"description":"'physical' or 'non-physical'."},"title":{"type":"string"}},"required":["description","title"]}}},"required":["steps"],"description":"Replaces the whole workflow."},"classification":{"type":"object","properties":{"reasoning":{"type":"string"},"value":{"type":"string","description":"'contribution' or 'commodity'."}},"required":["reasoning","value"]},"estimatedEffort":{"type":"object","properties":{"maximumHoursPerWeek":{"type":"number"},"minimumHoursPerWeek":{"type":"number","description":"Hours per week, > 0 and <= 168; minimum <= maximum."},"reasoning":{"type":"string"}},"required":["maximumHoursPerWeek","minimumHoursPerWeek","reasoning"]},"requiredSkills":{"type":"array","items":{"type":"string"},"description":"Replaces the current set. Existing skills keep their level; new ones default to 3."}},"required":["jobArchitectureId","itemId","taskId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"generationState":{"type":["string","null"],"description":"QUEUED right after generation or regeneration; content arrives asynchronously."},"itemVersion":{"type":["integer","null"],"format":"int32","description":"Role/level version the task section is pinned on after this call."},"orderedTaskIds":{"description":"Final order after 'reorder_work_tasks'.","type":["array","null"],"items":{"type":"string"}},"removed":{"type":["boolean","null"]},"taskId":{"type":["string","null"]},"version":{"type":["integer","null"],"format":"int32","description":"New pinned task version after update or regeneration."}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture that must contain every requested role or level."},"items":{"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string","description":"Role or level UUID belonging to the requested job architecture."},"version":{"type":"integer","format":"int32","description":"Exact version to publish or approve."}},"required":["itemId","version"]},"description":"Role or level UUID and exact version pairs; 1-200 items."}},"required":["jobArchitectureId","items"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"failed":{"description":"Failures in input order; empty means every action succeeded.","type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Stable backend error code."},"itemId":{"type":"string"},"message":{"type":"string"},"version":{"type":["integer","null"],"format":"int32","description":"Failed version; omitted for reviewer assignment."}},"required":["code","itemId","message"]}}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture that must contain every requested role or level."},"items":{"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string","description":"Role or level UUID belonging to the requested job architecture."},"reviewerUserId":{"type":["string","null"],"description":"User UUID to assign as reviewer. Omit or null to remove the item's current reviewer."}},"required":["itemId"]},"description":"Role or level UUIDs with the reviewer UUID to assign, or without one to remove the current reviewer; 1-200 items."}},"required":["jobArchitectureId","items"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"failed":{"description":"Failures in input order; empty means every action succeeded.","type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Stable backend error code."},"itemId":{"type":"string"},"message":{"type":"string"},"version":{"type":["integer","null"],"format":"int32","description":"Failed version; omitted for reviewer assignment."}},"required":["code","itemId","message"]}}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"itemId":{"type":"string","description":"Role or level UUID."},"translation":{"type":"object","properties":{"description":{"type":["string","null"],"description":"Optional internal working summary, not rendered profile content. User-visible content belongs only in 'structured'. Plain text; markdown is not rendered. Leave null unless the user asked for a summary."},"languageTag":{"type":["string","null"],"description":"BCP-47 author language (e.g. 'en-US'). Null or blank = 'en-US'. Other tenant languages are filled in asynchronously."},"structured":{"description":"Content sections. Legal tags come from 'get_job_profile_template'.","type":["array","null"],"items":{"type":"object","properties":{"id":{"type":["string","null"],"description":"Stable section-instance id. Defaults to 'tag' when omitted."},"tag":{"type":"string","description":"Section tag (e.g. 'responsibilities'). Must match a section from 'get_job_profile_template'."},"value":{"type":"string","description":"Plain text, in the author's language."}},"required":["tag","value"]}},"title":{"type":"string","description":"In the author's language. Visible to end users."}},"required":["title"],"description":"Candidate translation used as detection input."},"additionalPrompt":{"type":"object","properties":{"type":{"type":"string","enum":["REDETECT","ADJUST"],"description":"'REDETECT' = fresh run ignoring the item's current skills; 'ADJUST' = anchor on current skills and apply 'userInput' as guidance."},"userInput":{"type":["string","null"],"description":"Free-text guidance; only for 'ADJUST'."}},"required":["type"],"description":"Steering prompt for the detector. 'REDETECT' forces a fresh run ignoring prior skills; 'ADJUST' applies optional 'userInput' as free-text guidance."},"version":{"type":"integer","format":"int32","description":"Optional version number whose skills are used as the diff baseline. Defaults to the item's current version."}},"required":["jobArchitectureId","itemId","translation","additionalPrompt"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpDetectedSkill":{"type":"object","properties":{"competencyId":{"type":["string","null"],"description":"Competency grouping; preserved when persisting."},"confidence":{"type":["number","null"],"format":"float","description":"Detector confidence (0.0-1.0). Informational only."},"level":{"type":"integer","description":"Required proficiency level (1..5; language skills 1..6)."},"skillId":{"type":"string","description":"Must reference an existing catalog skill."},"textOccurrences":{"description":"Source text fragments that triggered detection. Ignored on input.","type":["array","null"],"items":{"type":"string"}},"title":{"type":"string","description":"English title. Ignored on input."},"type":{"type":"string","description":"'hard', 'soft' or 'language'. Ignored on input."}},"required":["level","skillId","title","type"]}},"type":"object","properties":{"addedSkills":{"description":"Informational delta vs the item's current skills.","type":"array","items":{"$ref":"#/$defs/McpDetectedSkill"}},"changedSkills":{"description":"Informational delta vs the item's current skills.","type":"array","items":{"$ref":"#/$defs/McpDetectedSkill"}},"detectedSkills":{"description":"Full inferred set. Pass verbatim as the 'skills' argument of 'update_job_role' / 'update_job_level' to persist.","type":"array","items":{"$ref":"#/$defs/McpDetectedSkill"}},"removedSkills":{"description":"Informational delta vs the item's current skills.","type":"array","items":{"$ref":"#/$defs/McpDetectedSkill"}}},"required":["addedSkills","changedSkills","detectedSkills","removedSkills"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"itemId":{"type":"string","description":"Role or level UUID."},"title":{"type":"string","description":"Max 256 characters; stored verbatim."},"language":{"type":"string","description":"BCP-47 tag of 'title'. Defaults to 'en-US'."}},"required":["jobArchitectureId","itemId","title"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"generationState":{"type":["string","null"],"description":"QUEUED right after generation or regeneration; content arrives asynchronously."},"itemVersion":{"type":["integer","null"],"format":"int32","description":"Role/level version the task section is pinned on after this call."},"orderedTaskIds":{"description":"Final order after 'reorder_work_tasks'.","type":["array","null"],"items":{"type":"string"}},"removed":{"type":["boolean","null"]},"taskId":{"type":["string","null"]},"version":{"type":["integer","null"],"format":"int32","description":"New pinned task version after update or regeneration."}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"itemId":{"type":"string","description":"Role or level UUID."},"taskId":{"type":"string","description":"Referenced work task UUID."},"title":{"type":"string","description":"Optional replacement title, max 256 characters."},"language":{"type":"string","description":"BCP-47 language of the title/instruction. Defaults to 'en-US'."},"instruction":{"type":"string","description":"Optional plain-text guidance for this regeneration."}},"required":["jobArchitectureId","itemId","taskId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"generationState":{"type":["string","null"],"description":"QUEUED right after generation or regeneration; content arrives asynchronously."},"itemVersion":{"type":["integer","null"],"format":"int32","description":"Role/level version the task section is pinned on after this call."},"orderedTaskIds":{"description":"Final order after 'reorder_work_tasks'.","type":["array","null"],"items":{"type":"string"}},"removed":{"type":["boolean","null"]},"taskId":{"type":["string","null"]},"version":{"type":["integer","null"],"format":"int32","description":"New pinned task version after update or regeneration."}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"itemId":{"type":"string","description":"Role or level UUID."},"taskId":{"type":"string"}},"required":["jobArchitectureId","itemId","taskId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"generationState":{"type":["string","null"],"description":"QUEUED right after generation or regeneration; content arrives asynchronously."},"itemVersion":{"type":["integer","null"],"format":"int32","description":"Role/level version the task section is pinned on after this call."},"orderedTaskIds":{"description":"Final order after 'reorder_work_tasks'.","type":["array","null"],"items":{"type":"string"}},"removed":{"type":["boolean","null"]},"taskId":{"type":["string","null"]},"version":{"type":["integer","null"],"format":"int32","description":"New pinned task version after update or regeneration."}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"itemId":{"type":"string","description":"Role or level UUID."},"orderedTaskIds":{"type":"array","items":{"type":"string"},"description":"Every current task UUID exactly once, in the desired order."}},"required":["jobArchitectureId","itemId","orderedTaskIds"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"generationState":{"type":["string","null"],"description":"QUEUED right after generation or regeneration; content arrives asynchronously."},"itemVersion":{"type":["integer","null"],"format":"int32","description":"Role/level version the task section is pinned on after this call."},"orderedTaskIds":{"description":"Final order after 'reorder_work_tasks'.","type":["array","null"],"items":{"type":"string"}},"removed":{"type":["boolean","null"]},"taskId":{"type":["string","null"]},"version":{"type":["integer","null"],"format":"int32","description":"New pinned task version after update or regeneration."}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"itemId":{"type":"string","description":"Role or level UUID the comments belong to."},"commentIds":{"type":"array","items":{"type":"string"},"description":"Root comment UUIDs to resolve."},"version":{"type":"integer","format":"int32","description":"Version the comments are resolved in (the version just created)."}},"required":["jobArchitectureId","itemId","commentIds","version"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"itemId":{"type":"string","description":"Role or level UUID the task belongs to."},"taskId":{"type":"string","description":"Work task UUID."},"commentIds":{"type":"array","items":{"type":"string"},"description":"Root comment UUIDs to resolve."},"version":{"type":"integer","format":"int32","description":"New task version that addressed the comments."}},"required":["jobArchitectureId","itemId","taskId","commentIds","version"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"levelId":{"type":"string","description":"Level UUID."},"version":{"type":"integer","format":"int32","description":"Version number."}},"required":["jobArchitectureId","levelId","version"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"roleId":{"type":"string","description":"Role UUID."},"version":{"type":"integer","format":"int32","description":"Version number."}},"required":["jobArchitectureId","roleId","version"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"levelId":{"type":"string","description":"Level UUID whose reviewer to set."},"reviewerUserId":{"type":"string","description":"User UUID of the new reviewer (from search_reviewers). Omit/null to remove the current reviewer."}},"required":["jobArchitectureId","levelId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"roleId":{"type":"string","description":"Role UUID whose reviewer to set."},"reviewerUserId":{"type":"string","description":"User UUID of the new reviewer (from search_reviewers). Omit/null to remove the current reviewer."}},"required":["jobArchitectureId","roleId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"levelId":{"type":"string","description":"Level UUID."},"translation":{"type":"object","properties":{"description":{"type":["string","null"],"description":"Optional internal working summary, not rendered profile content. User-visible content belongs only in 'structured'. Plain text; markdown is not rendered. Leave null unless the user asked for a summary."},"languageTag":{"type":["string","null"],"description":"BCP-47 author language (e.g. 'en-US'). Null or blank = 'en-US'. Other tenant languages are filled in asynchronously."},"structured":{"description":"Content sections. Legal tags come from 'get_job_profile_template'.","type":["array","null"],"items":{"type":"object","properties":{"id":{"type":["string","null"],"description":"Stable section-instance id. Defaults to 'tag' when omitted."},"tag":{"type":"string","description":"Section tag (e.g. 'responsibilities'). Must match a section from 'get_job_profile_template'."},"value":{"type":"string","description":"Plain text, in the author's language."}},"required":["tag","value"]}},"title":{"type":"string","description":"In the author's language. Visible to end users."}},"required":["title"],"description":"New origin-language translation; produces a new version."},"skills":{"type":"array","items":{"type":"object","properties":{"competencyId":{"type":["string","null"],"description":"Competency grouping; preserved when persisting."},"confidence":{"type":["number","null"],"format":"float","description":"Detector confidence (0.0-1.0). Informational only."},"level":{"type":"integer","description":"Required proficiency level (1..5; language skills 1..6)."},"skillId":{"type":"string","description":"Must reference an existing catalog skill."},"textOccurrences":{"description":"Source text fragments that triggered detection. Ignored on input.","type":["array","null"],"items":{"type":"string"}},"title":{"type":"string","description":"English title. Ignored on input."},"type":{"type":"string","description":"'hard', 'soft' or 'language'. Ignored on input."}},"required":["level","skillId","title","type"]},"description":"Skills to attach to the new version. Pass the 'detectedSkills' list from 'detect_skills' verbatim. Omit or pass null to leave the current skill set unchanged. An empty list clears all skills."},"comment":{"type":"string","description":"One short sentence, in the translation's language, summarising what changed in this update. Stored as the new version's change note. Omit or pass null to leave it empty."},"translateOtherLanguages":{"type":"boolean","description":"Whether to auto-translate this change into the tenant's other languages. Defaults to true. Pass false to change only the translation's own language and leave the others unchanged."},"translationInstructions":{"type":"array","items":{"type":"object","properties":{"instruction":{"type":"string","description":"Wording changes to apply in that language's translation, e.g. reviewer feedback on the existing translation."},"languageTag":{"type":"string","description":"BCP-47 tag of the target language this instruction applies to."}},"required":["instruction","languageTag"]},"description":"Per-target-language wording instructions applied during the automatic retranslation (e.g. reviewer feedback on a specific language's text). Ignored when 'translateOtherLanguages' is false. Each entry: languageTag (BCP-47) + instruction."},"replacementTaskTitles":{"type":"array","items":{"type":"string"},"description":"Full regeneration only. Replaces the complete work-task set: every current task and its generated content is dropped and new tasks are generated asynchronously from these titles. Omit/null preserves the current tasks. Never pass current titles verbatim; edit single tasks with the *_work_task tools."}},"required":["jobArchitectureId","levelId","translation"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"itemId":{"type":"string","description":"Created or updated role/level UUID."},"version":{"type":["integer","null"],"format":"int32","description":"New version number. Null when no new version was created (e.g. reviewer-only update)."}},"required":["itemId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"roleId":{"type":"string","description":"Role UUID."},"translation":{"type":"object","properties":{"description":{"type":["string","null"],"description":"Optional internal working summary, not rendered profile content. User-visible content belongs only in 'structured'. Plain text; markdown is not rendered. Leave null unless the user asked for a summary."},"languageTag":{"type":["string","null"],"description":"BCP-47 author language (e.g. 'en-US'). Null or blank = 'en-US'. Other tenant languages are filled in asynchronously."},"structured":{"description":"Content sections. Legal tags come from 'get_job_profile_template'.","type":["array","null"],"items":{"type":"object","properties":{"id":{"type":["string","null"],"description":"Stable section-instance id. Defaults to 'tag' when omitted."},"tag":{"type":"string","description":"Section tag (e.g. 'responsibilities'). Must match a section from 'get_job_profile_template'."},"value":{"type":"string","description":"Plain text, in the author's language."}},"required":["tag","value"]}},"title":{"type":"string","description":"In the author's language. Visible to end users."}},"required":["title"],"description":"New origin-language translation; produces a new version."},"skills":{"type":"array","items":{"type":"object","properties":{"competencyId":{"type":["string","null"],"description":"Competency grouping; preserved when persisting."},"confidence":{"type":["number","null"],"format":"float","description":"Detector confidence (0.0-1.0). Informational only."},"level":{"type":"integer","description":"Required proficiency level (1..5; language skills 1..6)."},"skillId":{"type":"string","description":"Must reference an existing catalog skill."},"textOccurrences":{"description":"Source text fragments that triggered detection. Ignored on input.","type":["array","null"],"items":{"type":"string"}},"title":{"type":"string","description":"English title. Ignored on input."},"type":{"type":"string","description":"'hard', 'soft' or 'language'. Ignored on input."}},"required":["level","skillId","title","type"]},"description":"Skills to attach to the new version. Pass the 'detectedSkills' list from 'detect_skills' verbatim. Omit or pass null to leave the current skill set unchanged. An empty list clears all skills."},"comment":{"type":"string","description":"One short sentence, in the translation's language, summarising what changed in this update. Stored as the new version's change note. Omit or pass null to leave it empty."},"translateOtherLanguages":{"type":"boolean","description":"Whether to auto-translate this change into the tenant's other languages. Defaults to true. Pass false to change only the translation's own language and leave the others unchanged."},"translationInstructions":{"type":"array","items":{"type":"object","properties":{"instruction":{"type":"string","description":"Wording changes to apply in that language's translation, e.g. reviewer feedback on the existing translation."},"languageTag":{"type":"string","description":"BCP-47 tag of the target language this instruction applies to."}},"required":["instruction","languageTag"]},"description":"Per-target-language wording instructions applied during the automatic retranslation (e.g. reviewer feedback on a specific language's text). Ignored when 'translateOtherLanguages' is false. Each entry: languageTag (BCP-47) + instruction."},"replacementTaskTitles":{"type":"array","items":{"type":"string"},"description":"Full regeneration only. Replaces the complete work-task set: every current task and its generated content is dropped and new tasks are generated asynchronously from these titles. Omit/null preserves the current tasks. Never pass current titles verbatim; edit single tasks with the *_work_task tools."}},"required":["jobArchitectureId","roleId","translation"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"itemId":{"type":"string","description":"Created or updated role/level UUID."},"version":{"type":["integer","null"],"format":"int32","description":"New version number. Null when no new version was created (e.g. reviewer-only update)."}},"required":["itemId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"itemId":{"type":"string","description":"Role or level UUID."},"taskId":{"type":"string","description":"Obtain from the item's 'tasks'."},"title":{"type":"string","description":"Max 256 characters."},"description":{"type":"string"},"workflow":{"type":"object","properties":{"steps":{"description":"1..100 steps in execution order. Replaces the whole workflow.","type":"array","items":{"type":"object","properties":{"description":{"type":"string"},"physicality":{"type":["string","null"],"description":"'physical' or 'non-physical'."},"title":{"type":"string"}},"required":["description","title"]}}},"required":["steps"],"description":"Replaces the whole workflow."},"classification":{"type":"object","properties":{"reasoning":{"type":"string"},"value":{"type":"string","description":"'contribution' or 'commodity'."}},"required":["reasoning","value"]},"estimatedEffort":{"type":"object","properties":{"maximumHoursPerWeek":{"type":"number"},"minimumHoursPerWeek":{"type":"number","description":"Hours per week, > 0 and <= 168; minimum <= maximum."},"reasoning":{"type":"string"}},"required":["maximumHoursPerWeek","minimumHoursPerWeek","reasoning"]},"requiredSkills":{"type":"array","items":{"type":"string"},"description":"Replaces the current set. Existing skills keep their level; new ones default to 3."}},"required":["jobArchitectureId","itemId","taskId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"generationState":{"type":["string","null"],"description":"QUEUED right after generation or regeneration; content arrives asynchronously."},"itemVersion":{"type":["integer","null"],"format":"int32","description":"Role/level version the task section is pinned on after this call."},"orderedTaskIds":{"description":"Final order after 'reorder_work_tasks'.","type":["array","null"],"items":{"type":"string"}},"removed":{"type":["boolean","null"]},"taskId":{"type":["string","null"]},"version":{"type":["integer","null"],"format":"int32","description":"New pinned task version after update or regeneration."}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpTranslatedText":{"type":"object","properties":{"language":{"type":"string","description":"BCP-47 language tag, e.g. 'en-US'."},"text":{"type":"string"}},"required":["language","text"]}},"type":"object","properties":{"description":{"description":"Company description per language. Empty when not set.","type":"array","items":{"$ref":"#/$defs/McpTranslatedText"}},"name":{"type":"string"},"priorities":{"description":"Top priorities per language. Empty when not set.","type":"array","items":{"$ref":"#/$defs/McpTranslatedText"}},"size":{"type":"integer","format":"int32","description":"Number of employees."}},"required":["name","size"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpPluralTerm":{"type":"object","properties":{"language":{"type":"string","description":"BCP-47 language tag, e.g. 'en-US'."},"many":{"type":"string","description":"Plural label, e.g. 'Job Families'."},"one":{"type":"string","description":"Singular label, e.g. 'Job Family'."}},"required":["language","many","one"]},"McpTerm":{"type":"object","properties":{"language":{"type":"string","description":"BCP-47 language tag, e.g. 'en-US'."},"value":{"type":"string"}},"required":["language","value"]}},"type":"object","properties":{"jobArchitectureTerminology":{"type":["object","null"],"properties":{"jobClusters":{"type":["array","null"],"items":{"$ref":"#/$defs/McpPluralTerm"}},"jobFamilies":{"type":["array","null"],"items":{"$ref":"#/$defs/McpPluralTerm"}},"jobLevels":{"type":["array","null"],"items":{"$ref":"#/$defs/McpPluralTerm"}},"jobRoles":{"type":["array","null"],"items":{"$ref":"#/$defs/McpPluralTerm"}}}},"preferShortSkillDescriptions":{"type":"boolean"},"skillProficiencyLevelTerminology":{"type":["object","null"],"properties":{"advanced":{"type":["array","null"],"items":{"$ref":"#/$defs/McpTerm"}},"basic":{"type":["array","null"],"items":{"$ref":"#/$defs/McpTerm"}},"domainExpert":{"type":["array","null"],"items":{"$ref":"#/$defs/McpTerm"}},"professional":{"type":["array","null"],"items":{"$ref":"#/$defs/McpTerm"}},"qualified":{"type":["array","null"],"items":{"$ref":"#/$defs/McpTerm"}}}},"skillsSynchronizationMode":{"type":"string","description":"PERMISSIVE: employees may add skills beyond their job profile. RESTRICTED: only job-profile skills."},"warningSignalsVisible":{"type":"boolean"}},"required":["preferShortSkillDescriptions","skillsSynchronizationMode","warningSignalsVisible"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."}},"required":["jobArchitectureId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"metadata":{"type":["object","null"],"properties":{"businessUnits":{"type":"array","items":{"type":"string"}},"companyDescription":{"type":"string"},"companyExecutiveRolesInFamily":{"type":"boolean"},"companyName":{"type":["string","null"]},"companyPriorities":{"type":["string","null"]},"companySize":{"type":"integer","format":"int32"},"jobArchitectureId":{"type":"string"},"primaryGoalOtherText":{"type":["string","null"]},"primaryGoals":{"description":"Primary goal enum names as stored by the api (PrimaryGoalType).","type":"array","items":{"type":"string"}}},"required":["companyExecutiveRolesInFamily","companySize","jobArchitectureId"]}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"enabledOnly":{"type":"boolean","description":"True (default) returns only enabled languages; false returns only disabled ones."}},"required":[]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"languages":{"type":"array","items":{"type":"object","properties":{"enabled":{"type":"boolean"},"isDefault":{"type":"boolean"},"language":{"type":"string","description":"BCP-47 language tag."}},"required":["enabled","isDefault","language"]}}},"required":["languages"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpTranslatedText":{"type":"object","properties":{"language":{"type":"string","description":"BCP-47 language tag, e.g. 'en-US'."},"text":{"type":"string"}},"required":["language","text"]}},"type":"object","properties":{"update":{"type":"object","properties":{"description":{"description":"Replaces the full per-language description list. Null keeps the current list.","type":["array","null"],"items":{"$ref":"#/$defs/McpTranslatedText"}},"name":{"type":["string","null"],"description":"New company name (max 50 chars). Null keeps the current name."},"priorities":{"description":"Replaces the full per-language priorities list. Null keeps the current list.","type":["array","null"],"items":{"$ref":"#/$defs/McpTranslatedText"}},"size":{"type":["integer","null"],"format":"int32","description":"Number of employees (>= 1). Null keeps the current size."}},"description":"Fields to change. Omit or null-out everything that stays as it is."}},"required":["update"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpTranslatedText":{"type":"object","properties":{"language":{"type":"string","description":"BCP-47 language tag, e.g. 'en-US'."},"text":{"type":"string"}},"required":["language","text"]}},"type":"object","properties":{"description":{"description":"Company description per language. Empty when not set.","type":"array","items":{"$ref":"#/$defs/McpTranslatedText"}},"name":{"type":"string"},"priorities":{"description":"Top priorities per language. Empty when not set.","type":"array","items":{"$ref":"#/$defs/McpTranslatedText"}},"size":{"type":"integer","format":"int32","description":"Number of employees."}},"required":["name","size"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpPluralTerm":{"type":"object","properties":{"language":{"type":"string","description":"BCP-47 language tag, e.g. 'en-US'."},"many":{"type":"string","description":"Plural label, e.g. 'Job Families'."},"one":{"type":"string","description":"Singular label, e.g. 'Job Family'."}},"required":["language","many","one"]},"McpTerm":{"type":"object","properties":{"language":{"type":"string","description":"BCP-47 language tag, e.g. 'en-US'."},"value":{"type":"string"}},"required":["language","value"]}},"type":"object","properties":{"update":{"type":"object","properties":{"jobArchitectureTerminology":{"type":["object","null"],"properties":{"jobClusters":{"type":["array","null"],"items":{"$ref":"#/$defs/McpPluralTerm"}},"jobFamilies":{"type":["array","null"],"items":{"$ref":"#/$defs/McpPluralTerm"}},"jobLevels":{"type":["array","null"],"items":{"$ref":"#/$defs/McpPluralTerm"}},"jobRoles":{"type":["array","null"],"items":{"$ref":"#/$defs/McpPluralTerm"}}}},"preferShortSkillDescriptions":{"type":["boolean","null"]},"skillProficiencyLevelTerminology":{"type":["object","null"],"properties":{"advanced":{"type":["array","null"],"items":{"$ref":"#/$defs/McpTerm"}},"basic":{"type":["array","null"],"items":{"$ref":"#/$defs/McpTerm"}},"domainExpert":{"type":["array","null"],"items":{"$ref":"#/$defs/McpTerm"}},"professional":{"type":["array","null"],"items":{"$ref":"#/$defs/McpTerm"}},"qualified":{"type":["array","null"],"items":{"$ref":"#/$defs/McpTerm"}}}},"skillsSynchronizationMode":{"type":["string","null"],"description":"PERMISSIVE or RESTRICTED. Null keeps the current mode."},"warningSignalsVisible":{"type":["boolean","null"]}},"description":"Fields to change. Omit or null-out everything that stays as it is."}},"required":["update"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","$defs":{"McpPluralTerm":{"type":"object","properties":{"language":{"type":"string","description":"BCP-47 language tag, e.g. 'en-US'."},"many":{"type":"string","description":"Plural label, e.g. 'Job Families'."},"one":{"type":"string","description":"Singular label, e.g. 'Job Family'."}},"required":["language","many","one"]},"McpTerm":{"type":"object","properties":{"language":{"type":"string","description":"BCP-47 language tag, e.g. 'en-US'."},"value":{"type":"string"}},"required":["language","value"]}},"type":"object","properties":{"jobArchitectureTerminology":{"type":["object","null"],"properties":{"jobClusters":{"type":["array","null"],"items":{"$ref":"#/$defs/McpPluralTerm"}},"jobFamilies":{"type":["array","null"],"items":{"$ref":"#/$defs/McpPluralTerm"}},"jobLevels":{"type":["array","null"],"items":{"$ref":"#/$defs/McpPluralTerm"}},"jobRoles":{"type":["array","null"],"items":{"$ref":"#/$defs/McpPluralTerm"}}}},"preferShortSkillDescriptions":{"type":"boolean"},"skillProficiencyLevelTerminology":{"type":["object","null"],"properties":{"advanced":{"type":["array","null"],"items":{"$ref":"#/$defs/McpTerm"}},"basic":{"type":["array","null"],"items":{"$ref":"#/$defs/McpTerm"}},"domainExpert":{"type":["array","null"],"items":{"$ref":"#/$defs/McpTerm"}},"professional":{"type":["array","null"],"items":{"$ref":"#/$defs/McpTerm"}},"qualified":{"type":["array","null"],"items":{"$ref":"#/$defs/McpTerm"}}}},"skillsSynchronizationMode":{"type":"string","description":"PERMISSIVE: employees may add skills beyond their job profile. RESTRICTED: only job-profile skills."},"warningSignalsVisible":{"type":"boolean"}},"required":["preferShortSkillDescriptions","skillsSynchronizationMode","warningSignalsVisible"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"update":{"type":"object","properties":{"businessUnits":{"description":"Replaces the full list.","type":["array","null"],"items":{"type":"string"}},"companyDescription":{"type":["string","null"]},"companyExecutiveRolesInFamily":{"type":["boolean","null"]},"companyName":{"type":["string","null"],"description":"Max 120 chars."},"companyPriorities":{"type":["string","null"]},"companySize":{"type":["integer","null"],"format":"int32","description":"1..10000000."},"primaryGoalOtherText":{"type":["string","null"]},"primaryGoals":{"description":"Replaces the full list. PrimaryGoalType enum names.","type":["array","null"],"items":{"type":"string"}}},"description":"Fields to change. Omit or null-out everything that stays as it is."}},"required":["jobArchitectureId","update"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"metadata":{"type":["object","null"],"properties":{"businessUnits":{"type":"array","items":{"type":"string"}},"companyDescription":{"type":"string"},"companyExecutiveRolesInFamily":{"type":"boolean"},"companyName":{"type":["string","null"]},"companyPriorities":{"type":["string","null"]},"companySize":{"type":"integer","format":"int32"},"jobArchitectureId":{"type":"string"},"primaryGoalOtherText":{"type":["string","null"]},"primaryGoals":{"description":"Primary goal enum names as stored by the api (PrimaryGoalType).","type":"array","items":{"type":"string"}}},"required":["companyExecutiveRolesInFamily","companySize","jobArchitectureId"]}}}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string","description":"Job architecture UUID."},"update":{"type":"object","properties":{"languageTag":{"type":["string","null"],"description":"BCP-47 tag the title is written in. Defaults to 'en-US'."},"title":{"type":"string","description":"The new name of the job architecture. 1..256 characters, not blank."}},"required":["title"],"description":"The new name and the language it is written in."}},"required":["jobArchitectureId","update"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jobArchitectureId":{"type":"string"},"languageTag":{"type":"string"},"title":{"type":"string"}},"required":["jobArchitectureId","languageTag","title"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"userId":{"type":"string","description":"User UUID from 'list_tenant_members'."}},"required":["userId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"userId":{"type":"string"}},"required":["userId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"methods":{"description":"Available invitation methods: EMAIL and/or SSO. Empty when none could be determined.","type":"array","items":{"type":"string"}},"methodsUnavailableReason":{"type":["string","null"],"description":"Set when the invitation methods could not be determined; explains why. Roles are still valid."},"roles":{"description":"Roles that may be assigned to an invitee. Use roleId verbatim in invite_users.","type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"roleId":{"type":"string"}},"required":["label","roleId"]}}},"required":["methods","roles"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"invitations":{"type":"array","items":{"type":"object","properties":{"emailAddress":{"type":"string"},"firstName":{"type":"string"},"jobTitle":{"type":["string","null"]},"lastName":{"type":"string"},"method":{"type":["string","null"],"description":"EMAIL or SSO. Null = tenant default."},"roles":{"description":"Role ids from get_invitation_options. Empty = default role.","type":"array","items":{"type":"string"}}},"required":["emailAddress","firstName","lastName"]},"description":"People to invite (1-20), each with email address, first and last name."}},"required":["invitations"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"emailAddress":{"type":"string"},"error":{"type":["string","null"],"description":"Set when this entry failed (e.g. already a member). Other entries still succeed."},"invitationId":{"type":["string","null"],"description":"Invitation id when created or re-sent."},"reinvited":{"type":"boolean","description":"True when an existing pending invitation was re-sent instead of created."}},"required":["emailAddress"]}}},"required":["results"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"required":[]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"invitations":{"type":"array","items":{"type":"object","properties":{"createdAt":{"type":"string","description":"ISO-8601 instant."},"emailAddress":{"type":"string"},"id":{"type":"string"},"jobTitle":{"type":["string","null"]},"roles":{"type":"array","items":{"type":"string"}},"state":{"type":"string","description":"UserInvitationState value."}},"required":["createdAt","emailAddress","id","roles","state"]}}},"required":["invitations"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"searchTerm":{"type":"string","description":"Filters by name or email address. Omit only for a deliberate full listing."},"page":{"type":"integer","format":"int32","description":"0-based page number. Defaults to 0."},"pageSize":{"type":"integer","format":"int32","description":"Members per page (1-100). Defaults to 25."}},"required":[]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"members":{"type":"array","items":{"type":"object","properties":{"emailAddress":{"type":["string","null"]},"firstName":{"type":["string","null"]},"id":{"type":"string"},"lastName":{"type":["string","null"]},"lastSignedIn":{"type":["string","null"],"description":"ISO-8601 instant or null when the user never signed in."},"roles":{"description":"Role ids, e.g. 'job_architect', 'reviewer', 'user'.","type":"array","items":{"type":"string"}},"status":{"type":"string","description":"TenantMemberStatus value, e.g. ACTIVE or INVITED."}},"required":["id","roles","status"]}},"page":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"total":{"type":"integer","format":"int64"}},"required":["members","page","pageSize","total"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"invitationId":{"type":"string","description":"Invitation UUID from 'list_pending_invitations'."}},"required":["invitationId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"invitationId":{"type":"string"}},"required":["invitationId"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"searchTerm":{"type":"string","description":"Free-text skill search, at most 100 characters."},"statusFilter":{"type":"array","items":{"type":"string"},"description":"Sync statuses to count: SYNC, SYNC_WHEN_IN_PROFILE, NOT_SYNCED, NEEDS_REVIEW."},"jobArchitectureId":{"type":"string","description":"Job architecture UUID to scope the count to one architecture."},"roleIds":{"type":"array","items":{"type":"string"},"description":"Role item UUIDs (at most 50)."},"levelIds":{"type":"array","items":{"type":"string"},"description":"Level item UUIDs (at most 50)."},"skillTypes":{"type":"array","items":{"type":"string"},"description":"Skill types: hard, soft, language."},"sources":{"type":"array","items":{"type":"string"},"description":"How the skill entered the catalog: attributed or manual."}},"required":[]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"appliedFilters":{"description":"The filters that were applied, in 'name=value' form. Empty means the whole catalog was counted.","type":"array","items":{"type":"string"}},"disabled":{"type":"integer","format":"int32","description":"Disabled (NOT_SYNCED) skills."},"needsReview":{"type":"integer","format":"int32","description":"Skills still awaiting review (NEEDS_REVIEW)."},"synced":{"type":"integer","format":"int32","description":"Approved (SYNC) and Automatic (SYNC_WHEN_IN_PROFILE) counted together."},"total":{"type":"integer","format":"int32","description":"Skills in the catalog matching the filters."}},"required":["disabled","needsReview","synced","total"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"skillIds":{"type":"array","items":{"type":"string"},"description":"Skill UUIDs, 1 to 50, copied verbatim from an earlier tool result."}},"required":["skillIds"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"skills":{"type":"array","items":{"type":"object","properties":{"inCatalog":{"type":"boolean","description":"True when the skill already appears in the tenant catalog ? pinned, or attributed to a role, level or course and therefore listed on the Skills page with an effective status."},"skillId":{"type":"string"},"skillType":{"type":["string","null"],"description":"hard, soft or language."},"syncStatus":{"type":["string","null"],"description":"The catalog status; null when the skill is not in the catalog."},"syncStatusLabel":{"type":["string","null"],"description":"The product name for syncStatus; null when the skill is not in the catalog."},"synced":{"type":["boolean","null"],"description":"Whether the skill currently syncs to employee profiles under the tenant's synchronization mode."},"title":{"type":"string"}},"required":["inCatalog","skillId","title"]}},"unknownIds":{"description":"Ids that resolve to no skill at all. Never an error ? name them back to the user.","type":"array","items":{"type":"string"}}},"required":["skills"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"searchTerm":{"type":"string","description":"Free-text skill search, at most 100 characters."},"statusFilter":{"type":"array","items":{"type":"string"},"description":"Sync statuses to include: SYNC, SYNC_WHEN_IN_PROFILE, NOT_SYNCED, NEEDS_REVIEW."},"jobArchitectureId":{"type":"string","description":"Job architecture UUID to scope the page to one architecture."},"roleIds":{"type":"array","items":{"type":"string"},"description":"Role item UUIDs (at most 50)."},"levelIds":{"type":"array","items":{"type":"string"},"description":"Level item UUIDs (at most 50)."},"ids":{"type":"array","items":{"type":"string"},"description":"Skill UUIDs to restrict the page to (at most 50)."},"skillTypes":{"type":"array","items":{"type":"string"},"description":"Skill types: hard, soft, language."},"sources":{"type":"array","items":{"type":"string"},"description":"How the skill entered the catalog: attributed or manual."},"page":{"type":"integer","format":"int32","description":"0-based page number (at most 999). Defaults to 0."},"size":{"type":"integer","format":"int32","description":"Rows per page, at most 50. Defaults to 50."},"sort":{"type":"string","description":"Sort as 'addedAt', 'roles', 'levels' or 'skillId', prefixed with '-' for descending. Defaults to newest first."}},"required":[]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"hasMore":{"type":"boolean","description":"True when further pages exist. Report the total and let the user ask for the next page."},"page":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"skills":{"type":"array","items":{"type":"object","properties":{"inCatalogSince":{"type":["string","null"],"description":"ISO-8601 instant the skill entered the catalog, or null when it is only attributed."},"skillId":{"type":"string"},"skillType":{"type":["string","null"],"description":"hard, soft or language."},"syncStatus":{"type":"string","description":"SYNC, SYNC_WHEN_IN_PROFILE, NOT_SYNCED or NEEDS_REVIEW."},"syncStatusLabel":{"type":"string","description":"The name the product shows for syncStatus: Approved, Automatic, Disabled or Review pending."},"title":{"type":"string"}},"required":["skillId","syncStatus","syncStatusLabel","title"]}},"total":{"type":"integer","format":"int32","description":"Total number of skills matching the filters, across all pages."},"totalPages":{"type":"integer","format":"int32"}},"required":["hasMore","page","size","skills","total","totalPages"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"entries":{"type":"array","items":{"type":"object","properties":{"skillId":{"type":"string"},"syncStatus":{"type":"string","description":"SYNC, SYNC_WHEN_IN_PROFILE, NOT_SYNCED or NEEDS_REVIEW."}},"required":["skillId","syncStatus"]},"description":"The skills to restatus or add, 1 to 50, each with a skill UUID and a sync status."}},"required":["entries"]}
{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"applied":{"type":"array","items":{"type":"object","properties":{"added":{"type":"boolean","description":"True when the skill did not appear in the catalog before this write, i.e. it was added rather than restatused."},"newStatus":{"type":"string"},"previousStatus":{"type":["string","null"],"description":"The status the skill was listed under before the change; null when it did not appear in the catalog."},"skillId":{"type":"string"},"title":{"type":["string","null"]}},"required":["added","newStatus","skillId"]}},"failed":{"description":"Entries that could not be written. Other entries still went through ? read both halves.","type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"skillId":{"type":"string"}},"required":["reason","skillId"]}}},"required":["applied"]}