Recruitment Module — User Guide

Recruitment Module — User Guide

Requisitions, candidates, interviews, and offers.

ProductVertex ERP
ModuleRecruitment (`modules/recruitment`)
AudienceRecruiters, hiring managers / approvers, and HR staff who complete hire handoff
FormatHTML + Mermaid diagrams

1. Overview

The Recruitment module runs the hiring pipeline from a headcount request through to creating an employee in HR.

Area What it covers
Demand Job requisitions (request, submit, approve)
Supply Job postings (draft, publish, close)
Talent Candidates (person profile, qualifications, experience, attachments)
Pipeline Applications, screenings, interviews, decisions
Offer Job offers (send, accept/reject)
Hire Handoff to HR (employee, assignment, documents, onboarding checklist)

There is no separate workflow engine. Progress is driven by status enums and dedicated actions (Submit, Publish, Commit, Send, Accept, Handoff). Prefer those actions over editing status fields by hand.

flowchart LR subgraph Rec["Recruitment"] R[Requisition] P[Posting] C[Candidate] A[Application] S[Screening] I[Interview] D[Decision] O[Offer] end HR[HR Module] R --> P C --> A P --> A A --> S --> I --> D --> O O -->|Handoff| HR

Shared with HR: departments, positions, employment types, academic degrees, specializations, institutions, marital statuses, nationalities, religions, person identity, and documents.


2. Getting started

2.1 Prerequisites in HR

Before recruiting:

  1. Departments, positions, and employment types exist.
  2. Academic degrees / specializations / institutions exist (for candidate and requisition qualifications).
  3. Person-related lookups (nationality, marital status, religion) exist if you capture full candidate identity.

2.2 Recommended operating order

flowchart TD A[Ensure HR master data] --> B[Create and approve Requisition] B --> C[Create and publish Posting] C --> D[Register Candidate] D --> E[Create Application] E --> F[Commit Screening] F --> G[Schedule and complete Interviews] G --> H[Record Decision] H --> I[Create, send, accept Offer] I --> J[Handoff to HR]

2.3 Main navigation

Menu Path Purpose
Dashboard /recruitment/dashboard Pipeline attention metrics
Job requisitions /recruitment/requisitions Headcount requests
Job postings /recruitment/postings Vacancy announcements
Candidates /recruitment/candidates Talent pool
Applications /recruitment/applications Candidate applied to posting
Screenings /recruitment/screenings Initial review
Interviews /recruitment/interviews Interview rounds
Decisions /recruitment/decisions Hire / reject / hold
Job offers /recruitment/offers Offers and HR handoff

3. End-to-end hiring pipeline

Step Entity Typical statuses
1 Job requisition Draft → Submitted → Approved (or Rejected / Cancelled)
2 Job posting Draft → Published → Closed
3 Candidate Profile (no pipeline status; hired flag after handoff)
4 Application Applied → Screening → Interview → Accepted / Rejected / OnHold / Withdrawn
5 Screening Uncommitted → Committed (Passed / Rejected / OnHold)
6 Interview Scheduled → Completed (or Cancelled / NoShow / Rescheduled); multiple rounds
7 Decision Accepted / Rejected / OnHold
8 Job offer Draft → Sent → Accepted or Rejected
9 Handoff Creates HR employee; locks recruitment records

Important: Accepting an offer is not the same as hiring. Hiring completes only when you run Handoff to HR.


4. Job requisitions

A job requisition requests headcount for a department/position before a posting can be published.

4.1 Key fields

Field Meaning
Requisition number Auto-generated (1, 2, …)
Department / Position / Employment type From HR master data
Requested count Number of hires needed (default 1)
Minimum experience years Optional requirement
Requested by / request date / target hire date Request metadata
Justification / notes Free text
Qualifications (child rows) Degree + specialization; mandatory flag

4.2 Statuses

Status Meaning
Draft Editable / deletable
Submitted Waiting for approval
Approved Can be used to publish a posting
Rejected Not approved (rejection reason)
Cancelled Cancelled

4.3 Flow

flowchart TD A[Create Draft] --> B[Add qualifications optional] B --> C[Submit] C --> D{Approve} D -->|Yes| E[Approved] D -->|No| F[Rejected] E --> G[Create Job Posting] A --> H[Cancel] C --> H E --> H

4.4 Rules

  • Edit and delete only while Draft (update resets to Draft).
  • Submit: Draft → Submitted.
  • Approve: Submitted → Approved or Rejected.
  • List filter Without posting helps find approved requisitions that still need a posting.

5. Job postings

A job posting is the vacancy announcement linked to a requisition.

5.1 Key fields

Title, description, requirements, open/close dates, linked requisition, published at / by, status.

5.2 Statuses

Status Meaning
Draft Editable / deletable; not yet accepting applications
Published Open for applications
Closed No longer accepting applications

5.3 Flow

flowchart TD A[Create Draft posting linked to requisition] --> B{Requisition Approved} B -->|No| C[Cannot publish] B -->|Yes| D[Publish] D --> E[Published - applications allowed] E --> F[Close] F --> G[Closed]

