1. Introduction

Culinary Agents aims to make the application posting process simple from end-to-end. This includes providing the ability for partner platforms to automatically post applicant information (contact information, resume information, etc) from your web platform to CulinaryAgents.com. Outlined below are our specifications for submitting an application to a job on CulinaryAgents.com.

 

2. Transport

The CulinaryAgents Easy Apply Webhook makes an HTTPS POST to the endpoint. We do not deliver to non-HTTPS services.

 

3. Format

The POST request body will be delivered as JSON, as configured during setup. The request payload will be formatted as a JSON object.
The Content-Type request header will be set accordingly to application/json

 

4. Response

200 OK

The request succeeded.

400 Bad Request

Missing header values: X-CulinaryAgents-Signature, X-CulinaryAgents-Signature-Provider or X-CulinaryAgents-Signature-Timestamp

412 Precondition Failed

Signature doesn't match.

 

5. Fields

response_id

A unique identifier for the Each Application being transmitted, assigned by Client.

job_id

The CulinaryAgents' job identification for the Job provided by CulinaryAgents in a feed’s reference_number field.

email

The Applicant’s email address.

first_name

The Applicant’s first name.

last_name

The Applicant’s last name.

phone_number  *optional

The Applicant’s phone number.

resume

The Applicant’s attached resume, in PDF,DOC and DOCX format.
Maximum Filesize: 5MB
In form-data format, a file upload attachment as described in RFC2388, with generated unique filename added in the header.
Application Types
 - application/pdf
 - application/msword
 - application/vnd.openxmlformats-officedocument.wordprocessingml.document
 - application/octet-stream

 

6. Signatures

You may optionally enable signatures for network requests from Apply Webhook. After signatures are enabled, you must:

1. Verify the signature.
2. Check that the current time is within 60 seconds of the timestamp in the request.

 

6.1. Full Signature Headers Example in HTTP Request


POST {{ENDPOINT URL}}

Content-Type: application/json
X-CulinaryAgents-Signature: Jex58l1eXuqNoR7YiKeDQRhEW3frTIq3RmHpfyTtESI=
X-CulinaryAgents-Signature-Provider: {{PROVIDER NAME}}
X-CulinaryAgents-Signature-Timestamp: 2022-01-31T04:23:03.214Z 
X-CulinaryAgents-Signature-Version: v1; sha256
  

* The {{ENDPOINT URL}} and {{PROVIDER NAME}} will be provided with secret key.

 

6.2. How to Setup Signature


X-CulinaryAgents-Signature: <signature>
<signature>: String of characters returned by signature algorithm.
Example: Jex58l1eXuqNoR7YiKeDQRhEW3frTIq3RmHpfyTtESI=
    
Below is the logic how to generate your signature: 1. Take the Apply Webhook payload. {"response_id":"1", "job_id":"1234", "email":"[email protected]", "first_name":"Mary", "last_name":"Jane", "phone_number":"1-234-567-1234"}
2. Take the timestamp from X-CulinaryAgents-Signature-Timestamp. 2022-01-31T04:23:03.214Z
3. Concatenate timestamp and payload, separated by a dot (.). Note that the payload needs to be from the request body without altering it. 2022-01-31T04:23:03.214Z.{"response_id":"1", "job_id":"1234", "email":"[email protected]", "first_name":"Mary", "last_name":"Jane", "phone_number":"1-234-567-1234"}
4. Create a base64-encoded HMAC SHA256 hash out of timestamp.payload with your secret without breaking the encoded string into lines. Secret Key(Will be provided): e1fb9132fd23caebcfda27c1b98f78cf2a6251a7c3b1bea29bfb9cc921155ab6 Generated Signature: Jex58l1eXuqNoR7YiKeDQRhEW3frTIq3RmHpfyTtESI=
5. This value should be added into X-CulinaryAgents-Signature in the header.

 

7. User Experience after Submission

The following are details of what happens after an application submission. If the email does not already have an account on CulinaryAgents.com, we will create an account and submit application, then return an application confirmation. If the email already exists on CulinaryAgents.com, we will submit the application and return an application confirmation.

 

7.1. Non-CA User

When an application is submitted and the email does not already exist as a CA user account, the following occurs:

1) Our system creates a CA user account using the email.
2) Our system will send the user a confirmation email of successful submission.
3) The email will inform the user that they have the option to setup a password for the user account if they choose to manage the application or message the business.

 

7.2. Existing CA User

When an application is submitted and the email is already a CA user account, we simply perform step 2 from section 7.1