3. Departments, Job Positions and Organisation Structure

Two reference structures give the employee record its organisational context: departments and job positions.

Departments (DepartmentsPage) are arranged hierarchically and can nominate a head employee, so the structure reflects real reporting lines rather than a flat list of labels. Because departments nest, an organisation can model divisions containing sub-teams and still roll reporting up a single tree.

Job Positions (JobPositionsPage) define the roles employees occupy. A position carries a salary range and a grade level, which ties the HR catalogue to the compensation bands referenced on the employee record. The grade level stored on the employee is the same grade concept used by positions, keeping job architecture and individual records consistent.

These structures interact with the lifecycle and payroll layers in concrete ways. The reports-to field on an employee links individuals into the management chain that approval workflows can traverse — for example, routing a leave request or an expense claim to a manager or department head. The job position supplies the expected salary context, while the department supplies the grouping used by employee statistics. Together they turn a collection of individual records into a navigable organisation chart.

Both departments and job positions are full CRUD resources exposed under the HR API surface, and like every HR entity they are scoped to the tenant organisation. Keeping them as first-class, editable reference data means an organisation can restructure — splitting a department or redefining a grade — without rewriting individual employee records one by one.