Web Components
This section details the primary custom components architecture within the apps/web module. We utilize a modular component design aimed at high performance and recruiter accessibility.
Job Management Components
JobDialog
The primary interface for standardizing data entry for new vacancies.
- Dual Mode Support: Intelligently toggles between "Create" and "Edit" modes based on the presence of a
jobprop. - Validation: Enforces strict character limits and formats via
react-hook-formandzodbefore committing to the API. - Array Parsing: Automatically handles the conversion of multi-line strings into strict Array formats for "Requirements" and "Skills" as required by the backend.
JobDetailsDialog
A read-only high-fidelity view of a job's metadata.
- Rich Visualization: Displays full descriptions, requirement lists with checkmark iconography, and tech stack badges.
- Metadata Context: Exposes internal system data such as posting dates and vacancy statuses.
- UX Integration: Triggers both from the "Actions" menu and directly from clicking Job Titles in any list view.
JobList
An exhaustive data table for managing active pipelines.
- Contextual Actions: Integrated dropdown for viewing, editing, or deleting records.
- Dynamic Feedback: Implements
IconLoader2animations during fetch states and "Empty State" UI when no vacancies are found. - Status Badging: Uses semantic color coding to distinguish "Open" vs "Closed" vacancies.
Applicant & Screening Components
TalentDetailsDialog
An advanced "Drawer-style" interface that visualizes parsed resume data, AI matches, and historical screening metrics for a single applicant.
Leaderboard
The core visualization for AI results. Aggregates "Match Score", "Rank", and "Reasoning" into a high-performance sortable table.
Future Areas to Document:
- Dashboard Layouts
- Reusable Forms
- Shared UI components originating from
@repo/ui
(Draft: Documentation will be updated as we make changes to apps/web)