Managing Offers
Extend, revise, and track offers through the full lifecycle — from draft to candidate response to final decision.
Why It Matters
The offer stage is where your hiring process becomes a negotiation. Kit tracks the full offer lifecycle — extending terms, collecting candidate responses, revising when needed, and recording the final outcome — so your team stays aligned and nothing falls through the cracks.
Extending an Offer
To extend an offer, open a candidate’s application page while they’re in the Offer stage and click Extend Offer. Fill in:
| Field | Required | Description |
|---|---|---|
| Details | No | Free-text offer terms (role, compensation, start date, etc.) |
| Letter | No | PDF attachment up to 25 MB (formal offer letter) |
| Expires At | No | Date after which the offer automatically expires |
Clicking Create sends the candidate a notification with a magic link to view the offer in the candidate portal.
What Candidates See
Candidates access their offer through the candidate portal using a magic link sent via email. The offer page shows:
- The offer details your team entered
- A download link for the PDF letter (if attached)
- The expiration date (if set)
- Buttons to Accept or Decline
Candidates don’t need to create an account — the magic link authenticates them directly.
Candidate Responses
Accepting
When a candidate clicks Accept, the offer stage automatically completes and the application advances. Your team receives a notification, and an offer.candidate_accepted webhook fires.
Declining
Declining requires a comment explaining the reason. The stage remains In Progress so your team can review the feedback and decide next steps — revise the offer or move on. An offer.candidate_declined webhook fires.
Revising an Offer
If a candidate declines or you need to update terms, you can revise the offer. Revising:
- Increments the offer version number
- Resets the stage progress back to In Progress
- Clears any previous accept/decline status
- Notifies the candidate that a revised offer is available
- Fires an
offer.revisedwebhook
The candidate can then respond to the new version. Previous responses are preserved in the offer history for audit purposes.
Admin Accept & Decline
Admins can also record a final decision on the offer:
- Accept — marks the offer as accepted by your organization and completes the stage
- Decline — marks the offer as declined by your organization (stage stays In Progress)
These are separate from candidate responses. Use them when the final decision is made outside Kit (e.g. verbal confirmation, signed contract returned) or when an admin needs to override the candidate’s response.
Offer Status Lifecycle
An offer moves through these statuses:
| Status | Meaning |
|---|---|
pending |
Offer extended, awaiting response |
candidate_accepted |
Candidate accepted the offer |
candidate_declined |
Candidate declined the offer |
accepted |
Admin accepted the offer |
declined |
Admin declined the offer |
expired |
Expiration date has passed with no response |
Stage Completion Behavior
The offer stage completes automatically when an offer is accepted — either by the candidate or by an admin. Specifically:
- Candidate accepts — stage completes immediately
- Admin accepts — stage completes immediately
- Candidate declines — stage stays In Progress (team can revise)
- Admin declines — stage stays In Progress
- Offer revised — stage resets to In Progress (candidate can respond again)
Quick Checklist
- Extend an offer with details and optional PDF letter
- Set an expiration date if you need a response by a deadline
- Monitor for candidate responses in the application timeline
- Revise the offer if terms change or the candidate declines
- Use admin accept/decline for final decisions made outside Kit
- Subscribe to offer webhooks for real-time integration updates