{"openapi":"3.1.0","info":{"title":"Recruitment Operations API","version":"1.0.0","description":"Structure job requirements, extract resume facts, and explain candidate matches. Scores are not hiring decisions. Paid with x402 exact USDC on Base. No account is required.","contact":{"email":"support@brainiac.software"},"x-guidance":"BRAINIAC.software is a pay-per-call API for software agents. No account or API key is required.\nPayment uses the x402 protocol with exact USDC on Base (chain id 8453). Each POST operation has a fixed USD price.\nHow to call an operation:\n1. POST a JSON body matching the operation's requestBody schema to the operation path. Include an Idempotency-Key header (64 hex characters, 32 random bytes).\n2. If you have not paid, the server responds 402 with payment requirements in the body. Pay the exact amount to the payTo address on Base.\n3. Retry the identical request with the same Idempotency-Key and add a payment-signature header containing the x402 payment payload. On success (200) the operation result is returned.\n4. Reuse the same Idempotency-Key only for retries of the same operation and request body; it will not be charged twice.\nAll outputs are compliance prechecks, drafts, or data lookups for human review. They are not official determinations, legal advice, identity confirmation, or certified filings. Verify time-sensitive or official data with the cited source before acting."},"servers":[{"url":"https://www.brainiac.software"}],"paths":{"/api/v1/recruitment-operations/job-description-structure":{"post":{"operationId":"structure_a_job_description","summary":"Structure a job description","description":"Read Title, Requirement, and Responsibility lines into explicit requirements. Unlabeled prose is not turned into a requirement, and a requirement counts toward a score only when it is marked required.","tags":["recruitment-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"jobText":{"type":"string","minLength":1,"maxLength":20000},"requirements":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80},"kind":{"type":"string","enum":["skill","qualification","experience","responsibility"]},"name":{"type":"string","minLength":1,"maxLength":200},"minimumYears":{"type":"number","minimum":0,"maximum":80},"strength":{"type":"string","enum":["required","preferred"]}},"required":["kind","name"],"additionalProperties":false}}},"additionalProperties":false},"example":{"jobText":"Title: Backend Engineer\nRequirement: R1 | skill | TypeScript | required | 3\nRequirement: R2 | skill | JavaScript | required\nRequirement: R3 | qualification | Bachelor of Science | required\nResponsibility: Design HTTP APIs\nThe team likes collaborative people.\nGender: withheld\n"}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"hiringDecision":{"type":"boolean"},"qualificationsInvented":{"type":"boolean"},"status":{"type":"string"},"title":{"type":"string"},"requirementCount":{"type":"number"},"requirements":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"minimumYears":{"type":"number"},"yearsSpecified":{"type":"boolean"},"strength":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}},"issues":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"candidateRef":{"type":"string"},"field":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-03T10:00:00.000Z","hiringDecision":false,"qualificationsInvented":false,"status":"structured","title":"Backend Engineer","requirementCount":4,"requirements":[{"id":"R1","kind":"skill","name":"TypeScript","minimumYears":3,"yearsSpecified":true,"strength":"required","source":"labeled_line"},{"id":"R2","kind":"skill","name":"JavaScript","minimumYears":0,"yearsSpecified":false,"strength":"required","source":"labeled_line"},{"id":"R3","kind":"qualification","name":"Bachelor of Science","minimumYears":0,"yearsSpecified":false,"strength":"required","source":"labeled_line"},{"id":"requirement:4","kind":"responsibility","name":"Design HTTP APIs","minimumYears":0,"yearsSpecified":false,"strength":"preferred","source":"labeled_line"}],"issues":[{"kind":"ignored","code":"ignored_sensitive","candidateRef":"","field":"jobText","detail":"A personal-attribute line was ignored and was not used."},{"kind":"ignored","code":"unlabeled_ignored","candidateRef":"","field":"jobText","detail":"Unlabeled job prose was not turned into requirements."}],"limitations":["No hiring decision is made. A person decides.","Skills, employment history, qualifications, and references are not invented.","Protected personal attributes are ignored and are not used for matching or ranking.","A match is marked inferred only when a caller-supplied alias links two names.","Date gaps are reported from supplied dates and are not ranking penalties."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.03"},"protocols":[{"x402":{}}]}}},"/api/v1/recruitment-operations/resume-data-extract":{"post":{"operationId":"extract_resume_data","summary":"Extract resume data","description":"Read Skill, Role, and Qualification lines. Personal-attribute lines and references are ignored and are not stored.","tags":["recruitment-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80},"name":{"type":"string","minLength":1,"maxLength":200},"text":{"type":"string","minLength":1,"maxLength":20000},"skills":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"years":{"type":"number","minimum":0,"maximum":80}},"required":["name"],"additionalProperties":false}},"roles":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"employer":{"type":"string","minLength":1,"maxLength":200},"start":{"type":"string","minLength":1,"maxLength":20},"end":{"type":"string","minLength":1,"maxLength":20},"text":{"type":"string","minLength":1,"maxLength":2000}},"required":["title","employer"],"additionalProperties":false}},"qualifications":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"year":{"type":"integer","minimum":1900,"maximum":2100}},"required":["name"],"additionalProperties":false}}},"additionalProperties":false},"example":{"id":"ada","text":"Name: Ada\nSkill: TypeScript | 4\nSkill: JS | 2\nRole: Backend Engineer | Analytical Engines | 2020-01 | 2023-01 | Built HTTP APIs\nQualification: Bachelor of Science | 2018\nReference: Alex Example\nGender: withheld\n"}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"hiringDecision":{"type":"boolean"},"qualificationsInvented":{"type":"boolean"},"status":{"type":"string"},"candidateRef":{"type":"string"},"skills":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"years":{"type":"number"},"yearsSpecified":{"type":"boolean"},"source":{"type":"string"},"conflict":{"type":"boolean"}},"additionalProperties":true}},"roles":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"employer":{"type":"string"},"start":{"type":"string"},"end":{"type":"string"},"open":{"type":"boolean"},"text":{"type":"string"},"months":{"type":"number"},"monthsKnown":{"type":"boolean"},"status":{"type":"string"}},"additionalProperties":true}},"qualifications":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"year":{"type":"number"},"yearSpecified":{"type":"boolean"},"source":{"type":"string"}},"additionalProperties":true}},"issues":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"candidateRef":{"type":"string"},"field":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-03T10:00:00.000Z","hiringDecision":false,"qualificationsInvented":false,"status":"extracted","candidateRef":"ada","skills":[{"name":"TypeScript","years":4,"yearsSpecified":true,"source":"labeled_line","conflict":false},{"name":"JS","years":2,"yearsSpecified":true,"source":"labeled_line","conflict":false}],"roles":[{"title":"Backend Engineer","employer":"Analytical Engines","start":"2020-01","end":"2023-01","open":false,"text":"Built HTTP APIs","months":36,"monthsKnown":true,"status":"ok"}],"qualifications":[{"name":"Bachelor of Science","year":2018,"yearSpecified":true,"source":"labeled_line"}],"issues":[{"kind":"ignored","code":"reference_ignored","candidateRef":"ada","field":"text","detail":"A reference line was not stored and was not treated as a qualification."},{"kind":"ignored","code":"ignored_sensitive","candidateRef":"ada","field":"text","detail":"A personal-attribute line was ignored and was not used for matching or ranking."}],"limitations":["No hiring decision is made. A person decides.","Skills, employment history, qualifications, and references are not invented.","Protected personal attributes are ignored and are not used for matching or ranking.","A match is marked inferred only when a caller-supplied alias links two names.","Date gaps are reported from supplied dates and are not ranking penalties."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/recruitment-operations/resume-job-match":{"post":{"operationId":"match_a_resume_to_a_job","summary":"Match a resume to a job","description":"Compare supplied skills, qualifications, and role dates with explicit required items. A caller alias is marked inferred. A responsibility is not marked met.","tags":["recruitment-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"jobText":{"type":"string","minLength":1,"maxLength":20000},"requirements":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80},"kind":{"type":"string","enum":["skill","qualification","experience","responsibility"]},"name":{"type":"string","minLength":1,"maxLength":200},"minimumYears":{"type":"number","minimum":0,"maximum":80},"strength":{"type":"string","enum":["required","preferred"]}},"required":["kind","name"],"additionalProperties":false}},"candidate":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80},"name":{"type":"string","minLength":1,"maxLength":200},"text":{"type":"string","minLength":1,"maxLength":20000},"skills":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"years":{"type":"number","minimum":0,"maximum":80}},"required":["name"],"additionalProperties":false}},"roles":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"employer":{"type":"string","minLength":1,"maxLength":200},"start":{"type":"string","minLength":1,"maxLength":20},"end":{"type":"string","minLength":1,"maxLength":20},"text":{"type":"string","minLength":1,"maxLength":2000}},"required":["title","employer"],"additionalProperties":false}},"qualifications":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"year":{"type":"integer","minimum":1900,"maximum":2100}},"required":["name"],"additionalProperties":false}}},"additionalProperties":false},"aliases":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"requirement":{"type":"string","minLength":1,"maxLength":200},"candidate":{"type":"string","minLength":1,"maxLength":200}},"required":["requirement","candidate"],"additionalProperties":false}}},"required":["candidate"],"additionalProperties":false},"example":{"jobText":"Title: Backend Engineer\nRequirement: R1 | skill | TypeScript | required | 3\nRequirement: R2 | skill | JavaScript | required\nRequirement: R3 | qualification | Bachelor of Science | required\nResponsibility: Design HTTP APIs\n","candidate":{"id":"ada","text":"Skill: TypeScript | 4\nSkill: JS | 2\nRole: Backend Engineer | Analytical Engines | 2020-01 | 2023-01 | Built HTTP APIs\nQualification: Bachelor of Science | 2018\n"},"aliases":[{"requirement":"JavaScript","candidate":"JS"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"hiringDecision":{"type":"boolean"},"qualificationsInvented":{"type":"boolean"},"status":{"type":"string"},"title":{"type":"string"},"candidateRef":{"type":"string"},"score":{"type":"number"},"matches":{"type":"array","items":{"type":"object","properties":{"candidateRef":{"type":"string"},"requirementId":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"strength":{"type":"string"},"status":{"type":"string"},"inferred":{"type":"boolean"},"points":{"type":"number"},"detail":{"type":"string"}},"additionalProperties":true}},"issues":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-03T10:00:00.000Z","hiringDecision":false,"qualificationsInvented":false,"status":"matched","title":"Backend Engineer","candidateRef":"ada","score":5,"matches":[{"candidateRef":"ada","requirementId":"R1","kind":"skill","name":"TypeScript","strength":"required","status":"met","inferred":false,"points":2,"detail":"The skill matches and the supplied 4 years meet 3."},{"candidateRef":"ada","requirementId":"R2","kind":"skill","name":"JavaScript","strength":"required","status":"inferred","inferred":true,"points":1,"detail":"The caller alias maps JS to JavaScript. The resume does not contain JavaScript."},{"candidateRef":"ada","requirementId":"R3","kind":"qualification","name":"Bachelor of Science","strength":"required","status":"met","inferred":false,"points":2,"detail":"The qualification name matches the supplied resume. No broader credential was assumed."},{"candidateRef":"ada","requirementId":"requirement:4","kind":"responsibility","name":"Design HTTP APIs","strength":"preferred","status":"not_checked","inferred":false,"points":0,"detail":"A responsibility is a prompt for a person. It was not marked met from the resume."}],"issues":[],"limitations":["No hiring decision is made. A person decides.","Skills, employment history, qualifications, and references are not invented.","Protected personal attributes are ignored and are not used for matching or ranking.","A match is marked inferred only when a caller-supplied alias links two names.","Date gaps are reported from supplied dates and are not ranking penalties."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"protocols":[{"x402":{}}]}}},"/api/v1/recruitment-operations/candidate-skill-compare":{"post":{"operationId":"compare_candidate_skills","summary":"Compare candidate skills","description":"Compare supplied skill names across candidates and against an explicit skill list. Missing skills are not invented.","tags":["recruitment-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"skillNames":{"maxItems":40,"type":"array","items":{"type":"string","minLength":1,"maxLength":200}},"candidates":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80},"name":{"type":"string","minLength":1,"maxLength":200},"text":{"type":"string","minLength":1,"maxLength":20000},"skills":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"years":{"type":"number","minimum":0,"maximum":80}},"required":["name"],"additionalProperties":false}},"roles":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"employer":{"type":"string","minLength":1,"maxLength":200},"start":{"type":"string","minLength":1,"maxLength":20},"end":{"type":"string","minLength":1,"maxLength":20},"text":{"type":"string","minLength":1,"maxLength":2000}},"required":["title","employer"],"additionalProperties":false}},"qualifications":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"year":{"type":"integer","minimum":1900,"maximum":2100}},"required":["name"],"additionalProperties":false}}},"additionalProperties":false}}},"required":["candidates"],"additionalProperties":false},"example":{"skillNames":["TypeScript","JavaScript"],"candidates":[{"id":"ada","skills":[{"name":"TypeScript","years":4},{"name":"JS","years":2}]},{"id":"grace","skills":[{"name":"Python","years":6}]}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"hiringDecision":{"type":"boolean"},"qualificationsInvented":{"type":"boolean"},"status":{"type":"string"},"skillNames":{"type":"array","items":{"type":"string"}},"candidates":{"type":"array","items":{"type":"object","properties":{"candidateRef":{"type":"string"},"skills":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"years":{"type":"number"},"yearsSpecified":{"type":"boolean"},"source":{"type":"string"},"conflict":{"type":"boolean"}},"additionalProperties":true}},"matched":{"type":"array","items":{"type":"object","properties":{"candidateRef":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"inferred":{"type":"boolean"},"years":{"type":"number"},"yearsSpecified":{"type":"boolean"},"detail":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true}},"overlap":{"type":"array","items":{}},"issues":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-03T10:00:00.000Z","hiringDecision":false,"qualificationsInvented":false,"status":"compared","skillNames":["TypeScript","JavaScript"],"candidates":[{"candidateRef":"ada","skills":[{"name":"TypeScript","years":4,"yearsSpecified":true,"source":"field","conflict":false},{"name":"JS","years":2,"yearsSpecified":true,"source":"field","conflict":false}],"matched":[{"candidateRef":"ada","name":"TypeScript","status":"met","inferred":false,"years":4,"yearsSpecified":true,"detail":"The skill name matches the supplied resume."},{"candidateRef":"ada","name":"JavaScript","status":"missing","inferred":false,"years":0,"yearsSpecified":false,"detail":"The skill was not in the supplied resume. One was not invented."}]},{"candidateRef":"grace","skills":[{"name":"Python","years":6,"yearsSpecified":true,"source":"field","conflict":false}],"matched":[{"candidateRef":"grace","name":"TypeScript","status":"missing","inferred":false,"years":0,"yearsSpecified":false,"detail":"The skill was not in the supplied resume. One was not invented."},{"candidateRef":"grace","name":"JavaScript","status":"missing","inferred":false,"years":0,"yearsSpecified":false,"detail":"The skill was not in the supplied resume. One was not invented."}]}],"overlap":[],"issues":[],"limitations":["No hiring decision is made. A person decides.","Skills, employment history, qualifications, and references are not invented.","Protected personal attributes are ignored and are not used for matching or ranking.","A match is marked inferred only when a caller-supplied alias links two names.","Date gaps are reported from supplied dates and are not ranking penalties."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/recruitment-operations/candidate-experience-validate":{"post":{"operationId":"validate_candidate_experience","summary":"Validate candidate experience","description":"Check supplied employment dates for invalid dates, overlaps, and gaps. Dates are not rewritten, and a gap is not a ranking penalty.","tags":["recruitment-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"candidates":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80},"name":{"type":"string","minLength":1,"maxLength":200},"text":{"type":"string","minLength":1,"maxLength":20000},"skills":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"years":{"type":"number","minimum":0,"maximum":80}},"required":["name"],"additionalProperties":false}},"roles":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"employer":{"type":"string","minLength":1,"maxLength":200},"start":{"type":"string","minLength":1,"maxLength":20},"end":{"type":"string","minLength":1,"maxLength":20},"text":{"type":"string","minLength":1,"maxLength":2000}},"required":["title","employer"],"additionalProperties":false}},"qualifications":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"year":{"type":"integer","minimum":1900,"maximum":2100}},"required":["name"],"additionalProperties":false}}},"additionalProperties":false}}},"required":["candidates"],"additionalProperties":false},"example":{"candidates":[{"id":"ada","roles":[{"title":"Engineer","employer":"Northwind","start":"2020-01","end":"2022-01"},{"title":"Consultant","employer":"Northwind","start":"2021-06","end":"2022-06"},{"title":"Analyst","employer":"Engines","start":"2023-01","end":"2022-01"},{"title":"Advisor","employer":"Contoso","start":"2024-01","end":"2024-06"}]}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"hiringDecision":{"type":"boolean"},"qualificationsInvented":{"type":"boolean"},"status":{"type":"string"},"roles":{"type":"array","items":{"type":"object","properties":{"candidateRef":{"type":"string"},"title":{"type":"string"},"employer":{"type":"string"},"start":{"type":"string"},"end":{"type":"string"},"open":{"type":"boolean"},"text":{"type":"string"},"months":{"type":"number"},"monthsKnown":{"type":"boolean"},"status":{"type":"string"}},"additionalProperties":true}},"overlaps":{"type":"array","items":{"type":"object","properties":{"candidateRef":{"type":"string"},"first":{"type":"string"},"second":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"gaps":{"type":"array","items":{"type":"object","properties":{"candidateRef":{"type":"string"},"after":{"type":"string"},"before":{"type":"string"},"months":{"type":"number"},"detail":{"type":"string"}},"additionalProperties":true}},"issues":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"candidateRef":{"type":"string"},"field":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-03T10:00:00.000Z","hiringDecision":false,"qualificationsInvented":false,"status":"checked","roles":[{"candidateRef":"ada","title":"Engineer","employer":"Northwind","start":"2020-01","end":"2022-01","open":false,"text":"","months":24,"monthsKnown":true,"status":"ok"},{"candidateRef":"ada","title":"Consultant","employer":"Northwind","start":"2021-06","end":"2022-06","open":false,"text":"","months":12,"monthsKnown":true,"status":"ok"},{"candidateRef":"ada","title":"Analyst","employer":"Engines","start":"2023-01","end":"2022-01","open":false,"text":"","months":0,"monthsKnown":false,"status":"conflict"},{"candidateRef":"ada","title":"Advisor","employer":"Contoso","start":"2024-01","end":"2024-06","open":false,"text":"","months":5,"monthsKnown":true,"status":"ok"}],"overlaps":[{"candidateRef":"ada","first":"Engineer","second":"Consultant","detail":"These supplied date ranges overlap. The overlap is not a ranking penalty."}],"gaps":[{"candidateRef":"ada","after":"Consultant","before":"Advisor","months":19,"detail":"The supplied dates leave a gap. The gap is not used in ranking."}],"issues":[{"kind":"conflict","code":"end_before_start","candidateRef":"ada","field":"Analyst","detail":"The end date is before the start date. The dates were not rewritten."},{"kind":"conflict","code":"conflict","candidateRef":"ada","field":"Analyst","detail":"This role needs a person to review the supplied title, employer, or dates."}],"limitations":["No hiring decision is made. A person decides.","Skills, employment history, qualifications, and references are not invented.","Protected personal attributes are ignored and are not used for matching or ranking.","A match is marked inferred only when a caller-supplied alias links two names.","Date gaps are reported from supplied dates and are not ranking penalties."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.03"},"protocols":[{"x402":{}}]}}},"/api/v1/recruitment-operations/interview-question-generate":{"post":{"operationId":"draft_interview_questions","summary":"Draft interview questions","description":"Draft questions from missing required items, inferred alias matches, and job responsibilities. The questions do not score the candidate.","tags":["recruitment-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"jobText":{"type":"string","minLength":1,"maxLength":20000},"requirements":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80},"kind":{"type":"string","enum":["skill","qualification","experience","responsibility"]},"name":{"type":"string","minLength":1,"maxLength":200},"minimumYears":{"type":"number","minimum":0,"maximum":80},"strength":{"type":"string","enum":["required","preferred"]}},"required":["kind","name"],"additionalProperties":false}},"candidate":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80},"name":{"type":"string","minLength":1,"maxLength":200},"text":{"type":"string","minLength":1,"maxLength":20000},"skills":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"years":{"type":"number","minimum":0,"maximum":80}},"required":["name"],"additionalProperties":false}},"roles":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"employer":{"type":"string","minLength":1,"maxLength":200},"start":{"type":"string","minLength":1,"maxLength":20},"end":{"type":"string","minLength":1,"maxLength":20},"text":{"type":"string","minLength":1,"maxLength":2000}},"required":["title","employer"],"additionalProperties":false}},"qualifications":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"year":{"type":"integer","minimum":1900,"maximum":2100}},"required":["name"],"additionalProperties":false}}},"additionalProperties":false},"aliases":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"requirement":{"type":"string","minLength":1,"maxLength":200},"candidate":{"type":"string","minLength":1,"maxLength":200}},"required":["requirement","candidate"],"additionalProperties":false}}},"required":["candidate"],"additionalProperties":false},"example":{"jobText":"Title: Backend Engineer\nRequirement: R1 | skill | TypeScript | required | 3\nRequirement: R2 | skill | JavaScript | required\nResponsibility: Design HTTP APIs\n","candidate":{"id":"grace","text":"Skill: Python | 6\n"},"aliases":[{"requirement":"JavaScript","candidate":"JS"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"hiringDecision":{"type":"boolean"},"qualificationsInvented":{"type":"boolean"},"status":{"type":"string"},"candidateRef":{"type":"string"},"questions":{"type":"array","items":{"type":"object","properties":{"candidateRef":{"type":"string"},"requirementId":{"type":"string"},"basedOn":{"type":"string"},"text":{"type":"string"}},"additionalProperties":true}},"issues":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-03T10:00:00.000Z","hiringDecision":false,"qualificationsInvented":false,"status":"drafted","candidateRef":"grace","questions":[{"candidateRef":"grace","requirementId":"R1","basedOn":"missing_requirement","text":"Ask about TypeScript. The supplied resume does not show that this required item is met. Do not treat a missing item as held."},{"candidateRef":"grace","requirementId":"R2","basedOn":"missing_requirement","text":"Ask about JavaScript. The supplied resume does not show that this required item is met. Do not treat a missing item as held."},{"candidateRef":"grace","requirementId":"requirement:3","basedOn":"responsibility","text":"Ask the candidate to describe work related to: Design HTTP APIs. This question does not assume the candidate has done it."}],"issues":[],"limitations":["No hiring decision is made. A person decides.","Skills, employment history, qualifications, and references are not invented.","Protected personal attributes are ignored and are not used for matching or ranking.","A match is marked inferred only when a caller-supplied alias links two names.","Date gaps are reported from supplied dates and are not ranking penalties."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/recruitment-operations/candidate-shortlist-rank":{"post":{"operationId":"rank_a_candidate_shortlist","summary":"Rank a candidate shortlist","description":"Score candidates only from explicit required matches. An exact match is worth 2 and a caller alias is worth 1. Ties keep the caller's order.","tags":["recruitment-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"jobText":{"type":"string","minLength":1,"maxLength":20000},"requirements":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80},"kind":{"type":"string","enum":["skill","qualification","experience","responsibility"]},"name":{"type":"string","minLength":1,"maxLength":200},"minimumYears":{"type":"number","minimum":0,"maximum":80},"strength":{"type":"string","enum":["required","preferred"]}},"required":["kind","name"],"additionalProperties":false}},"candidates":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80},"name":{"type":"string","minLength":1,"maxLength":200},"text":{"type":"string","minLength":1,"maxLength":20000},"skills":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"years":{"type":"number","minimum":0,"maximum":80}},"required":["name"],"additionalProperties":false}},"roles":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"employer":{"type":"string","minLength":1,"maxLength":200},"start":{"type":"string","minLength":1,"maxLength":20},"end":{"type":"string","minLength":1,"maxLength":20},"text":{"type":"string","minLength":1,"maxLength":2000}},"required":["title","employer"],"additionalProperties":false}},"qualifications":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"year":{"type":"integer","minimum":1900,"maximum":2100}},"required":["name"],"additionalProperties":false}}},"additionalProperties":false}},"aliases":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"requirement":{"type":"string","minLength":1,"maxLength":200},"candidate":{"type":"string","minLength":1,"maxLength":200}},"required":["requirement","candidate"],"additionalProperties":false}}},"required":["candidates"],"additionalProperties":false},"example":{"jobText":"Title: Backend Engineer\nRequirement: R1 | skill | TypeScript | required | 3\nRequirement: R2 | skill | JavaScript | required\nRequirement: R3 | qualification | Bachelor of Science | required\n","aliases":[{"requirement":"JavaScript","candidate":"JS"}],"candidates":[{"id":"ada","text":"Skill: TypeScript | 4\nSkill: JS | 2\nQualification: Bachelor of Science | 2018\n"},{"id":"grace","text":"Skill: Python | 6\nRole: Analyst | Engines | 2023-01 | 2022-01 | Reports\n"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"hiringDecision":{"type":"boolean"},"qualificationsInvented":{"type":"boolean"},"status":{"type":"string"},"title":{"type":"string"},"candidates":{"type":"array","items":{"type":"object","properties":{"candidateRef":{"type":"string"},"score":{"type":"number"},"rank":{"type":"number"},"tie":{"type":"boolean"}},"additionalProperties":true}},"factors":{"type":"array","items":{"type":"object","properties":{"candidateRef":{"type":"string"},"requirementId":{"type":"string"},"name":{"type":"string"},"points":{"type":"number"},"inferred":{"type":"boolean"},"detail":{"type":"string"}},"additionalProperties":true}},"issues":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"candidateRef":{"type":"string"},"field":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-03T10:00:00.000Z","hiringDecision":false,"qualificationsInvented":false,"status":"ranked","title":"Backend Engineer","candidates":[{"candidateRef":"ada","score":5,"rank":1,"tie":false},{"candidateRef":"grace","score":0,"rank":2,"tie":false}],"factors":[{"candidateRef":"ada","requirementId":"R1","name":"TypeScript","points":2,"inferred":false,"detail":"The skill matches and the supplied 4 years meet 3."},{"candidateRef":"ada","requirementId":"R2","name":"JavaScript","points":1,"inferred":true,"detail":"The caller alias maps JS to JavaScript. The resume does not contain JavaScript."},{"candidateRef":"ada","requirementId":"R3","name":"Bachelor of Science","points":2,"inferred":false,"detail":"The qualification name matches the supplied resume. No broader credential was assumed."},{"candidateRef":"grace","requirementId":"R1","name":"TypeScript","points":0,"inferred":false,"detail":"The skill was not in the supplied resume and no caller alias matched."},{"candidateRef":"grace","requirementId":"R2","name":"JavaScript","points":0,"inferred":false,"detail":"The skill was not in the supplied resume and no caller alias matched."},{"candidateRef":"grace","requirementId":"R3","name":"Bachelor of Science","points":0,"inferred":false,"detail":"The qualification was not in the supplied resume. One was not invented."}],"issues":[{"kind":"conflict","code":"end_before_start","candidateRef":"grace","field":"Analyst","detail":"The end date is before the start date. The dates were not rewritten."},{"kind":"ignored","code":"tie_order","candidateRef":"","field":"rank","detail":"Tied scores keep the caller's order. Name and personal attributes are not used to break a tie."}],"limitations":["No hiring decision is made. A person decides.","Skills, employment history, qualifications, and references are not invented.","Protected personal attributes are ignored and are not used for matching or ranking.","A match is marked inferred only when a caller-supplied alias links two names.","Date gaps are reported from supplied dates and are not ranking penalties."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"protocols":[{"x402":{}}]}}},"/api/v1/recruitment-operations/pipeline-report":{"post":{"operationId":"report_a_recruitment_pipeline","summary":"Report a recruitment pipeline","description":"Combine the job requirements, resume facts, match explanations, experience checks, interview prompts, and shortlist scores. The report is not a hiring decision.","tags":["recruitment-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"jobText":{"type":"string","minLength":1,"maxLength":20000},"requirements":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80},"kind":{"type":"string","enum":["skill","qualification","experience","responsibility"]},"name":{"type":"string","minLength":1,"maxLength":200},"minimumYears":{"type":"number","minimum":0,"maximum":80},"strength":{"type":"string","enum":["required","preferred"]}},"required":["kind","name"],"additionalProperties":false}},"candidates":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80},"name":{"type":"string","minLength":1,"maxLength":200},"text":{"type":"string","minLength":1,"maxLength":20000},"skills":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"years":{"type":"number","minimum":0,"maximum":80}},"required":["name"],"additionalProperties":false}},"roles":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"employer":{"type":"string","minLength":1,"maxLength":200},"start":{"type":"string","minLength":1,"maxLength":20},"end":{"type":"string","minLength":1,"maxLength":20},"text":{"type":"string","minLength":1,"maxLength":2000}},"required":["title","employer"],"additionalProperties":false}},"qualifications":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"year":{"type":"integer","minimum":1900,"maximum":2100}},"required":["name"],"additionalProperties":false}}},"additionalProperties":false}},"aliases":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"requirement":{"type":"string","minLength":1,"maxLength":200},"candidate":{"type":"string","minLength":1,"maxLength":200}},"required":["requirement","candidate"],"additionalProperties":false}}},"required":["candidates"],"additionalProperties":false},"example":{"jobText":"Title: Backend Engineer\nRequirement: R1 | skill | TypeScript | required | 3\nRequirement: R2 | skill | JavaScript | required\nRequirement: R3 | qualification | Bachelor of Science | required\nResponsibility: Design HTTP APIs\n","aliases":[{"requirement":"JavaScript","candidate":"JS"}],"candidates":[{"id":"ada","text":"Skill: TypeScript | 4\nSkill: JS | 2\nRole: Backend Engineer | Analytical Engines | 2020-01 | 2023-01 | Built HTTP APIs\nQualification: Bachelor of Science | 2018\n"},{"id":"grace","text":"Skill: Python | 6\nRole: Analyst | Engines | 2023-01 | 2022-01 | Reports\n"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"hiringDecision":{"type":"boolean"},"qualificationsInvented":{"type":"boolean"},"status":{"type":"string"},"title":{"type":"string"},"requirementCount":{"type":"number"},"candidates":{"type":"array","items":{"type":"object","properties":{"candidateRef":{"type":"string"},"score":{"type":"number"},"rank":{"type":"number"},"met":{"type":"number"},"inferred":{"type":"number"},"missing":{"type":"number"}},"additionalProperties":true}},"matches":{"type":"array","items":{"type":"object","properties":{"candidateRef":{"type":"string"},"requirementId":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"strength":{"type":"string"},"status":{"type":"string"},"inferred":{"type":"boolean"},"points":{"type":"number"},"detail":{"type":"string"}},"additionalProperties":true}},"factors":{"type":"array","items":{"type":"object","properties":{"candidateRef":{"type":"string"},"requirementId":{"type":"string"},"name":{"type":"string"},"points":{"type":"number"},"inferred":{"type":"boolean"},"detail":{"type":"string"}},"additionalProperties":true}},"questions":{"type":"array","items":{"type":"object","properties":{"candidateRef":{"type":"string"},"requirementId":{"type":"string"},"basedOn":{"type":"string"},"text":{"type":"string"}},"additionalProperties":true}},"overlaps":{"type":"array","items":{}},"gaps":{"type":"array","items":{}},"issues":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"candidateRef":{"type":"string"},"field":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-03T10:00:00.000Z","hiringDecision":false,"qualificationsInvented":false,"status":"needs_review","title":"Backend Engineer","requirementCount":4,"candidates":[{"candidateRef":"ada","score":5,"rank":1,"met":2,"inferred":1,"missing":0},{"candidateRef":"grace","score":0,"rank":2,"met":0,"inferred":0,"missing":3}],"matches":[{"candidateRef":"ada","requirementId":"R1","kind":"skill","name":"TypeScript","strength":"required","status":"met","inferred":false,"points":2,"detail":"The skill matches and the supplied 4 years meet 3."},{"candidateRef":"ada","requirementId":"R2","kind":"skill","name":"JavaScript","strength":"required","status":"inferred","inferred":true,"points":1,"detail":"The caller alias maps JS to JavaScript. The resume does not contain JavaScript."},{"candidateRef":"ada","requirementId":"R3","kind":"qualification","name":"Bachelor of Science","strength":"required","status":"met","inferred":false,"points":2,"detail":"The qualification name matches the supplied resume. No broader credential was assumed."},{"candidateRef":"ada","requirementId":"requirement:4","kind":"responsibility","name":"Design HTTP APIs","strength":"preferred","status":"not_checked","inferred":false,"points":0,"detail":"A responsibility is a prompt for a person. It was not marked met from the resume."},{"candidateRef":"grace","requirementId":"R1","kind":"skill","name":"TypeScript","strength":"required","status":"missing","inferred":false,"points":0,"detail":"The skill was not in the supplied resume and no caller alias matched."},{"candidateRef":"grace","requirementId":"R2","kind":"skill","name":"JavaScript","strength":"required","status":"missing","inferred":false,"points":0,"detail":"The skill was not in the supplied resume and no caller alias matched."},{"candidateRef":"grace","requirementId":"R3","kind":"qualification","name":"Bachelor of Science","strength":"required","status":"missing","inferred":false,"points":0,"detail":"The qualification was not in the supplied resume. One was not invented."},{"candidateRef":"grace","requirementId":"requirement:4","kind":"responsibility","name":"Design HTTP APIs","strength":"preferred","status":"not_checked","inferred":false,"points":0,"detail":"A responsibility is a prompt for a person. It was not marked met from the resume."}],"factors":[{"candidateRef":"ada","requirementId":"R1","name":"TypeScript","points":2,"inferred":false,"detail":"The skill matches and the supplied 4 years meet 3."},{"candidateRef":"ada","requirementId":"R2","name":"JavaScript","points":1,"inferred":true,"detail":"The caller alias maps JS to JavaScript. The resume does not contain JavaScript."},{"candidateRef":"ada","requirementId":"R3","name":"Bachelor of Science","points":2,"inferred":false,"detail":"The qualification name matches the supplied resume. No broader credential was assumed."},{"candidateRef":"ada","requirementId":"requirement:4","name":"Design HTTP APIs","points":0,"inferred":false,"detail":"A responsibility is a prompt for a person. It was not marked met from the resume."},{"candidateRef":"grace","requirementId":"R1","name":"TypeScript","points":0,"inferred":false,"detail":"The skill was not in the supplied resume and no caller alias matched."},{"candidateRef":"grace","requirementId":"R2","name":"JavaScript","points":0,"inferred":false,"detail":"The skill was not in the supplied resume and no caller alias matched."},{"candidateRef":"grace","requirementId":"R3","name":"Bachelor of Science","points":0,"inferred":false,"detail":"The qualification was not in the supplied resume. One was not invented."},{"candidateRef":"grace","requirementId":"requirement:4","name":"Design HTTP APIs","points":0,"inferred":false,"detail":"A responsibility is a prompt for a person. It was not marked met from the resume."}],"questions":[{"candidateRef":"ada","requirementId":"R2","basedOn":"inferred_match","text":"Ask the candidate to confirm JavaScript. The match uses a caller-supplied alias and is not a direct resume fact."},{"candidateRef":"ada","requirementId":"requirement:4","basedOn":"responsibility","text":"Ask the candidate to describe work related to: Design HTTP APIs. This question does not assume the candidate has done it."},{"candidateRef":"grace","requirementId":"R1","basedOn":"missing_requirement","text":"Ask about TypeScript. The supplied resume does not show that this required item is met. Do not treat a missing item as held."},{"candidateRef":"grace","requirementId":"R2","basedOn":"missing_requirement","text":"Ask about JavaScript. The supplied resume does not show that this required item is met. Do not treat a missing item as held."},{"candidateRef":"grace","requirementId":"R3","basedOn":"missing_requirement","text":"Ask about Bachelor of Science. The supplied resume does not show that this required item is met. Do not treat a missing item as held."},{"candidateRef":"grace","requirementId":"requirement:4","basedOn":"responsibility","text":"Ask the candidate to describe work related to: Design HTTP APIs. This question does not assume the candidate has done it."}],"overlaps":[],"gaps":[],"issues":[{"kind":"conflict","code":"end_before_start","candidateRef":"grace","field":"Analyst","detail":"The end date is before the start date. The dates were not rewritten."},{"kind":"conflict","code":"conflict","candidateRef":"grace","field":"Analyst","detail":"This role needs a person to review the supplied title, employer, or dates."},{"kind":"ignored","code":"human_decision","candidateRef":"","field":"decision","detail":"This report organizes supplied facts. It does not hire, reject, or rank anyone by a personal attribute."}],"limitations":["No hiring decision is made. A person decides.","Skills, employment history, qualifications, and references are not invented.","Protected personal attributes are ignored and are not used for matching or ranking.","A match is marked inferred only when a caller-supplied alias links two names.","Date gaps are reported from supplied dates and are not ranking penalties."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.12"},"protocols":[{"x402":{}}]}}}},"components":{"schemas":{"ApiError":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{}}}}}}}}