Jobs

Manage job postings, job requests, and track applicants.

Get All Jobs

GET/api/recruitment/jobs

Get all jobs with optional filters.

{ "jobs": [ { "id": "...", "title": "Software Engineer", "department": "Engineering", "location": "Remote", "employmentType": "full-time", "salaryRangeMin": 80000, "salaryRangeMax": 120000, "status": "open", "openings": 3, "createdBy": { "id": "...", "name": "HR" } } ] }

Create Job

POST/api/recruitment/jobs

Create a new job posting.

FieldTypeRequiredDescription
titlestringRequiredJob title
departmentstringOptionalDepartment
locationstringOptionalJob location
employmentTypestringOptionalType (full-time/part-time/contract/internship)
salaryRangeMinnumberOptionalMinimum salary
salaryRangeMaxnumberOptionalMaximum salary
salaryTypestringOptionalSalary type (per-annum/per-month/per-day/per-hour)
currencystringOptionalCurrency code
openingsnumberOptionalNumber of openings
descriptionstringOptionalJob description
requiredSkillsstring[]OptionalRequired skills
autoCloseDatestringOptionalAuto-close date (ISO)
{ "job": { "id": "...", "title": "Software Engineer", "status": "draft" } }

Get Job

GET/api/recruitment/jobs/[id]

Get a specific job posting.

{ "job": { ... job object } }

Update Job

PATCH/api/recruitment/jobs/[id]

Update a job posting.

FieldTypeRequiredDescription
titlestringOptionalJob title
statusstringOptionalStatus (draft/open/closed)
departmentstringOptionalDepartment
locationstringOptionalLocation
{ "job": { ... updated job } }

Delete Job

DELETE/api/recruitment/jobs/[id]

Delete a job posting.

{ "success": true }

Get Job Candidates

GET/api/recruitment/jobs/[id]/candidates

Get all candidates for a specific job.

{ "candidates": [ { "id": "...", "firstName": "John", "lastName": "Doe", "email": "john@example.com", "stage": "screening", "source": "LinkedIn" } ] }

Request Job

POST/api/recruitment/jobs/request

Request HR to create a job posting.

FieldTypeRequiredDescription
titlestringRequiredJob title
departmentstringOptionalDepartment
locationstringOptionalLocation
{ "request": { "id": "...", "status": "requested" } }

Get Job Requests

GET/api/recruitment/jobs/request

Get all job requests.

{ "requests": [...] }

Get My Tasks

GET/api/recruitment/jobs/my-tasks

Get jobs assigned to current user.

{ "jobs": [...] }

Get My Requests

GET/api/recruitment/jobs/my-requests

Get job requests created by current user.

{ "requests": [...] }

Get All Requests

GET/api/recruitment/jobs/all-requests

Get all job requests (HR only).

{ "requests": [...] }