Skip to main content

Event Payloads

All webhook events share a common structure with resource-specific data.

Event Envelope

{
"event": "application.created",
"event_id": "evt_abc123",
"created_at": "2025-01-15T10:30:00Z",
"account_id": 12345,
"data": {
// Resource-specific payload
}
}
FieldDescription
eventEvent type (e.g., application.created)
event_idUnique identifier for this delivery
created_atISO 8601 timestamp
account_idYour Kula account ID
dataResource-specific payload

Event Types

Candidate Events

EventDescription
candidate.createdNew candidate added
candidate.updatedCandidate profile updated

Application Events

EventDescription
application.createdNew application submitted
application.updatedApplication updated
application.stage_changedApplication moved to new stage
application.rejectedApplication rejected
application.hiredCandidate hired
application.screenedAI screening completed for an application

Job Events

EventDescription
job.createdNew job created
job.updatedJob updated
job_posting.publishedJob posting went live
job_posting.updatedJob posting updated

Requisition Events

EventDescription
requisition.createdNew requisition created
requisition.updatedRequisition updated
requisition.openedRequisition opened
requisition.filledRequisition filled
requisition.closedRequisition closed

Offer Events

EventDescription
offer.createdNew offer created
offer.updatedOffer updated
offer.approvedOffer approved
offer.deletedOffer removed
offer.acceptedCandidate accepted offer
offer.declinedCandidate declined offer

Interview Events

EventDescription
interview.availability.computedAsync interviewer-availability search completed (alternative to polling GET /v1/interviews/interviewers_availability/{poll_id})
interview.event.createdCalendar event for an interview was created — fires after async provisioning completes, conference URL is populated
interview.event.updatedCalendar event was updated (reschedule, location/host change, interviewer change, AI flag toggle)
interview.event.cancelledCalendar event was cancelled — covers both API/UI cancel and organizer-deletes-from-calendar
interview.attendee.respondedInterview attendee's RSVP changed (accepted, declined, tentative). Bulk system resets are suppressed

Common Data Objects

IdNameObject

{
"id": 123,
"name": "Engineering"
}

UserObject

{
"id": 456,
"name": "Jane Smith",
"email": "jane@example.com"
}

LocationObject

{
"city": { "id": 1, "name": "San Francisco" },
"state": { "id": 2, "name": "California" },
"country": { "id": 3, "name": "United States" }
}

Example Payloads

See the Webhooks API reference for complete payload examples for each event type.