Recruitment
Philippine statutory obligations: contribution tables, withholding tax, and the BIR forms built from them.
| Controllers | 8 |
| Endpoints | 51 |
| Tables | 15 |
| Screens | 7 |
| API reference | /api/ — group recruitment |
| OpenAPI spec | /openapi/recruitment.json |
URL prefixes
Endpoints belong to this module by URL, exactly as the OpenAPI group defines it in backend/src/main/java/com/motorph/payroll/config/OpenApiConfiguration.java.
/api/job-requisitions/**/api/job-openings/**/api/job-applicants/**/api/job-offers/**/api/interview-schedules/**/api/interview-feedback/**/api/staffing-plans/**/api/public/job-openings/**/api/public/job-applications/**
Controllers
| Controller | Base path | Endpoints | GET | POST | PUT | PATCH | DELETE |
|---|---|---|---|---|---|---|---|
| InterviewFeedbackController | /api/interview-feedback | 2 | — | — | 1 | — | 1 |
| InterviewScheduleController | /api/interview-schedules | 8 | 3 | 2 | 1 | 1 | 1 |
| JobApplicantController | /api/job-applicants | 11 | 5 | 2 | 1 | 1 | 2 |
| JobOfferController | /api/job-offers | 6 | 2 | 1 | — | 2 | 1 |
| JobOpeningController | /api/job-openings | 6 | 2 | 1 | 1 | 1 | 1 |
| JobRequisitionController | /api/job-requisitions | 8 | 2 | 1 | 1 | 3 | 1 |
| PublicJobController | /api/public | 3 | 2 | 1 | — | — | — |
| StaffingPlanController | /api/staffing-plans | 7 | 2 | 2 | 1 | — | 2 |
Across the module: 18 GET, 10 POST, 6 PUT, 8 PATCH, 9 DELETE.
Tables
Everything this module's controllers can reach through a repository, including through a shared service — so this is the upper bound of what the module touches, not the set of tables it owns. A table appearing under two modules means two modules can read it.
| Entity | Table | Columns | Tenant-scoped |
|---|---|---|---|
| Department | department | 4 | Yes |
| Employee | employee | 24 | Yes |
| InterviewFeedback | interview_feedback | 6 | Yes |
| InterviewSchedule | interview_schedule | 6 | Yes |
| JobApplicant | job_applicant | 12 | Yes |
| JobApplicantResume | job_applicant_resume | 6 | Yes |
| JobOffer | job_offer | 24 | Yes |
| JobOpening | job_opening | 11 | Yes |
| JobRequisition | job_requisition | 7 | Yes |
| Notification | notifications | 5 | Yes |
| Position | position | 4 | Yes |
| Role | role | 6 | — |
| StaffingPlan | staffing_plan | 6 | Yes |
| StaffingPlanItem | staffing_plan_item | 4 | Yes |
| User | users | 11 | — |
Screens
Frontend routes gated by a permission this module's endpoints also require — the link between a page and its API is the permission string, not the URL.
| Route | Component | Requires |
|---|---|---|
/interview-schedules | InterviewSchedules | hr.recruitment.view |
/job-applicants | JobApplicants | hr.recruitment.view |
/job-offers | JobOffers | hr.recruitment.view |
/job-openings | JobOpenings | hr.recruitment.view |
/job-requisitions | JobRequisitions | hr.recruitment.view |
/recruitment-analytics | RecruitmentAnalytics | hr.recruitment.view |
/staffing-plans | StaffingPlans | hr.recruitment.staffing.manage |
Unauthenticated endpoints
3 endpoint(s) in this module are permitted without a token by PUBLIC_ENDPOINTS in backend/src/main/java/com/motorph/payroll/config/SecurityConfiguration.java.
| Method | Path |
|---|---|
GET | /api/public/job-openings |
GET | /api/public/job-openings/{id} |
POST | /api/public/job-applications |
This page is rebuilt from the source on every docs build by docs-site/scripts/gen-code-wiki.mjs. Editing it has no effect — change the code, or, if what you want to say is prose, write it in docs/.