Pipeline analytics
One Job's Review Board counts and conversion, with UMatch, each named Interview activity and each Job Workflow Playground activity scored separately; plus the Command Centre's figures: email reach, the Pitch Room funnel, 14-day and week-on-week history, sources and days waiting per stage.
bearerAuthorizationBearer <API key or OAuth token>An organization API key (ink_live_…, ADR-0124), or the OAuth access token a person's AI client gets from the Recruiter MCP sign-in. Only the Authorization header is accepted.
Idempotency-Key?stringMakes a write safe to repeat: the same key and input return the first result. Required for agents' writes and for anything a person confirms.
^[A-Za-z0-9._:-]+$8 <= length <= 128application/json- body
input*confirmation?stringThe id from a confirm or awaiting_approval Outcome, sent with the same input and key to go ahead.
Done. A replay of the same key and input omits output.
application/json- response
status*unknownoutput?actionId*stringcurl -X POST 'https://www.invyte.ai/api/recruiter/v1/operations/pipeline.analytics' \ -H 'Content-Type: application/json' \ -d '{ "input": { "jobId": "string" }}'{ "status": "done", "output": { "stages": [ { "name": "string", "count": 0 } ], "totalApplications": 0, "umatchDistribution": { "activityLabel": "string", "materializedApplicationCount": 0, "scoredApplicationCount": 0, "missingScoreCount": 0, "averageScore": 0, "scoreDistribution": { "0-20": 0, "20-40": 0, "40-60": 0, "60-80": 0, "80-100": 0 } }, "interviewDistributions": [ { "activityLabel": "string", "materializedApplicationCount": 0, "scoredApplicationCount": 0, "missingScoreCount": 0, "averageScore": 0, "scoreDistribution": { "0-20": 0, "20-40": 0, "40-60": 0, "60-80": 0, "80-100": 0 } } ], "playgroundDistributions": [ { "activityLabel": "string", "materializedApplicationCount": 0, "scoredApplicationCount": 0, "missingScoreCount": 0, "averageScore": 0, "scoreDistribution": { "0-20": 0, "20-40": 0, "40-60": 0, "60-80": 0, "80-100": 0 } } ], "conversionFunnel": [ { "stage": "string", "count": 0, "percentage": 0 } ], "emailReach": { "sent": 0, "delivered": 0, "opened": 0, "clicked": 0, "notArriving": 0, "notSent": 0 }, "pitchRoomFunnel": [ { "stage": "string", "count": 0, "pass": 0, "here": 0, "hereLabel": "string" } ], "history": { "days": [ { "date": "2019-08-24", "applied": 0, "invited": 0, "steps": 0, "shortlisted": 0, "rejected": 0 } ], "week": { "applied": { "now": 0, "prev": 0 }, "invited": { "now": 0, "prev": 0 }, "steps": { "now": 0, "prev": 0 }, "shortlisted": { "now": 0, "prev": 0 }, "rejected": { "now": 0, "prev": 0 } } }, "sources": { "applied": 0, "prospect": 0 }, "daysPerStage": [ { "stage": "string", "candidates": 0, "late": 0, "medianDays": 0 } ] }, "actionId": "string"}Add someone to a Job POST
Put a Talent Hub person forward for a Job, by the key `talent.list` gave (an Invyte Network person's `person_v1.…` key works too). A member who said yes to roles like this joins the pipeline and is told; anyone else is asked first by email (members to say yes, others to join Invyte). Never sends when they declined this Job, asked not to be emailed about roles, or have no address: it is refused with the reason and what to do instead.
Review Board POST
One Job's Review Board, a page of cards at a time with the whole board's counts: each card with the candidate's place, UMatch, steps, card footer (what is next), invitation and contact state. Contact details only on request, to those who may contact the Job's candidates.