---
title: Job Dynamic Custom Fields
slug: job-dynamic-custom-fields
docTags: 
createdAt: 2025-10-07T17:01:40.555Z
---

When enabling your integration for a job, **Custom Fields&#x20;**&#x6D;ay not always be enough. You might need to request additional data that depends on previously submitted information. This can be achieved with a **two-step flow:&#x20;**&#x66;irst, set up the [Job Custom Fields](docId\:nrlU8Ie2Ibr3R4Z3kc7pf). Once that primary form is submitted, Jobylon ATS will forward them to you as per usual flow. You can then process this data and build a **secondary form&#x20;**&#x74;hat requests additional fields based on the information submitted from the first form.

Please note that Dynamic Custom Fields are **not automatically available**. To start using them, you must first contact your Jobylon contac&#x74;**.**

![](https://api.archbee.com/api/optimize/Bcs_q55fdIV24__dfDcYJ/3uuTHKieCPZrLZgxdwVLx_.blob)

# Workflow

### Static Form

When using **Dynamic Custom Fields**, once the user submits the first form, Jobylon ATS will immediately send a Job Webhook to the partner, as described in [Webhooks](docId:5Pnq0B83GzRhxrdqhK_Wl). This webhook will include, among other fields, the following:

| Name              | Content       | Description                                                                                  |
| ----------------- | ------------- | -------------------------------------------------------------------------------------------- |
| event\_type       | job           | Webhook type identifier                                                                      |
| action            | create/update | Webhook action                                                                               |
| settings          | object        | Object containing the user answers to the first (static) form                                |
| dynamic\_settings | null          | Object containing the user answers to the second (dynamic) form. `null` in the first webhook |

Jobylon expects an immediate response to this webhook. The response must return a **200** status code and a JSON including a URL where Jobylon can access the dynamic fields.

Response example:

:::BlockQuote
\{
&#x20;   "dynamic\_config\_url": "https\://www\.example.com/dynamic-form-fields"
}
:::

The ATS will attempt to access the returned URL **up to 5 times**, with a **3-second interval** between each attempt. Once the form is available, Jobylon ATS will show it to the user.&#x20;
If the form is still unavailable after the fifth attempt, an error message will be displayed to the user and the flow is interrupted.


### Dynamic Form

Jobylon expects the dynamic form to be present in the returned URL, in JSON format. All the fields must be within the `fields` object and follow the exact same structure as shown in [Api Reference/OpenAPI](docId\:H5IszA0jmnESIexDe3I5f) for Job Config. For example:

:::BlockQuote
\{
&#x20;   "fields":
&#x20;   \[
&#x20;       \{
&#x20;           "name": "string",
&#x20;           "label": "string",
&#x20;           "required": true,
&#x20;           "type\_field": "number",
&#x20;           "metadata":
&#x20;           \{
&#x20;               "min\_value": 0,
&#x20;               "max\_value": 0,
&#x20;               "default\_value": 0
&#x20;           }
&#x20;       }
&#x20;   ]
}
:::

Once the user saves the secondary (dynamic) form, Jobylon ATS sends a second webhook to the partner with the following fields:

| Name              | Content         | Description                                                                                 |
| ----------------- | --------------- | ------------------------------------------------------------------------------------------- |
| event\_type       | job             | Webhook type identifier                                                                     |
| action            | dynamic\_update | Webhook action                                                                              |
| settings          | null            | Object containing the user answers to the first (static) form. `null` in the second webhook |
| dynamic\_settings | object          | Object containing the user answers to the second (dynamic) form.                            |

