{"serverId":"mcp-registry/cz.jobsai/jobsai","tools":[{"name":"archive_job","fixed":{"name":"archive_job","description":"Archive (unpublish) a job posting of the represented company.","inputSchema":{"type":"object","required":["jobId"],"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)$"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":117,"tokensAfter":117},{"name":"create_job_draft","fixed":{"name":"create_job_draft","description":"Create a draft job posting for the represented company. Nothing is public until publish_job.","inputSchema":{"type":"object","required":["kind","titleCs","descriptionCs","locationKraj","remoteOk"],"properties":{"kind":{"enum":["hpp","dpp","dpc","brigada","freelance"],"type":"string"},"titleCs":{"type":"string","maxLength":200,"minLength":3},"applyUrl":{"type":"string","maxLength":500},"remoteOk":{"type":"boolean"},"applyMode":{"enum":["internal","external"],"type":"string","default":"internal"},"salaryRange":{"type":"object","required":["min","max"],"properties":{"max":{"type":"integer","maximum":2147483647,"exclusiveMinimum":0},"min":{"type":"integer","maximum":2147483647,"exclusiveMinimum":0}}},"locationKraj":{"enum":["Hlavní město Praha","Středočeský kraj","Jihočeský kraj","Plzeňský kraj","Karlovarský kraj","Ústecký kraj","Liberecký kraj","Královéhradecký kraj","Pardubický kraj","Kraj Vysočina","Jihomoravský kraj","Olomoucký kraj","Zlínský kraj","Moravskoslezský kraj"],"type":"string"},"salaryPeriod":{"enum":["MONTHLY","HOURLY"],"type":"string","default":"MONTHLY"},"descriptionCs":{"type":"string","maxLength":20000,"minLength":20}},"description":"Creates a DRAFT job of the represented company. descriptionCs is plain text or Markdown in Czech (HTML is stripped). salaryRange is optional for a draft but required to publish.","additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":395,"tokensAfter":395},{"name":"execute_approved_action","fixed":{"name":"execute_approved_action","description":"Execute exactly the command the candidate confirmed, once, while the approval is valid.","inputSchema":{"type":"object","required":["proposalId"],"properties":{"command":{"oneOf":[{"type":"object","required":["actionType","command"],"properties":{"command":{"type":"object","required":["expectedRevision"],"properties":{"nightWork":{"anyOf":[{"enum":["allowed","excluded"],"type":"string"},{"type":"null"}]},"priorities":{"type":"object","properties":{"remote":{"anyOf":[{"enum":["preferred","required"],"type":"string"},{"type":"null"}]},"salary":{"anyOf":[{"enum":["preferred","required"],"type":"string"},{"type":"null"}]},"shifts":{"anyOf":[{"enum":["preferred","required"],"type":"string"},{"type":"null"}]},"commute":{"anyOf":[{"enum":["preferred","required"],"type":"string"},{"type":"null"}]},"location":{"anyOf":[{"enum":["preferred","required"],"type":"string"},{"type":"null"}]},"employment":{"anyOf":[{"enum":["preferred","required"],"type":"string"},{"type":"null"}]},"availability":{"anyOf":[{"enum":["preferred","required"],"type":"string"},{"type":"null"}]},"workingHours":{"anyOf":[{"enum":["preferred","required"],"type":"string"},{"type":"null"}]}},"additionalProperties":false},"weekendWork":{"anyOf":[{"enum":["allowed","excluded"],"type":"string"},{"type":"null"}]},"commuteModes":{"anyOf":[{"type":"array","items":{"enum":["car","transit","bicycle","walk"],"type":"string"},"maxItems":4,"minItems":1},{"type":"null"}]},"confirmExisting":{"type":"object","properties":{"remotePref":{"enum":["ONSITE","HYBRID","REMOTE"],"type":"string"},"workingHoursPref":{"enum":["FULL_TIME","PART_TIME","CONTRACT","DPP_DPC"],"type":"string"}},"additionalProperties":false},"expectedRevision":{"type":"integer","maximum":2147483647,"minimum":0},"maxCommuteMinutes":{"anyOf":[{"type":"integer","maximum":240,"minimum":1},{"type":"null"}]}},"additionalProperties":false},"actionType":{"type":"string","const":"CANDIDATE_REQUIREMENTS_UPDATE"}},"additionalProperties":false},{"type":"object","required":["actionType","command"],"properties":{"command":{"type":"object","required":["jobId","topic","expectedTermsRevision"],"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)$"},"topic":{"enum":["salary","shifts","start_window","training"],"type":"string"},"channels":{"type":"array","items":{"enum":["email","push"],"type":"string"},"maxItems":2},"expectedTermsRevision":{"type":"integer","maximum":2147483647,"minimum":0}},"additionalProperties":false},"actionType":{"type":"string","const":"JOB_QUESTION_OPEN"}},"additionalProperties":false},{"type":"object","required":["actionType","command"],"properties":{"command":{"type":"object","required":["questionId"],"properties":{"questionId":{"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)$"}},"additionalProperties":false},"actionType":{"type":"string","const":"JOB_QUESTION_WITHDRAW"}},"additionalProperties":false},{"type":"object","required":["actionType","command"],"properties":{"command":{"type":"object","required":["jobId","previous","cvId","coverLetterMarkdown","coverLetterAiAssisted"],"properties":{"cvId":{"anyOf":[{"type":"string","format":"cuid","pattern":"^[cC][0-9a-z]{6,}$"},{"type":"null"}]},"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)$"},"previous":{"anyOf":[{"type":"object","required":["id","submissionVersion"],"properties":{"id":{"type":"string","format":"cuid","pattern":"^[cC][0-9a-z]{6,}$"},"submissionVersion":{"type":"integer","maximum":2147483647,"minimum":1}},"additionalProperties":false},{"type":"null"}]},"coverLetterAiModel":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"coverLetterMarkdown":{"anyOf":[{"type":"string","maxLength":20000},{"type":"null"}]},"coverLetterAiAssisted":{"type":"boolean"}},"additionalProperties":false},"actionType":{"type":"string","const":"APPLICATION_SUBMIT"}},"additionalProperties":false},{"type":"object","required":["actionType","interviewId","command"],"properties":{"command":{"type":"object","required":["submissionVersion","expectedRevision","expectedProposalRevision","slotId"],"properties":{"slotId":{"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)$"},"expectedRevision":{"type":"integer","maximum":2147483647,"exclusiveMinimum":0},"submissionVersion":{"type":"integer","maximum":2147483647,"exclusiveMinimum":0},"expectedProposalRevision":{"type":"integer","maximum":2147483647,"exclusiveMinimum":0}},"additionalProperties":false},"actionType":{"type":"string","const":"INTERVIEW_ACCEPT"},"interviewId":{"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)$"}},"additionalProperties":false},{"type":"object","required":["actionType","interviewId","command"],"properties":{"command":{"type":"object","required":["submissionVersion","expectedRevision","expectedProposalRevision","reason"],"properties":{"reason":{"type":"string","maxLength":1000,"minLength":1},"expectedRevision":{"type":"integer","maximum":2147483647,"exclusiveMinimum":0},"submissionVersion":{"type":"integer","maximum":2147483647,"exclusiveMinimum":0},"expectedProposalRevision":{"type":"integer","maximum":2147483647,"exclusiveMinimum":0}},"additionalProperties":false},"actionType":{"type":"string","const":"INTERVIEW_DECLINE"},"interviewId":{"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)$"}},"additionalProperties":false},{"type":"object","required":["actionType","command"],"properties":{"command":{"type":"object","required":["applicationId","submissionVersion","expectedRevision","expiresAt","slots"],"properties":{"slots":{"type":"array","items":{"type":"object","required":["startsAt","endsAt","timeZone"],"properties":{"endsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"startsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"timeZone":{"type":"string","maxLength":100,"minLength":1}},"additionalProperties":false},"maxItems":20,"minItems":1},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"applicationId":{"type":"string","format":"cuid","pattern":"^[cC][0-9a-z]{6,}$"},"expectedRevision":{"type":"integer","maximum":2147483647,"minimum":0},"submissionVersion":{"type":"integer","maximum":2147483647,"exclusiveMinimum":0}},"additionalProperties":false},"actionType":{"type":"string","const":"INTERVIEW_PROPOSE"}},"additionalProperties":false},{"type":"object","required":["actionType","interviewId","command"],"properties":{"command":{"type":"object","required":["submissionVersion","expectedRevision","reason"],"properties":{"reason":{"type":"string","maxLength":1000,"minLength":1},"expectedRevision":{"type":"integer","maximum":2147483647,"exclusiveMinimum":0},"submissionVersion":{"type":"integer","maximum":2147483647,"exclusiveMinimum":0}},"additionalProperties":false},"actionType":{"type":"string","const":"INTERVIEW_CANCEL"},"interviewId":{"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)$"}},"additionalProperties":false}],"description":"Optional: must equal the confirmed command (including the candidate's edits); otherwise approval_mismatch. Same shape as propose_action.command."},"proposalId":{"type":"string","format":"uuid"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":2518,"tokensAfter":2518},{"name":"get_action_proposal","fixed":{"name":"get_action_proposal","description":"Read the candidate's decision on a proposal: status, the final command including the candidate's edits, and the one-shot approval window.","inputSchema":{"type":"object","required":["proposalId"],"properties":{"proposalId":{"type":"string","format":"uuid"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":93,"tokensAfter":93},{"name":"get_application_status","fixed":{"name":"get_application_status","description":"Read an application status for the consent-envelope candidate.","inputSchema":{"type":"object","required":["applicationId"],"properties":{"applicationId":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":70,"tokensAfter":70},{"name":"get_employer_job","fixed":{"name":"get_employer_job","description":"Get one of the represented company's job postings for editing: full text, salary, verified conditions with revision, editHash and visibility.","inputSchema":{"type":"object","required":["jobId"],"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)$"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":140,"tokensAfter":140},{"name":"get_job","fixed":{"name":"get_job","description":"Get a public Jobsai job detail by id or slug.","inputSchema":{"type":"object","anyOf":[{"required":["id"]},{"required":["slug"]}],"properties":{"id":{"type":"string"},"slug":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":72,"tokensAfter":72},{"name":"list_applications","fixed":{"name":"list_applications","description":"List all applications for the consent-envelope candidate.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","default":50,"maximum":100,"minimum":1},"status":{"enum":["SUBMITTED","DELIVERED","OPENED_BY_EMPLOYER","UNDER_REVIEW","INTERVIEW_INVITED","OFFER_EXTENDED","HIRED","REJECTED","WITHDRAWN"],"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":114,"tokensAfter":114},{"name":"list_employer_branches","fixed":{"name":"list_employer_branches","description":"List the represented company's workplaces (branches) for the job conditions workplace field.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":61,"tokensAfter":61},{"name":"list_employer_jobs","fixed":{"name":"list_employer_jobs","description":"List the represented company's own job postings (drafts included) with status and public visibility window. Needs a representation envelope.","inputSchema":{"type":"object","properties":{"page":{"type":"integer","default":1,"maximum":1000,"minimum":1},"limit":{"type":"integer","default":50,"maximum":100,"minimum":1},"status":{"enum":["draft","active","paused","archived"],"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":130,"tokensAfter":130},{"name":"publish_job","fixed":{"name":"publish_job","description":"Publish a draft or archived job of the represented company. The company must be verified and the job must have a salary range.","inputSchema":{"type":"object","required":["jobId"],"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)$"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":135,"tokensAfter":135},{"name":"search_jobs","fixed":{"name":"search_jobs","description":"Search public Jobsai job listings.","inputSchema":{"type":"object","properties":{"kraj":{"type":"string"},"page":{"type":"integer","default":1,"maximum":50},"limit":{"type":"integer","default":20,"maximum":50},"query":{"type":"string"},"remote":{"type":"boolean"},"occupation":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":101,"tokensAfter":101},{"name":"submit_application","fixed":{"name":"submit_application","description":"Submit an application on behalf of the candidate represented by the consent envelope.","inputSchema":{"type":"object","required":["jobId"],"properties":{"jobId":{"type":"string"},"useExistingCv":{"type":"boolean","default":true},"coverLetterMarkdown":{"type":"string","maxLength":3000},"coverLetterAiAssisted":{"type":"boolean","default":false,"description":"Set true when the cover letter was AI-generated (AI Act Art. 50 transparency; shown to the employer)."}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":150,"tokensAfter":150},{"name":"update_job","fixed":{"name":"update_job","description":"Edit a job posting of the represented company (optimistic lock by editHash). Editing an active job is public at once and needs employer_jobs:publish. Changing the title or description raises terms.revision and unconfirms all verified conditions; call get_employer_job again before update_job_terms or confirm_job_terms.","inputSchema":{"type":"object","required":["jobId","expectedEditHash","changes"],"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)$"},"changes":{"type":"object","properties":{"kind":{"enum":["hpp","dpp","dpc","brigada","freelance"],"type":"string"},"titleCs":{"type":"string","maxLength":200,"minLength":3},"applyUrl":{"type":"string","maxLength":500},"remoteOk":{"type":"boolean"},"applyMode":{"enum":["internal","external"],"type":"string"},"salaryRange":{"type":"object","required":["min","max"],"properties":{"max":{"type":"integer","maximum":2147483647,"exclusiveMinimum":0},"min":{"type":"integer","maximum":2147483647,"exclusiveMinimum":0}}},"locationKraj":{"enum":["Hlavní město Praha","Středočeský kraj","Jihočeský kraj","Plzeňský kraj","Karlovarský kraj","Ústecký kraj","Liberecký kraj","Královéhradecký kraj","Pardubický kraj","Kraj Vysočina","Jihomoravský kraj","Olomoucký kraj","Zlínský kraj","Moravskoslezský kraj"],"type":"string"},"salaryPeriod":{"enum":["MONTHLY","HOURLY"],"type":"string"},"descriptionCs":{"type":"string","maxLength":20000,"minLength":20}},"additionalProperties":false},"expectedEditHash":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"description":"expectedEditHash comes from get_employer_job (optimistic lock). Editing an ACTIVE job is public at once and needs employer_jobs:publish.","additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":526,"tokensAfter":526},{"name":"update_job_terms","fixed":{"name":"update_job_terms","description":"Set the verified conditions of a job (salary basis, bonuses, shifts, start, training, remote mode, workplace). A stale terms.revision returns facts_changed with reason stale_terms_revision: read the job again.","inputSchema":{"type":"object","required":["jobId","terms"],"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)$"},"terms":{"type":"object","required":["expectedRevision"],"properties":{"shifts":{"anyOf":[{"oneOf":[{"type":"object","required":["kind","timeZone","shifts"],"properties":{"kind":{"type":"string","const":"fixed"},"shifts":{"type":"array","items":{"type":"object","required":["weekday","startsAt","endsAt","endsNextDay"],"properties":{"endsAt":{"type":"string","pattern":"^(?:[01]\\d|2[0-3]):[0-5]\\d$"},"weekday":{"type":"integer","maximum":7,"minimum":1},"startsAt":{"type":"string","pattern":"^(?:[01]\\d|2[0-3]):[0-5]\\d$"},"endsNextDay":{"type":"boolean"}},"additionalProperties":false},"maxItems":28,"minItems":1},"timeZone":{"type":"string","maxLength":100}},"additionalProperties":false},{"type":"object","required":["kind"],"properties":{"kind":{"type":"string","const":"flexible"}},"additionalProperties":false}]},{"type":"null"}]},"branchId":{"anyOf":[{"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)$"},{"type":"null"}]},"training":{"anyOf":[{"enum":["unknown","offered","not_offered"],"type":"string"},{"type":"null"}]},"remoteMode":{"anyOf":[{"enum":["unknown","onsite","hybrid","remote"],"type":"string"},{"type":"null"}]},"salaryBasis":{"anyOf":[{"enum":["unknown","base","total"],"type":"string"},{"type":"null"}]},"startWindow":{"anyOf":[{"type":"object","required":["earliest","latest"],"properties":{"latest":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"earliest":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"additionalProperties":false},{"type":"null"}]},"bonusDescription":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"expectedRevision":{"type":"integer","maximum":2147483647,"minimum":0}},"additionalProperties":false}},"description":"terms.expectedRevision comes from get_employer_job.terms.revision. On an ACTIVE job this needs employer_jobs:publish.","additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":717,"tokensAfter":717}],"toolsChanged":15,"tokensSaved":0,"todo":[{"tool":"archive_job","params":["jobId"]},{"tool":"confirm_job_open","params":["jobId"]},{"tool":"confirm_job_terms","params":["jobId","confirmation"]},{"tool":"create_job_draft","params":["kind","titleCs","applyUrl","remoteOk","applyMode","salaryRange","locationKraj","salaryPeriod","descriptionCs"]},{"tool":"execute_approved_action","params":["proposalId"]},{"tool":"get_action_proposal","params":["proposalId"]},{"tool":"get_application_status","params":["applicationId"]},{"tool":"get_employer_job","params":["jobId"]},{"tool":"get_job","params":["id","slug"]},{"tool":"list_applications","params":["limit","status"]},{"tool":"list_employer_jobs","params":["page","limit","status"]},{"tool":"publish_job","params":["jobId"]},{"tool":"saved_jobs","params":["jobId","action"]},{"tool":"search_jobs","params":["kraj","page","limit","query","remote","occupation"]},{"tool":"stream_matches","params":["since","query_id","limit_per_minute","candidate_pseudonym"]},{"tool":"submit_application","params":["jobId","useExistingCv","coverLetterMarkdown"]},{"tool":"subscribe","params":["applicationIds"]},{"tool":"update_job","params":["jobId","changes","expectedEditHash"]},{"tool":"update_job_terms","params":["jobId","terms"]},{"tool":"withdraw_application","params":["applicationId"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}