5.4 Rules

  • Edit/delete only in Draft.
  • Publish requires linked requisition Approved; sets published timestamp; open date defaults to now if empty.
  • Close sets close date if empty.
  • Applications can be created only against Published postings.

6. Candidates

A candidate is a person in the talent pool. Creating a candidate also creates (or updates) an HR Person (civil identity), typically keyed by national number.

6.1 Profile data

Group Examples
Person Name, gender, birth data, national number, marital status, nationality, religion, address
Recruitment Source, current job/employer, experience years, expected salary, available from, notes
Flags Blacklisted (+ reason); Hired after handoff (HiredEmployeeId)
Children Qualifications (degree, specialization, institution, graduation, grade); Experiences (employer, title, dates, current flag)
Documents Attachments owned as Recruitment candidate (CV, certificates)

6.2 Candidate sources

Website, Referral, Walk-in, Agency, University, Social media, Other.

6.3 Rules

  • No pipeline status enum on the candidate itself.
  • After handoff, the candidate is hired and becomes read-only (profile, qualifications, experiences locked).
  • Blacklist can be cleared when handed off as hired.

7. Applications

An application links one candidate to one job posting.

7.1 Key fields

Candidate, posting, applied at, status, cover letter, rejection / on-hold reasons, notes.

7.2 Statuses

Status Typical cause
Applied Just created
Screening Screening committed as Passed (or rescreen path)
Interview Interview created
Accepted Decision Accepted and/or offer Accepted
Rejected Screening or decision rejected
OnHold Screening or decision on hold
Withdrawn Offer rejected (candidate declined offer)

7.3 Create rules

  • Posting must be Published.
  • Candidate must not already be hired.
  • Unique pair: one application per candidate per posting.
  • Status forced to Applied.
  • System auto-creates an uncommitted screening row.
flowchart TD A[Create Application on Published posting] --> B[Status Applied] B --> C[Auto-create uncommitted Screening] C --> D[Continue to Screening]

List helpers in the UI/API commonly include: eligible for interview, ready for decision, eligible for offer. After handoff, applications are locked.


8. Screenings

Each application has one screening record (created automatically). Users do not create screenings manually (create API is disabled).

8.1 Fields

Result, score, notes, screened by (person + name from current user), screened at, committed flag. DTO may show candidate/posting and whether an interview already exists.

8.2 Results

Result Application becomes
Passed Screening
Rejected Rejected
OnHold OnHold

Uncommitted vs done is controlled by IsCommitted, not a separate status enum.

8.3 Flow

flowchart TD A[Uncommitted screening] --> B[Update draft result/score/notes] B --> C[Commit] C --> D{Result} D -->|Passed| E[Application Screening] D -->|Rejected| F[Application Rejected] D -->|OnHold| G[Application OnHold] G --> H[Rescreen] H --> I[Clear commit - back to Screening] I --> B

8.4 Rules

  • Update only while not committed.
  • Commit stamps screener from the current user’s linked Person and advances the application.
  • Rescreen only from committed OnHold.
  • One screening per application.

9. Interviews

Interviews are rounds (1, 2, …) on an application after a Passed screening.

9.1 Types

Phone, Technical, HR, Final, Panel.

9.2 Interview statuses

Scheduled, Completed, Cancelled, NoShow, Rescheduled.

9.3 Panel and evaluations

  • Panel members: persons on the interview; optional lead.
  • Evaluations: evaluator (must be a panel member), score, recommendation, notes, evaluated at.

Recommendations: Strong hire, Hire, Hold, No hire, Strong no hire.

9.4 Eligibility and completion rules

Create interview when:

  • Screening committed as Passed.
  • No decision yet, or latest decision is OnHold.
  • Offer not handed off.
  • No other interview still Scheduled.

Creating an interview sets the application to Interview.

Complete interview:

Interview type Requirements
Panel At least 2 panel members and at least 1 evaluation
Other types Exactly 1 interviewer and exactly 1 evaluation
flowchart TD A[Passed screening] --> B[Create Interview Round N - Scheduled] B --> C[Add panel members] C --> D[Add evaluations] D --> E[Mark Completed] E --> F{More rounds} F -->|Yes| B F -->|No more scheduled rounds| G[Ready for Decision]

Application summary can show rounds, average scores, dominant recommendation, readiness for decision, and next round number.


10. Decisions

A decision records the hiring outcome for an application after interviews.

10.1 Types

Decision Application status
Accepted Accepted
Rejected Rejected
OnHold OnHold

10.2 Ready for decision

Typically:

  • At least one Completed interview.
  • Zero interviews still Scheduled.
  • Not handed off.
  • No prior decision, or latest decision is OnHold.

10.3 Rules

  • Create requires readiness.
  • Create/update/delete locked after handoff.
  • Eligible for offer usually means latest decision is Accepted and no offer exists yet.
flowchart TD A[Interviews completed] --> B{Ready for decision} B -->|No| C[Finish or cancel scheduled interviews] B -->|Yes| D[Create Decision] D --> E{Type} E -->|Accepted| F[Create Job Offer] E -->|Rejected| G[Pipeline ends] E -->|OnHold| H[May schedule more interviews later]

