Place a candidate at a workflow step
Move a candidate to a step of the Job's workflow (pipeline.placementMap lists the steps). Run pipeline.previewPlacement first. When the move opens steps for them, Invyte emails them that their next step is ready. Returns the plan it committed.
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.placeAtNode' \ -H 'Content-Type: application/json' \ -d '{ "input": { "applicationId": "string", "targetNodeId": "string", "reason": "string" }}'{ "status": "done", "output": { "outcome": "candidate_work", "column": "applied", "email": "not_requested", "plan": { "kind": "blocked", "summary": "string", "blockedReason": "string", "target": { "nodeId": "string", "title": "string", "kind": "activity" }, "decision": { "nodeId": "string", "title": "string", "paths": [ { "name": "string", "description": "string", "goesTo": "string", "condition": "string" } ], "missingEvidence": [ "string" ] }, "outcome": "candidate_work", "lands": { "column": "applied", "at": [ { "nodeId": "string", "title": "string" } ] }, "evaluatedPath": { "name": "string", "condition": "string", "goesTo": { "nodeId": "string", "title": "string" } }, "waiting": { "step": { "nodeId": "string", "title": "string" }, "reason": "human_review", "detail": "string" }, "humanReview": { "nodeId": "string", "title": "string", "instructions": "string", "paths": [ { "name": "string", "description": "string" } ], "decidedBy": "your_team", "task": "new" }, "requiredWarningCodes": [ "string" ], "opens": [ "string" ], "keeps": [ "string" ], "continues": [ "string" ], "skips": [ "string" ], "closes": [ "string" ], "hides": [ "string" ], "closesReviewTasks": [ { "taskId": "string", "nodeId": "string", "title": "string" } ], "endsWaits": [ { "nodeId": "string", "title": "string" } ], "column": "applied", "emailsCandidate": true, "noEmailReason": "waiting", "completionDeadline": "2019-08-24T14:15:22Z" } }, "actionId": "string"}Nudge a candidate POST
Email a candidate about their next step on this Job, in your words or Invyte's. Only when a Nudge is due: not while one is waiting, after they unsubscribed, or once the Job is closed.
Workflow steps for a candidate POST
Every step of a candidate's workflow, with where they are on each and whether they can be placed there now (and why not): activities, Decisions with their paths, Human Reviews, Short List and Reject. Use it to pick pipeline.previewPlacement's targetNodeId, including to undo a rejection.