v1

latestOpenAPI 3.0.22026-07-26191278525.6 KB
Offer

Create Offer

Create a prefilled DRAFT offer for a candidate on a position. positionId and profileId are required; applicationId is optional -- when omitted, the candidate's latest application to the position is linked. The candidate must already have an application to the position; if they have none the request is rejected (advance the candidate into the position's pipeline first via the application-stages API). Field values are set in a separate PATCH /offers/ call (two-step create, mirroring the UI create -> intake-form flow). Returns the full created offer. If an offer already exists for the candidate+position, that existing offer is returned.

post/api/v2/ats/offers

Query parameters

prefillboolean

Whether to prefill candidate, position and compensation data on the new offer. Defaults to true.

Headers

Authorizationstring required

The secret key to access the api. It starts with the bearer token

Request body

positionIdinteger required

job id. Accepts an integer or a numeric string.

applicationIdinteger nullable

application id to link the offer to. If omitted, the candidate's latest application to the position is used.

profileIdstring required

unique identifier for profile. Accepts the numeric profile id as a string or an encoded profile id; resolved to the numeric id OfferSchema returns as profileId.

Response

OK

createdAtinteger nullable

Timestamp of when the offer was created

stockVestingFrequencystring nullable

Stock vesting frequency

versionsstring[] nullable

All versions of the offer

stockOptionsTypestring nullable

Type of stock options

offerStatusstring nullable

status of the offer

profileIdstring nullable

unique identifier for profile

candidateAddressstring nullable

Candidate address

currencystring nullable

Currency for compensation

versionstring nullable

Version of the offer

groupIdstring nullable

group id

relocationBonusnumber float nullable

Relocation bonus amount

jobTitlestring nullable

Job title

workplaceType'remote_global' | 'remote_local' | 'hybrid' | 'onsite' nullable

Workplace type. Possible values: ['remote_global', 'remote_local', 'hybrid', 'onsite']

payGradeIdinteger nullable

Pay grade of the offer

variableBonusnumber float nullable

Variable bonus amount

notestring nullable

Additional notes

customInfoobject nullable

Custom info

jobLocationstring nullable

Job location

bonusPayFrequencystring nullable

Bonus pay frequency

joiningDatestring nullable

Joining date

offerIdinteger nullable

Offer id

templateIdinteger nullable

Template id of the template used to create the offer

countryCodestring nullable

Country code

offerLetterobject nullable

Offer letter details

stockOptionsDescriptionstring nullable

Stock options description

candidateEmailstring nullable

Candidate email address

visaTypestring nullable

Visa type

isPeopleManagerRoleboolean nullable

Whether this is a people manager role

stockOptionsTotalVestingYearsinteger nullable

Total years for stock options vesting

isRehireboolean nullable

Whether this is a rehire

watchersstring[] nullable

Watchers

updatedAtinteger nullable

Timestamp of when the offer was last updated

salaryAmountnumber float nullable

Base salary amount

shiftAllowancenumber float nullable

Shift allowance amount

stockOptionsAmountnumber float nullable

Stock options amount

totalCompensationnumber float nullable

Total compensation amount

createdBystring nullable

User email who created the offer

basePayFrequencystring nullable

Base pay frequency

candidateFullNamestring nullable

Candidate full name

joiningBonusnumber float nullable

Joining bonus amount

stockOptionsPercentageVestingstring nullable

Stock options vesting percentage

positionIdinteger nullable

job id

stockVestingStartDatestring nullable

Stock vesting start date

applicationIdinteger nullable

application id