Skip to main content

Position Allocation API

Position Allocation APIs manage recruiter-to-role mappings and enforce role-based access control (RBAC). These APIs directly control recruiter job visibility across the system.

Endpoints Overview

MethodEndpointDescriptionPermission
GET/api/position-allocationsFetch all allocationsposition:read
GET/api/position-allocations/:idFetch allocation by IDposition:read
GET/api/position-allocations/my-allocationsRecruiter’s allocationsposition:read
POST/api/position-allocationsCreate allocationposition:create
PUT/api/position-allocations/:idUpdate allocationposition:update
DELETE/api/position-allocations/:idDelete allocationposition:delete

Create Position Allocation

Create a new recruiter → category → sub-category allocation. Access: position:create
router.post(
  '/',
  protect,
  requirePermission('position', 'create'),
  controller.create
);

Get All Position Allocations

Fetch all position allocations (Admin / Manager view). Access: position:read
router.get(
  '/',
  protect,
  requirePermission('position', 'read'),
  controller.getAll
);

Get Position Allocation by ID

Fetch details of a single position allocation. Access: position:read
router.get(
  '/:id',
  protect,
  requirePermission('position', 'read'),
  controller.getById
);

Get My Allocations (Recruiter)

Fetch allocations for the logged-in recruiter only. Access: position:read
router.get(
  '/my-allocations',
  protect,
  requirePermission('position', 'read'),
  controller.getMyAllocations
);

Update Position Allocation

Update recruiter, category, or sub-category mapping. Access: position:update
router.put(
  '/:id',
  protect,
  requirePermission('position', 'update'),
  controller.update
);

Delete Position Allocation

Soft delete a position allocation. Access: position:delete
router.delete(
  '/:id',
  protect,
  requirePermission('position', 'delete'),
  controller.delete
);

Summary

Position Allocation APIs provide secure, RBAC-controlled management of recruiter role ownership, ensuring accurate job visibility and clean access control.