VAC: Vacancy
A vacancy record representing an open job position at a client organisation in the recruitment workflow.
VAC definition shipped with DemandFlow. Administrators can add, remove, rename, or re-type fields, change which ones are required, and alter the layout from the Definitions screen in Settings. Your tenant's current schema may differ from what is shown here. To read the current definition at any time, GET the DEFINITION object whose id matches VAC.Entity properties
| Property | Value |
|---|---|
| Entity code | VAC |
| Display name | Vacancy |
| Plural | Vacancies |
| Level | 11000 |
Use cases
A vacancy record representing an open job position at a client organisation in the recruitment workflow.
VAC represents an open position or job vacancy that needs to be filled through the recruitment process. It links to CLIENT via a multi-link relationship (CLIENT-to-VAC). The vacancy-to-placement lifecycle (VAC created -> candidates sourced -> PLACE confirmed) forms the core recruitment workflow. Fields modelled from Dynamics 365 crimson_vacancy entity with clean DemandFlow naming conventions.
Fields
Basics
| Field | Type | Required | Notes |
|---|---|---|---|
name | text | Yes | Name. |
ref | text | Vacancy reference. Read only. | |
status | enum | Yes | Valid ids: draft (Draft), pendingApproval (Pending Approval), approved (Approved), live (Live), shortlisting (Shortlisting), interviewing (Interviewing), offerStage (Offer Stage), filled (Filled), onhold (On Hold), cancelled (Cancelled), lost (Lost). |
positionType | enum | Yes | Valid ids: permanent (Permanent), contract (Contract), temporary (Temporary). |
priority | enum | Valid ids: high (High), medium (Medium), low (Low), onhold (On Hold). | |
jobTitle | text | Yes | Job title. |
numberOfPositions | number | Number of positions. |
Client
| Field | Type | Required | Notes |
|---|---|---|---|
client | reference → CLIENT | Yes | Client. |
hiringManager | reference → PPL | Hiring manager. | |
clientRef | text | Client reference. | |
endClient | reference → CLIENT | The end client when supplying via an agency or intermediary |
Classification
| Field | Type | Required | Notes |
|---|---|---|---|
discipline | reference → DISCIPLINE | Discipline. | |
country | reference → COUNTRY | Country. |
Key dates
| Field | Type | Required | Notes |
|---|---|---|---|
startDate | date | Yes | Start date. |
closingDate | date | Closing date. | |
reviewDate | date | Review date. |
Ownership
| Field | Type | Required | Notes |
|---|---|---|---|
consultant | reference → user | Consultant. | |
deliveryOwner | reference → user | Delivery owner. | |
leadFrom | reference → user | The consultant who sourced this vacancy |
Recruitment details
| Field | Type | Required | Notes |
|---|---|---|---|
vacancySource | enum | Valid ids: inbound (Inbound), referral (Referral), jobBoard (Job Board), directApproach (Direct Approach), website (Website), other (Other). | |
exclusive | enum | Valid ids: no (No), yes (Yes). | |
retained | enum | Valid ids: no (No), yes (Yes). | |
approvalStatus | enum | Valid ids: new (New), pendingApproval (Pending Approval), approved (Approved), rejected (Rejected). | |
visibleOnPortal | boolean | Visible on portal. | |
speculative | boolean | Speculative. |
Job description
| Field | Type | Required | Notes |
|---|---|---|---|
jobSummary | text (multi-line) | External-facing job description for job boards and portals | |
internalDescription | text (multi-line) | Internal notes on the role, not visible externally | |
emailDescription | text (multi-line) | Short description for outreach emails and spec sends |
Location
| Field | Type | Required | Notes |
|---|---|---|---|
locationDescription | text (multi-line) | Free text location summary, e.g. 'London with 2 days remote' | |
addressStreet1 | text | Street 1. | |
addressStreet2 | text | Street 2. | |
addressCity | text | City. | |
addressPostcode | text | Postcode. | |
addressCountry | reference → COUNTRY | Country. |
Benefits
| Field | Type | Required | Notes |
|---|---|---|---|
companyCar | boolean | Company car. | |
medicalInsurance | boolean | Medical insurance. | |
pensionScheme | boolean | Pension scheme. | |
training | boolean | Training. | |
benefitsNotes | text (multi-line) | Benefits notes. |
Permanent terms
| Field | Type | Required | Notes |
|---|---|---|---|
salary | number | Salary. | |
salaryTo | number | Upper end of salary range | |
packageValue | number | Package value. | |
feeBasedOn | enum | Valid ids: baseSalary (Base Salary), totalPackage (Total Package), fixed (Fixed), staged (Staged). | |
feePercent | number | Fee %. | |
feeAmount | number | Fee amount. | |
salesValue | number | Sales value. |
Contract terms
| Field | Type | Required | Notes |
|---|---|---|---|
contractRate | number | Contract rate. | |
contractRatePer | enum | Valid ids: hour (Hour), day (Day), week (Week), month (Month), year (Year). | |
contractDuration | number | Duration (weeks). | |
chargeRate | number | Charge rate. | |
payRate | number | Pay rate. | |
marginPercent | number | Margin %. | |
marginValue | number | Margin value. | |
grossProfit | number | Gross profit. |
Working pattern
| Field | Type | Required | Notes |
|---|---|---|---|
daysPerWeek | number | Days per week. | |
hoursPerWeek | number | Hours per week. | |
holidayDays | number | Holiday days. | |
timesheetInterval | enum | Valid ids: daily (Daily), weekly (Weekly), twoWeeks (2 Weeks), monthly (Monthly), fourFourFive (4-4-5). |
Bonus & Currency
| Field | Type | Required | Notes |
|---|---|---|---|
bonus | number | Bonus. | |
bonusFrequency | enum | Valid ids: monthly (Monthly), quarterly (Quarterly), annually (Annually), biAnnually (Bi-Annually). | |
bonusDescription | text | Bonus description. | |
currency | reference → CURRENCY | Currency. |
Attachments and additional panels
- Activity timeline panel attached.
- File attachment on
vacancyDocuments. Allowed types: *. - Additional panels:
map.
Relationships
- Lookups:
clientpoints at aCLIENTrecord;hiringManagerpoints at aPPLrecord;endClientpoints at aCLIENTrecord;disciplinepoints at aDISCIPLINErecord;countrypoints at aCOUNTRYrecord;addressCountrypoints at aCOUNTRYrecord;currencypoints at aCURRENCYrecord. - Related lists:
CANDIDATEvia link;INTERVIEWvia comboKey (format:SUB|VAC);PLACEvia link.
Creating a Vacancy via the API
POST /v1/objects
Authorization: Bearer <your-pat>
Content-Type: application/json
{
"entity": "VAC",
"level": 11000,
"comboKey": "SUB:<your-sub-id>|ENT:",
"name": "Example name",
"status": "draft",
"positionType": "permanent",
"jobTitle": "Example jobTitle"
}
Listing Vacancies
GET /v1/entities/VAC/SUB