11. Job offers and HR handoff

11.1 Offer fields

Offer number (auto OFF-{n}), offered salary, employment type, position, department, proposed start date, expiry date, status, sent/responded timestamps, rejection reason, notes, handed-off employee id.

11.2 Offer statuses

Status Meaning
Draft Editable; not yet sent
Sent Awaiting candidate response
Accepted Candidate accepted
Rejected Candidate rejected (application becomes Withdrawn)
Expired / Cancelled Present in the model; prefer dedicated Send/Accept/Reject/Handoff actions for the main path

11.3 Offer flow

flowchart TD A[Decision Accepted] --> B[Create Offer Draft] B --> C[Send] C --> D[Sent] D --> E{Candidate response} E -->|Accept| F[Offer Accepted] E -->|Reject| G[Offer Rejected / Application Withdrawn] F --> H[Handoff to HR] H --> I[Employee created / locked]

11.4 What Handoff creates in HR

When offer status is Accepted, Handoff:

  1. Finds or creates an Employee for the candidate’s Person (active; hire date from proposed start date or now).
  2. Copies candidate qualifications that have institution + graduation date into HR qualifications (skips duplicates).
  3. Creates an open assignment if none exists (position, department, employment type from offer; contract number = offer number).
  4. Sets handed-off employee id on the offer; marks candidate hired; clears blacklist if set.
  5. Moves recruitment documents (candidate + that candidate’s application docs) to the Employee.
  6. Calls HR hire lifecycle → typically spawns an Onboarding checklist.

Handoff is idempotent if already done (re-syncs candidate/docs). After handoff, recruitment pipeline records for that hire are locked.

Remember: Offer Accept only updates statuses. Handoff is the hire into HR.


12. Dashboard

The recruitment dashboard is an operational board of counts (frontend aggregation), typically grouped as:

Needs attention

  • Overdue scheduled interviews
  • Interviews due today
  • Applications ready for decision

By stage

Stage Examples
Intake Submitted requisitions; approved without posting; draft postings
Screening Uncommitted screenings; committed OnHold
Interviews Passed screening without interview
Decisions and offers Eligible for offer; draft offers; sent offers; accepted but not handed off

Use the dashboard to prioritize work without opening every list screen.


13. Permissions summary

Permission group: Recruitment.

Resource Typical actions
Job requisitions Create, Update, Delete, Submit, Approve
Job postings Create, Update, Delete, Publish, Close
Candidates Create, Update, Delete
Applications Create, Update, Delete
Screenings Create, Update, Delete (create unused; commit via update/commit APIs)
Interviews Create, Update, Delete
Decisions Create, Update, Delete
Job offers Create, Update, Delete, Send, Respond, Handoff

Grant Approve to hiring managers/HR approvers, Publish/Close to recruiters who own vacancies, and Handoff to staff who may create employees in HR.


14. Integration with HR

flowchart TB subgraph Upstream["HR master data"] Dept[Departments] Pos[Positions] EmpT[Employment types] Look[Degrees / specs / person lookups] end subgraph Rec["Recruitment"] Cand[Candidate / Person] Off[Accepted Offer] end subgraph Downstream["HR after handoff"] Emp[Employee] Asg[Assignment] Qual[Qualifications] Doc[Documents] Onb[Onboarding checklist] end Upstream --> Rec Cand --> Off Off -->|Handoff| Emp Off --> Asg Off --> Qual Off --> Doc Emp --> Onb
Touchpoint Behavior
Person Candidate create/update maintains HR Person (national number uniqueness)
Lookups Requisitions and offers reference HR org and employment master data
Documents Stored as recruitment owner types; moved to Employee on handoff
Hire Handoff creates employee/assignment/quals and triggers onboarding

Recruitment does not calculate payroll or attendance; after handoff, continue in the HR (and related) modules.


Appendix A — Quick procedures

A.1 Open a vacancy

  1. Create requisition (Draft) → add qualifications → Submit.
  2. Approver Approves.
  3. Create posting linked to that requisition → Publish.

A.2 Process a candidate through hire

  1. Create candidate (+ attachments/qualifications/experience).
  2. Create application on published posting.
  3. Commit screening as Passed (or Rejected / OnHold).
  4. Create interview round(s); add panel and evaluations; complete.
  5. Create Accepted decision when ready.
  6. Create offer → Send → Accept.
  7. Handoff to HR → complete onboarding in HR.

A.3 Decline / stop paths

Point Outcome
Requisition reject / cancel No publishable vacancy from that request
Screening Rejected Application Rejected
Decision Rejected Application Rejected
Offer Rejected Offer Rejected; application Withdrawn

Appendix B — Document control

Item Value
Title Recruitment Module User Guide
Source of truth modules/recruitment and frontend/src/app/modules/recruitment
Format Markdown + Mermaid (PDF edition embeds rendered figures)
Screenshots Not included (by design)

This guide describes functional capabilities of the Recruitment module as implemented in the Vertex ERP codebase. UI labels may appear in English or Arabic depending on language settings.