An offer acceptance form for a clear answer

Updated 2026-10-30

An offer goes out by email, and the answer comes back as "sounds great" somewhere in a reply chain. I want something firmer: a clear decision, a start date and a name. This form gives me that. A counter has its own box, so it never hides inside a yes.

Use this when

  • You want an accept, negotiate or decline answer in one place.
  • You need a start date and a notice status before you plan the first week.
  • You have several offers out and want one list.

Skip it when

  • You need a signed contract. The tick box and typed name record a reply and nothing more. Sign the contract elsewhere.
  • You have not defined the role yet. Start with a job requisition form.

What is asked, and why

The decision comes first, because it is the one answer I cannot work without. The start date and notice status feed my plan for day one. Terms and questions get separate boxes. The typed name and tick box show the reply is the candidate's own.

What a candidate's AI would ask

"Do you accept the offer?" Then "Which start date can you commit to?" Then "Do you have notice to serve?" It shows the answers and sends them only after a yes. See agent-fillable forms.

A note on wording

This is a form, not legal advice. Have a professional check any offer wording that has legal weight. If the new person must relocate, a travel request helps with the trip. More tools are in HR and recruiting forms.

Questions

Is the typed name a signature?

No. The form has no e-signature. The tick box and typed name record who replied and that they meant it. Sign the contract with your usual signing tool.

What if a candidate wants to negotiate?

They pick the middle choice and write their terms in the notes box. Filter the `offer_decision` column to find those rows, and reply to the person yourself.

Can I set a reply deadline?

Yes. Set `close_at` to the date your offer expires, and the form stops taking answers then.

Try the form

Live demo ยท nothing is saved

Your reply to our offer

Please tell us your decision. If you have questions first, write them at the end.

Your decision (required)
Do you have notice to serve?
Laptop you prefer
I confirm this reply is my own decision (required)

Or paste the JSON

Give this to your AI. It needs the AI Form API MCP server or an API key. It makes the form and sends you the link.

text
Create this form with the AI Form API create_form tool (or POST https://aiformapi.com/v1/forms with my API key). Then reply with the public_url.

{
  "title": "Your reply to our offer",
  "description": "Please tell us your decision. If you have questions first, write them at the end.",
  "fields": [
    {
      "id": "candidate_name",
      "label": "Your full name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "candidate_email",
      "label": "Your email",
      "type": "email",
      "required": true
    },
    {
      "id": "offered_role",
      "label": "Role in the offer",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "offer_decision",
      "label": "Your decision",
      "type": "single_choice",
      "required": true,
      "options": [
        "I accept the offer",
        "I would like to talk about the terms",
        "I decline the offer"
      ]
    },
    {
      "id": "committed_start",
      "label": "Start date you can commit to",
      "type": "date"
    },
    {
      "id": "notice_status",
      "label": "Do you have notice to serve?",
      "type": "single_choice",
      "options": [
        "No notice to serve",
        "Notice already given",
        "I have not given notice yet",
        "Not sure"
      ]
    },
    {
      "id": "laptop_preference",
      "label": "Laptop you prefer",
      "type": "single_choice",
      "options": [
        "Windows laptop",
        "Mac laptop",
        "No preference"
      ]
    },
    {
      "id": "terms_or_reason",
      "label": "Terms you want to talk about, or your reason for declining",
      "type": "long_text",
      "max_length": 1000
    },
    {
      "id": "questions_for_hr",
      "label": "Questions for HR before your first day",
      "type": "long_text",
      "max_length": 1000
    },
    {
      "id": "typed_full_name",
      "label": "Type your full name to confirm this reply",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "reply_is_mine",
      "label": "I confirm this reply is my own decision",
      "type": "checkbox",
      "required": true
    }
  ]
}

Or call the API

bash
curl -X POST https://aiformapi.com/v1/forms \
  -H "Authorization: Bearer $AIFORMAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Your reply to our offer","description":"Please tell us your decision. If you have questions first, write them at the end.","fields":[{"id":"candidate_name","label":"Your full name","type":"short_text","required":true,"max_length":150},{"id":"candidate_email","label":"Your email","type":"email","required":true},{"id":"offered_role","label":"Role in the offer","type":"short_text","required":true,"max_length":150},{"id":"offer_decision","label":"Your decision","type":"single_choice","required":true,"options":["I accept the offer","I would like to talk about the terms","I decline the offer"]},{"id":"committed_start","label":"Start date you can commit to","type":"date"},{"id":"notice_status","label":"Do you have notice to serve?","type":"single_choice","options":["No notice to serve","Notice already given","I have not given notice yet","Not sure"]},{"id":"laptop_preference","label":"Laptop you prefer","type":"single_choice","options":["Windows laptop","Mac laptop","No preference"]},{"id":"terms_or_reason","label":"Terms you want to talk about, or your reason for declining","type":"long_text","max_length":1000},{"id":"questions_for_hr","label":"Questions for HR before your first day","type":"long_text","max_length":1000},{"id":"typed_full_name","label":"Type your full name to confirm this reply","type":"short_text","required":true,"max_length":150},{"id":"reply_is_mine","label":"I confirm this reply is my own decision","type":"checkbox","required":true}]}'

JSON definition

json
{
  "title": "Your reply to our offer",
  "description": "Please tell us your decision. If you have questions first, write them at the end.",
  "fields": [
    {
      "id": "candidate_name",
      "label": "Your full name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "candidate_email",
      "label": "Your email",
      "type": "email",
      "required": true
    },
    {
      "id": "offered_role",
      "label": "Role in the offer",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "offer_decision",
      "label": "Your decision",
      "type": "single_choice",
      "required": true,
      "options": [
        "I accept the offer",
        "I would like to talk about the terms",
        "I decline the offer"
      ]
    },
    {
      "id": "committed_start",
      "label": "Start date you can commit to",
      "type": "date"
    },
    {
      "id": "notice_status",
      "label": "Do you have notice to serve?",
      "type": "single_choice",
      "options": [
        "No notice to serve",
        "Notice already given",
        "I have not given notice yet",
        "Not sure"
      ]
    },
    {
      "id": "laptop_preference",
      "label": "Laptop you prefer",
      "type": "single_choice",
      "options": [
        "Windows laptop",
        "Mac laptop",
        "No preference"
      ]
    },
    {
      "id": "terms_or_reason",
      "label": "Terms you want to talk about, or your reason for declining",
      "type": "long_text",
      "max_length": 1000
    },
    {
      "id": "questions_for_hr",
      "label": "Questions for HR before your first day",
      "type": "long_text",
      "max_length": 1000
    },
    {
      "id": "typed_full_name",
      "label": "Type your full name to confirm this reply",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "reply_is_mine",
      "label": "I confirm this reply is my own decision",
      "type": "checkbox",
      "required": true
    }
  ]
}