# HR Recruitment Final Role-Based QA

Date: 2026-09-01

## Scope

Validate the production-demo recruitment chain:

- Job opening
- Candidate pipeline
- Interview scheduling
- Interview panels and assignments
- Scorecards and evaluations
- Candidate communications
- Applicant consent and data requests
- Medical assessment, background verification, and reference checks
- Recruitment analytics and decision readiness
- Offer approval, sending, acceptance, and conversion to employee

## Personas

| Persona | Expected Access |
| --- | --- |
| Tenant Owner / HR Manager | Full recruitment workflow, offer approval, employee conversion |
| Hiring Manager | Jobs, candidates, interviews, panels, evaluations, read analytics |
| Interviewer | Assigned interviews and evaluation submission |
| HR Officer | Candidate records, communications, consent, checks, offer administration |
| Read-only Viewer | View records only; no create, update, delete, approve, convert |

## End-to-End Flow

1. Create a job opening in `/hr/recruitment/jobs`.
2. Add a candidate in `/hr/recruitment/pipeline`.
3. Move candidate stage from `applied` to `screening`, then `interview`, then `offer`.
4. Schedule an interview in `/hr/recruitment/interviews`.
5. Create or select an interview panel in `/hr/recruitment/interviews/panels`.
6. Assign the candidate/interview to the panel in `/hr/recruitment/interviews/assignments`.
7. Create a scorecard template in `/hr/recruitment/interviews/scorecards`.
8. Submit an interview evaluation in `/hr/recruitment/interviews/evaluations`.
9. Create candidate communication in `/hr/recruitment/candidates/communications`.
10. Create and grant applicant consent in `/hr/recruitment/candidates/consent`.
11. Create medical, background, and reference checks from the consented candidate.
12. Confirm `/hr/recruitment/analytics/funnel` shows the candidate as decision-ready.
13. Create an offer in `/hr/recruitment/offers`.
14. Approve, send, accept, and convert the offer to an employee.
15. Confirm the employee appears in `/hr/employees`.

## Readiness Rules

A candidate is decision-ready only when all are true:

- At least one submitted or reviewed interview evaluation exists.
- At least one granted applicant consent exists.
- Medical assessment is passed or fit.
- Background verification is clear.
- Reference check is responded/completed and recommended.

Offer approval must be blocked when readiness is incomplete.

## Direct API Permission Checks

Confirm denied access for missing permissions:

- `POST /api/v1/hr/recruitment/candidates`
- `POST /api/v1/hr/recruitment/candidates/{id}/stage`
- `POST /api/v1/hr/recruitment/interview-evaluations`
- `POST /api/v1/hr/recruitment/offers/{id}/approve`
- `POST /api/v1/hr/recruitment/offers/{id}/convert`
- `GET /api/v1/hr/recruitment/analytics`

## Pass Criteria

- No mock rows appear in the tested recruitment pages.
- No toast-only success remains for tested actions.
- UUIDs are not shown in user-facing drawers/tables.
- Readiness changes from blocked to ready only after required evidence exists.
- Offer approval is blocked for unready candidates in both UI and direct API calls.
- Accepted offer conversion creates a real employee master record.
