add_job_conditions
Add conditions to a job
All MCP toolsWrite
Add the hiring team's conditions to ONE job from one input — the web section's add path, verbatim: the Japanese full stop and newlines split the input into one row per sentence, and every sentence is classified at save time through the same compile lane. A sentence that cannot be classified, or that names a protected attribute, refuses the WHOLE save (nothing is stored — retry is safe after rephrasing); at most 20 rows are kept per job and each sentence is bounded at 256 characters. Each row carries its save-time classification: "auto" (compiled to a deterministic rule matchwire executes mechanically against candidates' REGISTERED preferences — nobody is judged; only these rows have the enabled switch), or one of "unsupported" / "subjective" / "ambiguous" (kept as written but not automated). The compiled rule itself is internal and never returned. A deterministic save-time lint refuses criteria that must not be used (protected attributes and their near proxies — age, gender, nationality, health, and the like): rephrase in terms of the applicant's own aptitude, ability, experience, and working conditions. The rows never reach a candidate.
Input schema
{
"type": "object",
"properties": {
"jobId": {
"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 job to add conditions to (jobs.id)."
},
"input": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"description": "The condition sentence(s) — Japanese-full-stop or newline-separated sentences become one row each; each sentence is bounded at 256 characters, the whole input at 2000."
}
},
"required": [
"jobId",
"input"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output schema
{
"type": "object",
"properties": {
"added": {
"type": "array",
"items": {
"type": "object",
"properties": {
"conditionId": {
"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 row id (job_conditions.id)."
},
"text": {
"type": "string",
"maxLength": 256,
"description": "The condition exactly as the hiring team wrote it."
},
"classification": {
"type": "string",
"enum": [
"auto",
"protected",
"unsupported",
"subjective",
"ambiguous"
],
"description": "The save-time classification (closed vocabulary; \"protected\" is never stored on this side — the save refuses it)."
},
"enabled": {
"type": "boolean",
"description": "The rule switch — meaningful on \"auto\" rows only: false pauses the rule (kept, not executed)."
}
},
"required": [
"conditionId",
"text",
"classification",
"enabled"
],
"additionalProperties": false
},
"description": "The rows this call created, in display order."
}
},
"required": [
"added"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}