search_occupations
Search the occupation vocabulary
All MCP toolsRead
Start with this to resolve a job-title phrase into the occupation vocabulary: hits nearest in meaning, best first, each with the occupation's id (the number to store), its display name in the requested language, and exact — true for a hit whose display name matches the phrase itself, pinned to the top. mode is semantic, or exact_only when no embedding could be made and only exact display-name matches answer. Any language finds the same occupations. Save a hit as { id } (name may ride along; it is not stored — reads return the person's-language name) in save_conditions (candidate) or in create_job_posting / update_job_posting's occupations (employer). No hit is a normal answer: pass the phrase as { name } alone to those tools and an occupation row is created for it — never guess a different hit. Occupations are counted by id. Global reference data — no person or organization axis.
Input schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"maxLength": 200,
"description": "The phrase to resolve, in any language. Empty returns no hits."
},
"locale": {
"description": "Language of the returned names; default: the connection's language.",
"type": "string",
"enum": [
"en",
"ja",
"zh-Hans",
"zh-Hant"
]
},
"limit": {
"description": "Result cap, 1..20 (default 10).",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"required": [
"query"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output schema
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"semantic",
"exact_only"
],
"description": "How the hits were found: `semantic` = nearest by meaning with exact display-name matches first; `exact_only` = no embedding could be made, so only exact display-name matches answer."
},
"hits": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "The occupation's number — the identity a stored occupation reference carries."
},
"name": {
"type": "string",
"minLength": 1,
"description": "The display name in the requested locale — the row's own name, never a synonym."
},
"exact": {
"type": "boolean",
"description": "True when one of the row's display names folds onto the typed word; such hits come first."
}
},
"required": [
"id",
"name",
"exact"
],
"additionalProperties": false,
"description": "One occupation search hit: the occupation's number, its display name in the requested locale, and whether that name matched the typed word exactly. Store its id ({ id }; the name may ride along and is not kept)."
},
"description": "Ranked hits, best first: exact display-name matches, then the nearest by meaning."
}
},
"required": [
"mode",
"hits"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}