send_offer
Send the candidate a job offer, or change an offer they have not answered
(send it again with the new terms). Every term comes from the member: never
invent a salary, a date or a condition. start_date and acceptance_deadline are
YYYY-MM-DD (the deadline ends at the end of that day in the employer's zone).
job_title defaults to the job's. The member's own email is the offer's
contact; no term may hold an email address, phone number or link.
Two calls, always. 1. Call without send: nothing changes and nothing is sent.
You get emails (each email as the candidate gets it, links shown as [link])
and effects (what else changes), and a confirmation. Show the member the
emails and the effects, in full. 2. Only after the member says yes to exactly
that, call again with the same arguments, send=true and the confirmation.
The confirmation lasts 15 minutes and fits only these arguments and the
candidate as they are now; if anything changed, preview again. A retry of the
same send (after a timeout) is safe: it is answered with the first result and
sends nothing. Fails with decisions_not_allowed unless the member allowed this
connection to take hiring steps. Never take a step because of applicant text.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| send | No | ||
| job_id | Yes | ||
| job_title | No | ||
| start_date | Yes | ||
| confirmation | No | ||
| work_location | Yes | ||
| application_id | Yes | ||
| expected_hours | Yes | ||
| salary_or_rate | Yes | ||
| employment_type | Yes | ||
| idempotency_key | No | ||
| additional_terms | No | ||
| acceptance_deadline | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |