Using this webhook, you can customize the hire form that the recruiter fills out in Comeet when changing a candidate's status to Hired. This allows you to require the recruiter to provide details that are not managed in Comeet but are required for creating the new employee profile. Using this webhook is optional.

Request

Comeet will make this request to the endpoint that you define. The payload of the request includes the hired candidate's details as defined here. If needed, use this information to customize the form that will be presented to the recruiter.

{
  "comeet_id": "19E.98",
  "person_uid": "05.E4A",
  "first_name": "Bobby",
  "middle_name": "Robert",
  "last_name": "Chauck",
  "email": "[email protected]",
  "time_created": "2016-08-10T13:30:02Z",
  "phone": "07-4442321",
  "mobile_phone": "052-8644246",
  "id_number": "5454-2233-1",
  "linkedin_url": "https://www.linkedin.com/in/bobby-hauck-06b0735",
  "hired_date": "2016-10-16",
  "start_date": "2016-10-23",
  "source": {
    "name": "JobmeHR",
    "type": "Agency",
    "comeet_id": "101E.27"
  },
  "resume": {
    "name": "bobby_cv.docx",
    "url": "https://comeet-xxx.amazonaws.com/65c0a9ff2166g"
  },
  "picture": {
    "url": "https://comeet-xxx.amazonaws.com/e43123cff1231g0"
  },
  "links": [
    {
      "url": "http://www.personalportfolio.com"
    }
  ],
  "files": [
    {
      "name": "Offer letter.pdf",
      "url": "https://comeet-xxx.amazonaws.com/e4376598f1231g0",
      "type": "offer_letter"
    }
  ], 
  "offer_fields": [
     {
            "PTO": "25"
     },
     {
            "Car type": "Mini"
      }
   ],
  "opening": {
    "description": "For team A",
    "reason": "new",
    "custom_fields": {
      "Department": "Sales",
      "Type": "Management"
    }
  },
  "position": {
    "comeet_id": "34D.98",
    "name": "Automation QA",
    "public_name": "Automation QA Engineer",
    "description": "<div>QA Automation Engineer - Remote working<br><br>We are looking for a QA Automation Engineer who is excited by the opportunity to build modern, open source software for financial institutions, government regulators, and others taking on the challenges of interoperability and financial inclusion. Here, as QA Automation Engineer, you’ll get the chance to work on something truly unique, that has real, lasting impact in real-time payments, and financial inclusion of the poor.<br><br>Our mission is to improve lives by accelerating universal access to reimagined financial services. It is our belief that technology is the key to driving this access for the most vulnerable and disadvantaged people.<br><br></div>",
    "requirements": "<ul><li>Agile software development experience (Kanban, Scrum)</li><li>Experience with testing and authoring test automation for both REST and SOAP based web services</li><li>Experience working with Selenium using page object modelling</li></ul>",
    "department": "R&D",
    "position_id": "AQA_011",
    "location": "New York",
    "employment": "Full-time",
    "employee_type": "Headcount",
    "seniority": "Senior",
    "hiring_manager": {
      "first_name": "David",
      "last_name": "Black",
      "email": "[email protected]"
    },
    "leading_recruiter": {
      "first_name": "Brandon",
      "last_name": "Liao",
      "email": "[email protected]"
    },
    "custom_fields": {
      "custom field": "value",
      "custom field 2": "value 2"
    }
  },
  "custom_fields": {
    "custom field": "value",
    "custom field 2": "value 2"
  }
}

Response

The response must contain a set of questions in a JSON format as described below. You can use the candidate and position data that is sent in the request to customize the options presented in the form.

  • Successful response: return HTTP code 200.
  • Handling errors: return the appropriate HTTP code for the error. The payload must include a clear and actionable description of the problem that will be shown to the user. See the required data structure here.
  • Note that this request will timeout after 40 seconds. For a positive user experience, the typical response time should be no more than 2 seconds.
NameTypeDescription
questionsarray of objects
questions[].uidstringUnique identifier for the question, defined by your system. This identifier is subsequently provided with the request to create the new employee
questions[].titlestringThe title of the question that is presented to the user
questions[].is_requiredbooleantrue - the question is required
false - the question is optional
questions[].typestringOne of the following
SHORT_ANSWER – an input field for free form text
DROPDOWN – select from a given list of options
DATE_PICKER – select a date
SEARCH_DROPDOWN – select from a list of options. Use this option instead of a dropdown when there's a long list of options, for example, when selecting the direct manager out of a list of employees. See the documentation below for more details.
questions[].optionsarray of objectsFor questions of type DROPDOWN only - define the options that the user should select from.
For other question types - must include an empty array.
questions[].options[].titlestringThe text of the dropdown option that is presented to the user
questions[].options[].uidstringUnique identifier for this option, defined by your system. The identifier of the selected option is subsequently provided with the request to create the new employee
{
  "questions": [
    {
      "uid": "1",
      "title": "Nickname",
      "is_required": false,
      "type": "SHORT_ANSWER",
      "options": []
    },
    {
      "uid": "2",
      "title": "Date of birth",
      "is_required": true,
      "type": "DATE_PICKER",
      "options": []
    },
    {
      "uid": "3",
      "title": "Department",
      "is_required": true,
      "type": "DROPDOWN",
      "options": [
        {
          "title": "Finance",
          "uid": "1"
        },
        {
          "title": "Product",
          "uid": "2"
        }
        //...
      ]
    },
    {
      "uid": "4",
      "title": "Direct manager",
      "is_required": true,
      "type": "SEARCH_DROPDOWN",
      "options": []
    }    
  ]
}

Search dropdown

Use this question type instead of a dropdown when there's a long list of options, for example when selecting the direct manager out of a list of employees.

Request

When the user types two characters or more, Comeet will make a POST request to the same URL that you define for the Request hire questionnaire. This request will be made with the additional query string param action=search.

POST https://api.hrisapp.com/comeet/request_hire_questionnaire?action=search
{
  "search_term": "John",
  "field_uid": "4"
}

Response

Return the relevant options for the user's input in an array of objects. Only the top 10 options will be displayed in the dropdown.

NameTypeDescription
titlestringPresented to the user in the dropdown
uidstringThe UID of the selected option is provided in the Create an employee request
[
  {
    "title": "John Robert",
    "uid": "1"
  },
  {
    "title": "John Ventora",
    "uid": "2"
  },
  //...
]