Skip to Content
InvyteDocs

Draft an email about a Job

Write a fresh subject and opening for an email about a Job, from the Job alone (never from the people it goes to): it starts "Hi {first name},", stays under 80 words and leaves out what Invyte adds below it (links, consent wording, the next step). Name the emails it goes out as in `kinds`. To give each person a sentence of their own, ask outreach.personalLines and send each person their own message. A paid model call: send an idempotency key, and a retry with it never pays again (a call that did not finish returns the draft it already wrote; a finished one replays without it). Nothing is sent.

POST
/operations/outreach.draft

Authorization

bearer
headerAuthorizationBearer <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.

Header Parameters

Idempotency-Key?string

Makes a write safe to repeat: the same key and input return the first result. Required for agents' writes and for anything a person confirms.

Match^[A-Za-z0-9._:-]+$
Length8 <= length <= 128

Request Body

application/json
  1. body
input*
confirmation?string

The id from a confirm or awaiting_approval Outcome, sent with the same input and key to go ahead.

Response Body

Done. A replay of the same key and input omits output.

application/json
  1. response
status*unknown
output?
actionId*string
Example Request
curl -X POST 'https://www.invyte.ai/api/recruiter/v1/operations/outreach.draft' \  -H 'Content-Type: application/json' \  -d '{  "input": {    "jobId": "string",    "kinds": [      "invite"    ],    "tone": "warm"  }}'
Example Response
{  "status": "done",  "output": {    "subject": "string",    "body": "string"  },  "actionId": "string"}