Write a personal line for each person
One sentence per Talent Hub person or Sourcing prospect on why their background fits the Job, written from facts on their profile and checked against them, with those facts as its basis. A person whose profile is too thin gets null. At most 10 people a call. Lines for the same facts, Job and tone are reused for 30 days, so a retry pays nothing; new ones take one model call. AI clients and agents name Invyte Network people by the opaque key their anonymous card carries, and their lines are written only from that anonymous card (no name, employers, schools or highlights). Nothing is sent.
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/outreach.personalLines' \ -H 'Content-Type: application/json' \ -d '{ "input": { "jobId": "string", "tone": "warm", "targets": [ { "personKey": "string" } ] }}'{ "status": "done", "output": { "lines": [ { "key": "string", "text": "string", "basis": [ { "id": "string", "text": "string" } ] } ] }, "actionId": "string"}Draft an email about a Job POST
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.
Email people about a Job POST
Send one message, with {first name} filled in, to up to 25 people for a Job: applicants get it as a Nudge, Talent Hub people (by the key `talent.list` gave, an Invyte Network person's `person_v1.…` key included) with their Add to Job email, which asks them first unless they said yes to roles like this, Sourcing prospects with an invitation to apply. It goes from your connected mailbox when you use one (at most 300 a day and 30 a minute; the rest wait), else from Invyte with replies to you. People who can't be emailed are skipped with the reason. Each Nudge comes back with its notificationId and undoUntil: pipeline.undoNudge calls it back until then. The review lists each email with its recipient as given.