HR Operations API Documentation
Read supplied employee records and policies, list missing or expired documents, and build onboarding and offboarding checklists from those policies. Payment is the exact USDC price on Base with x402.
https://brainiac.software/api/v1/hr-operations/employee-document-extract$0.04 USDCExtract employee documents
Read employee records and labeled document lines supplied by the caller. Dates, roles, and document types are returned as supplied. Document numbers are masked.
Body
| Field | Required | Notes |
|---|---|---|
employees | No | array; Array |
documents | No | array; Array |
policies | No | array; Array |
acknowledgements | No | array; Array |
completions | No | array; Array |
requirements | No | array; Array |
text | No | string |
csv | No | string |
json | No | string |
file | No | object; Object |
roleText | No | string |
employeeText | No | string |
asOf | No | string |
withinDays | No | integer |
Request exampleJSON
{
"employees": [
{
"id": "E-100",
"name": "Ada Lovelace",
"role": "Engineer",
"startDate": "2024-01-15"
}
],
"documents": [
{
"employeeId": "E-100",
"type": "passport",
"identifier": "AB1234567",
"issuedOn": "2019-01-01",
"expiresOn": "2020-06-01"
},
{
"employeeId": "E-100",
"type": "passport",
"identifier": "ZZ9999999",
"issuedOn": "2019-01-01",
"expiresOn": "2021-06-01"
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-03T13:00:00.000Z",
"legalCompliance": false,
"employmentDecision": false,
"accessChanged": false,
"status": "extracted",
"employeeCount": 1,
"documentCount": 2,
"employees": [
{
"id": "E-100",
"name": "Ada Lovelace",
"role": "Engineer",
"startDate": "2024-01-15",
"endDate": ""
}
],
"documents": [
{
"employeeId": "E-100",
"type": "passport",
"identifierMasked": "••••4567",
"issuedOn": "2019-01-01",
"expiresOn": "2020-06-01"
},
{
"employeeId": "E-100",
"type": "passport",
"identifierMasked": "••••9999",
"issuedOn": "2019-01-01",
"expiresOn": "2021-06-01"
}
],
"issues": [
{
"kind": "conflict",
"code": "identifier_differs",
"employeeId": "E-100",
"field": "passport",
"detail": "Two records of this document type list different identifiers. Neither was chosen."
},
{
"kind": "conflict",
"code": "expiry_differs",
"employeeId": "E-100",
"field": "passport",
"detail": "Two records of this document type list different expiry dates. Neither was chosen."
}
],
"limitations": [
"No employment decision is made and no access is changed.",
"Employment law requirements are not invented. Checklist items come only from supplied policies.",
"This result is not a legal compliance determination.",
"Document numbers are masked, and email addresses are not copied into the response.",
"A missing item means it was not in the request."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/hr-operations/employee-document-extract" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"employees": [
{
"id": "E-100",
"name": "Ada Lovelace",
"role": "Engineer",
"startDate": "2024-01-15"
}
],
"documents": [
{
"employeeId": "E-100",
"type": "passport",
"identifier": "AB1234567",
"issuedOn": "2019-01-01",
"expiresOn": "2020-06-01"
},
{
"employeeId": "E-100",
"type": "passport",
"identifier": "ZZ9999999",
"issuedOn": "2019-01-01",
"expiresOn": "2021-06-01"
}
]
}
JSONhttps://brainiac.software/api/v1/hr-operations/employee-record-validate$0.04 USDCValidate employee records
Compare employee records with the required fields supplied by the caller, and report an end date that falls before the start date. No legal requirement is added.
Body
| Field | Required | Notes |
|---|---|---|
employees | No | array; Array |
documents | No | array; Array |
policies | No | array; Array |
acknowledgements | No | array; Array |
completions | No | array; Array |
requirements | No | array; Array |
text | No | string |
csv | No | string |
json | No | string |
file | No | object; Object |
roleText | No | string |
employeeText | No | string |
asOf | No | string |
withinDays | No | integer |
Request exampleJSON
{
"employees": [
{
"id": "E-100",
"name": "Ada Lovelace",
"role": "Engineer",
"startDate": "2024-01-15",
"endDate": "2023-01-01"
}
],
"requirements": [
{
"field": "email"
},
{
"field": "role"
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-03T13:00:00.000Z",
"legalCompliance": false,
"employmentDecision": false,
"accessChanged": false,
"status": "checked",
"employeeCount": 1,
"records": [
{
"employeeId": "E-100",
"status": "conflict",
"missing": [
{
"field": "email",
"detail": "The required email was not supplied."
}
],
"conflicts": [
{
"field": "endDate",
"detail": "The end date is before the start date. The dates were not rewritten."
}
]
}
],
"issues": [],
"limitations": [
"No employment decision is made and no access is changed.",
"Employment law requirements are not invented. Checklist items come only from supplied policies.",
"This result is not a legal compliance determination.",
"Document numbers are masked, and email addresses are not copied into the response.",
"A missing item means it was not in the request."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/hr-operations/employee-record-validate" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"employees": [
{
"id": "E-100",
"name": "Ada Lovelace",
"role": "Engineer",
"startDate": "2024-01-15",
"endDate": "2023-01-01"
}
],
"requirements": [
{
"field": "email"
},
{
"field": "role"
}
]
}
JSONhttps://brainiac.software/api/v1/hr-operations/employee-policy-acknowledgement-check$0.04 USDCCheck policy acknowledgements
Match supplied acknowledgements to supplied policies by policy id. An acknowledgement dated before the policy date is stale. This is not a compliance determination.
Body
| Field | Required | Notes |
|---|---|---|
employees | No | array; Array |
documents | No | array; Array |
policies | No | array; Array |
acknowledgements | No | array; Array |
completions | No | array; Array |
requirements | No | array; Array |
text | No | string |
csv | No | string |
json | No | string |
file | No | object; Object |
roleText | No | string |
employeeText | No | string |
asOf | No | string |
withinDays | No | integer |
Request exampleJSON
{
"employees": [
{
"id": "E-100",
"name": "Ada Lovelace"
}
],
"policies": [
{
"id": "P4",
"stage": "acknowledgement",
"name": "Safety handbook",
"kind": "policy",
"effectiveOn": "2026-06-01"
},
{
"id": "P5",
"stage": "acknowledgement",
"name": "Privacy notice",
"kind": "policy",
"effectiveOn": "2026-01-01"
}
],
"acknowledgements": [
{
"employeeId": "E-100",
"policyId": "P4",
"acknowledgedOn": "2026-01-01"
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-03T13:00:00.000Z",
"legalCompliance": false,
"employmentDecision": false,
"accessChanged": false,
"status": "checked",
"checks": [
{
"employeeId": "E-100",
"policyId": "P4",
"policyName": "Safety handbook",
"status": "stale",
"acknowledgedOn": "2026-01-01",
"effectiveOn": "2026-06-01",
"detail": "The acknowledgement date is before the supplied policy date. The policy was not treated as current."
},
{
"employeeId": "E-100",
"policyId": "P5",
"policyName": "Privacy notice",
"status": "missing",
"acknowledgedOn": "",
"effectiveOn": "2026-01-01",
"detail": "No acknowledgement was supplied for this policy."
}
],
"issues": [],
"limitations": [
"No employment decision is made and no access is changed.",
"Employment law requirements are not invented. Checklist items come only from supplied policies.",
"This result is not a legal compliance determination.",
"Document numbers are masked, and email addresses are not copied into the response.",
"A missing item means it was not in the request."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/hr-operations/employee-policy-acknowledgement-check" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"employees": [
{
"id": "E-100",
"name": "Ada Lovelace"
}
],
"policies": [
{
"id": "P4",
"stage": "acknowledgement",
"name": "Safety handbook",
"kind": "policy",
"effectiveOn": "2026-06-01"
},
{
"id": "P5",
"stage": "acknowledgement",
"name": "Privacy notice",
"kind": "policy",
"effectiveOn": "2026-01-01"
}
],
"acknowledgements": [
{
"employeeId": "E-100",
"policyId": "P4",
"acknowledgedOn": "2026-01-01"
}
]
}
JSONhttps://brainiac.software/api/v1/hr-operations/employee-onboarding-checklist$0.05 USDCList onboarding tasks
Build an onboarding checklist only from supplied onboarding policies. A document or acknowledgement counts only when it matches that policy. No statutory form is added.
Body
| Field | Required | Notes |
|---|---|---|
employees | No | array; Array |
documents | No | array; Array |
policies | No | array; Array |
acknowledgements | No | array; Array |
completions | No | array; Array |
requirements | No | array; Array |
text | No | string |
csv | No | string |
json | No | string |
file | No | object; Object |
roleText | No | string |
employeeText | No | string |
asOf | No | string |
withinDays | No | integer |
Request exampleJSON
{
"employees": [
{
"id": "E-100",
"name": "Ada Lovelace"
}
],
"documents": [
{
"employeeId": "E-100",
"type": "passport",
"identifier": "AB1234567",
"expiresOn": "2030-01-01"
}
],
"policies": [
{
"id": "P1",
"stage": "onboarding",
"name": "Identification",
"kind": "document",
"match": "passport"
},
{
"id": "P2",
"stage": "onboarding",
"name": "Handbook",
"kind": "policy"
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-03T13:00:00.000Z",
"legalCompliance": false,
"employmentDecision": false,
"accessChanged": false,
"status": "listed",
"items": [
{
"employeeId": "E-100",
"requirementId": "P1",
"name": "Identification",
"kind": "document",
"status": "met",
"detail": "A supplied document record matches this policy."
},
{
"employeeId": "E-100",
"requirementId": "P2",
"name": "Handbook",
"kind": "policy",
"status": "missing",
"detail": "No supplied policy record matches this policy."
}
],
"issues": [],
"limitations": [
"No employment decision is made and no access is changed.",
"Employment law requirements are not invented. Checklist items come only from supplied policies.",
"This result is not a legal compliance determination.",
"Document numbers are masked, and email addresses are not copied into the response.",
"A missing item means it was not in the request."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/hr-operations/employee-onboarding-checklist" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"employees": [
{
"id": "E-100",
"name": "Ada Lovelace"
}
],
"documents": [
{
"employeeId": "E-100",
"type": "passport",
"identifier": "AB1234567",
"expiresOn": "2030-01-01"
}
],
"policies": [
{
"id": "P1",
"stage": "onboarding",
"name": "Identification",
"kind": "document",
"match": "passport"
},
{
"id": "P2",
"stage": "onboarding",
"name": "Handbook",
"kind": "policy"
}
]
}
JSONhttps://brainiac.software/api/v1/hr-operations/employee-offboarding-checklist$0.05 USDCList offboarding tasks
Build an offboarding checklist only from supplied offboarding policies. A task is met only by a supplied completion record. Access is not changed.
Body
| Field | Required | Notes |
|---|---|---|
employees | No | array; Array |
documents | No | array; Array |
policies | No | array; Array |
acknowledgements | No | array; Array |
completions | No | array; Array |
requirements | No | array; Array |
text | No | string |
csv | No | string |
json | No | string |
file | No | object; Object |
roleText | No | string |
employeeText | No | string |
asOf | No | string |
withinDays | No | integer |
Request exampleJSON
{
"employees": [
{
"id": "E-100",
"name": "Ada Lovelace"
}
],
"policies": [
{
"id": "P3",
"stage": "offboarding",
"name": "Return equipment",
"kind": "task"
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-03T13:00:00.000Z",
"legalCompliance": false,
"employmentDecision": false,
"accessChanged": false,
"status": "listed",
"items": [
{
"employeeId": "E-100",
"requirementId": "P3",
"name": "Return equipment",
"kind": "task",
"status": "missing",
"detail": "No supplied task record matches this policy. Access was not changed."
}
],
"issues": [],
"limitations": [
"No employment decision is made and no access is changed.",
"Employment law requirements are not invented. Checklist items come only from supplied policies.",
"This result is not a legal compliance determination.",
"Document numbers are masked, and email addresses are not copied into the response.",
"A missing item means it was not in the request."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/hr-operations/employee-offboarding-checklist" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"employees": [
{
"id": "E-100",
"name": "Ada Lovelace"
}
],
"policies": [
{
"id": "P3",
"stage": "offboarding",
"name": "Return equipment",
"kind": "task"
}
]
}
JSONhttps://brainiac.software/api/v1/hr-operations/job-role-description-compare$0.04 USDCCompare a role description
Compare Duty lines in a role description with Duty lines supplied for an employee. Unlabeled prose is not a duty. The comparison is not an employment decision.
Body
| Field | Required | Notes |
|---|---|---|
employees | No | array; Array |
documents | No | array; Array |
policies | No | array; Array |
acknowledgements | No | array; Array |
completions | No | array; Array |
requirements | No | array; Array |
text | No | string |
csv | No | string |
json | No | string |
file | No | object; Object |
roleText | No | string |
employeeText | No | string |
asOf | No | string |
withinDays | No | integer |
Request exampleJSON
{
"roleText": "Title: Press operator\nDuty: Operate the press\nDuty: Train new operators\n",
"employeeText": "Title: Press operator\nDuty: Operate the press\nDuty: Sweep the floor\n"
}Response exampleJSON
{
"checkedAt": "2026-11-03T13:00:00.000Z",
"legalCompliance": false,
"employmentDecision": false,
"accessChanged": false,
"status": "compared",
"roleTitle": "Press operator",
"employeeTitle": "Press operator",
"matched": [
{
"duty": "Operate the press"
}
],
"missing": [
{
"duty": "Train new operators"
}
],
"extra": [
{
"duty": "Sweep the floor"
}
],
"issues": [],
"limitations": [
"No employment decision is made and no access is changed.",
"Employment law requirements are not invented. Checklist items come only from supplied policies.",
"This result is not a legal compliance determination.",
"Document numbers are masked, and email addresses are not copied into the response.",
"A missing item means it was not in the request."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/hr-operations/job-role-description-compare" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"roleText": "Title: Press operator\nDuty: Operate the press\nDuty: Train new operators\n",
"employeeText": "Title: Press operator\nDuty: Operate the press\nDuty: Sweep the floor\n"
}
JSONhttps://brainiac.software/api/v1/hr-operations/workforce-document-expiry-check$0.04 USDCCheck document expiry
Compare supplied expiry dates with a supplied as-of date. A document is due only inside the supplied day window. No date is invented when the as-of date is missing.
Body
| Field | Required | Notes |
|---|---|---|
employees | No | array; Array |
documents | No | array; Array |
policies | No | array; Array |
acknowledgements | No | array; Array |
completions | No | array; Array |
requirements | No | array; Array |
text | No | string |
csv | No | string |
json | No | string |
file | No | object; Object |
roleText | No | string |
employeeText | No | string |
asOf | No | string |
withinDays | No | integer |
Request exampleJSON
{
"asOf": "2026-11-03",
"withinDays": 30,
"documents": [
{
"employeeId": "E-100",
"type": "passport",
"identifier": "AB1234567",
"expiresOn": "2020-06-01"
},
{
"employeeId": "E-100",
"type": "visa",
"identifier": "CD7654321",
"expiresOn": "2026-11-20"
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-03T13:00:00.000Z",
"legalCompliance": false,
"employmentDecision": false,
"accessChanged": false,
"status": "checked",
"asOf": "2026-11-03",
"withinDays": 30,
"documents": [
{
"employeeId": "E-100",
"type": "passport",
"identifierMasked": "••••4567",
"expiresOn": "2020-06-01",
"status": "expired",
"detail": "The expiry date is before 2026-11-03."
},
{
"employeeId": "E-100",
"type": "visa",
"identifierMasked": "••••4321",
"expiresOn": "2026-11-20",
"status": "due",
"detail": "The expiry date falls within the supplied 30-day window."
}
],
"issues": [],
"limitations": [
"No employment decision is made and no access is changed.",
"Employment law requirements are not invented. Checklist items come only from supplied policies.",
"This result is not a legal compliance determination.",
"Document numbers are masked, and email addresses are not copied into the response.",
"A missing item means it was not in the request."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/hr-operations/workforce-document-expiry-check" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"asOf": "2026-11-03",
"withinDays": 30,
"documents": [
{
"employeeId": "E-100",
"type": "passport",
"identifier": "AB1234567",
"expiresOn": "2020-06-01"
},
{
"employeeId": "E-100",
"type": "visa",
"identifier": "CD7654321",
"expiresOn": "2026-11-20"
}
]
}
JSONhttps://brainiac.software/api/v1/hr-operations/record-completeness-report$0.12 USDCReport personnel record completeness
Combine supplied records, document dates, policy acknowledgements, onboarding and offboarding items, and role duties. The report does not determine legal compliance or change access.
Body
| Field | Required | Notes |
|---|---|---|
employees | No | array; Array |
documents | No | array; Array |
policies | No | array; Array |
acknowledgements | No | array; Array |
completions | No | array; Array |
requirements | No | array; Array |
text | No | string |
csv | No | string |
json | No | string |
file | No | object; Object |
roleText | No | string |
employeeText | No | string |
asOf | No | string |
withinDays | No | integer |
Request exampleJSON
{
"asOf": "2026-11-03",
"withinDays": 30,
"employees": [
{
"id": "E-100",
"name": "Ada Lovelace",
"role": "Engineer",
"startDate": "2024-01-15",
"endDate": "2023-01-01"
}
],
"documents": [
{
"employeeId": "E-100",
"type": "passport",
"identifier": "AB1234567",
"issuedOn": "2019-01-01",
"expiresOn": "2020-06-01"
}
],
"requirements": [
{
"field": "email"
}
],
"policies": [
{
"id": "P1",
"stage": "onboarding",
"name": "Identification",
"kind": "document",
"match": "passport"
},
{
"id": "P2",
"stage": "onboarding",
"name": "Handbook",
"kind": "policy"
},
{
"id": "P3",
"stage": "offboarding",
"name": "Return equipment",
"kind": "task"
},
{
"id": "P4",
"stage": "acknowledgement",
"name": "Safety handbook",
"kind": "policy",
"effectiveOn": "2026-06-01"
}
],
"acknowledgements": [
{
"employeeId": "E-100",
"policyId": "P4",
"acknowledgedOn": "2026-01-01"
}
],
"roleText": "Title: Engineer\nDuty: Operate the press\nDuty: Train new operators\n",
"employeeText": "Title: Engineer\nDuty: Operate the press\nDuty: Sweep the floor\n"
}Response exampleJSON
{
"checkedAt": "2026-11-03T13:00:00.000Z",
"legalCompliance": false,
"employmentDecision": false,
"accessChanged": false,
"status": "checked",
"employeeCount": 1,
"documentCount": 1,
"asOf": "2026-11-03",
"withinDays": 30,
"employees": [
{
"id": "E-100",
"name": "Ada Lovelace",
"role": "Engineer",
"startDate": "2024-01-15",
"endDate": "2023-01-01"
}
],
"documents": [
{
"employeeId": "E-100",
"type": "passport",
"identifierMasked": "••••4567",
"issuedOn": "2019-01-01",
"expiresOn": "2020-06-01"
}
],
"records": [
{
"employeeId": "E-100",
"status": "conflict",
"missing": [
{
"field": "email",
"detail": "The required email was not supplied."
}
],
"conflicts": [
{
"field": "endDate",
"detail": "The end date is before the start date. The dates were not rewritten."
}
]
}
],
"acknowledgements": [
{
"employeeId": "E-100",
"policyId": "P4",
"policyName": "Safety handbook",
"status": "stale",
"acknowledgedOn": "2026-01-01",
"effectiveOn": "2026-06-01",
"detail": "The acknowledgement date is before the supplied policy date. The policy was not treated as current."
}
],
"onboarding": [
{
"employeeId": "E-100",
"requirementId": "P1",
"name": "Identification",
"kind": "document",
"status": "met",
"detail": "A supplied document record matches this policy."
},
{
"employeeId": "E-100",
"requirementId": "P2",
"name": "Handbook",
"kind": "policy",
"status": "missing",
"detail": "No supplied policy record matches this policy."
}
],
"offboarding": [
{
"employeeId": "E-100",
"requirementId": "P3",
"name": "Return equipment",
"kind": "task",
"status": "missing",
"detail": "No supplied task record matches this policy. Access was not changed."
}
],
"expiry": [
{
"employeeId": "E-100",
"type": "passport",
"identifierMasked": "••••4567",
"expiresOn": "2020-06-01",
"status": "expired",
"detail": "The expiry date is before 2026-11-03."
}
],
"roleTitle": "Engineer",
"employeeTitle": "Engineer",
"matched": [
{
"duty": "Operate the press"
}
],
"missing": [
{
"duty": "Train new operators"
}
],
"extra": [
{
"duty": "Sweep the floor"
}
],
"issues": [],
"limitations": [
"No employment decision is made and no access is changed.",
"Employment law requirements are not invented. Checklist items come only from supplied policies.",
"This result is not a legal compliance determination.",
"Document numbers are masked, and email addresses are not copied into the response.",
"A missing item means it was not in the request."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/hr-operations/record-completeness-report" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"asOf": "2026-11-03",
"withinDays": 30,
"employees": [
{
"id": "E-100",
"name": "Ada Lovelace",
"role": "Engineer",
"startDate": "2024-01-15",
"endDate": "2023-01-01"
}
],
"documents": [
{
"employeeId": "E-100",
"type": "passport",
"identifier": "AB1234567",
"issuedOn": "2019-01-01",
"expiresOn": "2020-06-01"
}
],
"requirements": [
{
"field": "email"
}
],
"policies": [
{
"id": "P1",
"stage": "onboarding",
"name": "Identification",
"kind": "document",
"match": "passport"
},
{
"id": "P2",
"stage": "onboarding",
"name": "Handbook",
"kind": "policy"
},
{
"id": "P3",
"stage": "offboarding",
"name": "Return equipment",
"kind": "task"
},
{
"id": "P4",
"stage": "acknowledgement",
"name": "Safety handbook",
"kind": "policy",
"effectiveOn": "2026-06-01"
}
],
"acknowledgements": [
{
"employeeId": "E-100",
"policyId": "P4",
"acknowledgedOn": "2026-01-01"
}
],
"roleText": "Title: Engineer\nDuty: Operate the press\nDuty: Train new operators\n",
"employeeText": "Title: Engineer\nDuty: Operate the press\nDuty: Sweep the floor\n"
}
JSON