DemandFlow Support Centre

VAC: Vacancy

ReferenceEntity Reference16/04/2026Updated 16/04/2026
A vacancy record representing an open job position at a client organisation in the recruitment workflow.

VAC: Vacancy

A vacancy record representing an open job position at a client organisation in the recruitment workflow.

Default definition. This article describes the default 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

PropertyValue
Entity codeVAC
Display nameVacancy
PluralVacancies
Level11000

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

FieldTypeRequiredNotes
nametextYesName.
reftextVacancy reference. Read only.
statusenumYesValid 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).
positionTypeenumYesValid ids: permanent (Permanent), contract (Contract), temporary (Temporary).
priorityenumValid ids: high (High), medium (Medium), low (Low), onhold (On Hold).
jobTitletextYesJob title.
numberOfPositionsnumberNumber of positions.

Client

FieldTypeRequiredNotes
clientreference → CLIENTYesClient.
hiringManagerreference → PPLHiring manager.
clientReftextClient reference.
endClientreference → CLIENTThe end client when supplying via an agency or intermediary

Classification

FieldTypeRequiredNotes
disciplinereference → DISCIPLINEDiscipline.
countryreference → COUNTRYCountry.

Key dates

FieldTypeRequiredNotes
startDatedateYesStart date.
closingDatedateClosing date.
reviewDatedateReview date.

Ownership

FieldTypeRequiredNotes
consultantreference → userConsultant.
deliveryOwnerreference → userDelivery owner.
leadFromreference → userThe consultant who sourced this vacancy

Recruitment details

FieldTypeRequiredNotes
vacancySourceenumValid ids: inbound (Inbound), referral (Referral), jobBoard (Job Board), directApproach (Direct Approach), website (Website), other (Other).
exclusiveenumValid ids: no (No), yes (Yes).
retainedenumValid ids: no (No), yes (Yes).
approvalStatusenumValid ids: new (New), pendingApproval (Pending Approval), approved (Approved), rejected (Rejected).
visibleOnPortalbooleanVisible on portal.
speculativebooleanSpeculative.

Job description

FieldTypeRequiredNotes
jobSummarytext (multi-line)External-facing job description for job boards and portals
internalDescriptiontext (multi-line)Internal notes on the role, not visible externally
emailDescriptiontext (multi-line)Short description for outreach emails and spec sends

Location

FieldTypeRequiredNotes
locationDescriptiontext (multi-line)Free text location summary, e.g. 'London with 2 days remote'
addressStreet1textStreet 1.
addressStreet2textStreet 2.
addressCitytextCity.
addressPostcodetextPostcode.
addressCountryreference → COUNTRYCountry.

Benefits

FieldTypeRequiredNotes
companyCarbooleanCompany car.
medicalInsurancebooleanMedical insurance.
pensionSchemebooleanPension scheme.
trainingbooleanTraining.
benefitsNotestext (multi-line)Benefits notes.

Permanent terms

FieldTypeRequiredNotes
salarynumberSalary.
salaryTonumberUpper end of salary range
packageValuenumberPackage value.
feeBasedOnenumValid ids: baseSalary (Base Salary), totalPackage (Total Package), fixed (Fixed), staged (Staged).
feePercentnumberFee %.
feeAmountnumberFee amount.
salesValuenumberSales value.

Contract terms

FieldTypeRequiredNotes
contractRatenumberContract rate.
contractRatePerenumValid ids: hour (Hour), day (Day), week (Week), month (Month), year (Year).
contractDurationnumberDuration (weeks).
chargeRatenumberCharge rate.
payRatenumberPay rate.
marginPercentnumberMargin %.
marginValuenumberMargin value.
grossProfitnumberGross profit.

Working pattern

FieldTypeRequiredNotes
daysPerWeeknumberDays per week.
hoursPerWeeknumberHours per week.
holidayDaysnumberHoliday days.
timesheetIntervalenumValid ids: daily (Daily), weekly (Weekly), twoWeeks (2 Weeks), monthly (Monthly), fourFourFive (4-4-5).

Bonus & Currency

FieldTypeRequiredNotes
bonusnumberBonus.
bonusFrequencyenumValid ids: monthly (Monthly), quarterly (Quarterly), annually (Annually), biAnnually (Bi-Annually).
bonusDescriptiontextBonus description.
currencyreference → CURRENCYCurrency.

Attachments and additional panels

  • Activity timeline panel attached.
  • File attachment on vacancyDocuments. Allowed types: *.
  • Additional panels: map.

Relationships

  • Lookups: client points at a CLIENT record; hiringManager points at a PPL record; endClient points at a CLIENT record; discipline points at a DISCIPLINE record; country points at a COUNTRY record; addressCountry points at a COUNTRY record; currency points at a CURRENCY record.
  • Related lists: CANDIDATE via link; INTERVIEW via comboKey (format: SUB|VAC); PLACE via 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

See also

vacvacancyvacancies

Was this article helpful?

← Back to Knowledge Base