Recruitment Operations API Documentation
Structure job requirements, extract resume facts, and explain candidate matches. Scores are not hiring decisions. Payment is the exact USDC price on Base with x402.
https://brainiac.software/api/v1/recruitment-operations/job-description-structure$0.03 USDCStructure a job 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.
Body
| Field | Required | Notes |
|---|---|---|
title | No | string |
jobText | No | string |
requirements | No | array; Array |
Request exampleJSON
{
"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"
}Response exampleJSON
{
"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."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/recruitment-operations/job-description-structure" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"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"
}
JSONhttps://brainiac.software/api/v1/recruitment-operations/resume-data-extract$0.04 USDCExtract resume data
Read Skill, Role, and Qualification lines. Personal-attribute lines and references are ignored and are not stored.
Body
| Field | Required | Notes |
|---|---|---|
id | No | string |
name | No | string |
text | No | string |
skills | No | array; Array |
roles | No | array; Array |
qualifications | No | array; Array |
Request exampleJSON
{
"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"
}Response exampleJSON
{
"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."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/recruitment-operations/resume-data-extract" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"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"
}
JSONhttps://brainiac.software/api/v1/recruitment-operations/resume-job-match$0.05 USDCMatch a resume to a job
Compare supplied skills, qualifications, and role dates with explicit required items. A caller alias is marked inferred. A responsibility is not marked met.
Body
| Field | Required | Notes |
|---|---|---|
title | No | string |
jobText | No | string |
requirements | No | array; Array |
candidate | Yes | object; Object |
aliases | No | array; Array |
Request exampleJSON
{
"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"
}
]
}Response exampleJSON
{
"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."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/recruitment-operations/resume-job-match" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"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"
}
]
}
JSONhttps://brainiac.software/api/v1/recruitment-operations/candidate-skill-compare$0.04 USDCCompare candidate skills
Compare supplied skill names across candidates and against an explicit skill list. Missing skills are not invented.
Body
| Field | Required | Notes |
|---|---|---|
skillNames | No | array; Array |
candidates | Yes | array; Array |
Request exampleJSON
{
"skillNames": [
"TypeScript",
"JavaScript"
],
"candidates": [
{
"id": "ada",
"skills": [
{
"name": "TypeScript",
"years": 4
},
{
"name": "JS",
"years": 2
}
]
},
{
"id": "grace",
"skills": [
{
"name": "Python",
"years": 6
}
]
}
]
}Response exampleJSON
{
"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."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/recruitment-operations/candidate-skill-compare" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"skillNames": [
"TypeScript",
"JavaScript"
],
"candidates": [
{
"id": "ada",
"skills": [
{
"name": "TypeScript",
"years": 4
},
{
"name": "JS",
"years": 2
}
]
},
{
"id": "grace",
"skills": [
{
"name": "Python",
"years": 6
}
]
}
]
}
JSONhttps://brainiac.software/api/v1/recruitment-operations/candidate-experience-validate$0.03 USDCValidate candidate experience
Check supplied employment dates for invalid dates, overlaps, and gaps. Dates are not rewritten, and a gap is not a ranking penalty.
Body
| Field | Required | Notes |
|---|---|---|
candidates | Yes | array; Array |
Request exampleJSON
{
"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"
}
]
}
]
}Response exampleJSON
{
"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."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/recruitment-operations/candidate-experience-validate" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"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"
}
]
}
]
}
JSONhttps://brainiac.software/api/v1/recruitment-operations/interview-question-generate$0.04 USDCDraft interview questions
Draft questions from missing required items, inferred alias matches, and job responsibilities. The questions do not score the candidate.
Body
| Field | Required | Notes |
|---|---|---|
title | No | string |
jobText | No | string |
requirements | No | array; Array |
candidate | Yes | object; Object |
aliases | No | array; Array |
Request exampleJSON
{
"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"
}
]
}Response exampleJSON
{
"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."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/recruitment-operations/interview-question-generate" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"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"
}
]
}
JSONhttps://brainiac.software/api/v1/recruitment-operations/candidate-shortlist-rank$0.05 USDCRank a candidate shortlist
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.
Body
| Field | Required | Notes |
|---|---|---|
title | No | string |
jobText | No | string |
requirements | No | array; Array |
candidates | Yes | array; Array |
aliases | No | array; Array |
Request exampleJSON
{
"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"
}
]
}Response exampleJSON
{
"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."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/recruitment-operations/candidate-shortlist-rank" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"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"
}
]
}
JSONhttps://brainiac.software/api/v1/recruitment-operations/pipeline-report$0.12 USDCReport a recruitment pipeline
Combine the job requirements, resume facts, match explanations, experience checks, interview prompts, and shortlist scores. The report is not a hiring decision.
Body
| Field | Required | Notes |
|---|---|---|
title | No | string |
jobText | No | string |
requirements | No | array; Array |
candidates | Yes | array; Array |
aliases | No | array; Array |
Request exampleJSON
{
"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"
}
]
}Response exampleJSON
{
"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."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/recruitment-operations/pipeline-report" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"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"
}
]
}
JSON