Project Context — Cruits¶
Source: epics/SUMMARY.md (product overview + full epics with user stories, compiled from Confluence) Copied: 2026-04-13 Use this file as the product reference for all subsequent market analysis stages.
1. Product Overview¶
Mission¶
Digitize the temp staffing process end-to-end. Replace manual workflows with a platform that handles candidate onboarding, job matching, placement confirmation, and workforce management — for flexworkers, client companies, and the staffing agency.
Vision¶
A world where the staffing agency (Cruits) no longer handles day-to-day operations manually. Clients control candidate selection and scheduling directly. Flexworkers and employers communicate without the agency as a middleman. Cruits focuses on technology and oversight.
USPs¶
- Direct client–worker collaboration — clients and flexworkers interact directly; the agency automates the back office
- Predictive WFM — demand forecasting, gap identification, auto-generated vacancy drafts
- End-to-end digitization — onboarding, contract signing (MySolution My Sign), timesheets, invoicing — no paper
- Smart matching — formula- and weight-based matching on skills, availability, travel distance, and ratings; two-way reviews
- Data dashboards — KPIs on fill rate, cost per shift, forecast accuracy, worker satisfaction
- Dutch compliance via MySolution — CAO-aware payroll, GDPR-safe documents, automated tax handling
User Roles¶
| Role | Platform | Description |
|---|---|---|
| Flexworker (candidate) | iOS app, Android app, PWA (web) | Temporary worker looking for shifts or jobs |
| Manager (client) | Web dashboard | Client company representative who hires flexworkers |
| Admin (Cruits agency) | Backend / Admin panel | Staffing agency managing the platform |
Platform split: Managers and admins use a desktop web portal (browser, no mobile requirement). Flexworkers use a mobile-first app — delivered as a PWA wrapped in native iOS/Android shells. All candidate-facing product decisions should default to mobile context (small screen, touch, push notifications, offline-first).
Candidate App Distribution¶
| Channel | Status | Notes |
|---|---|---|
| iOS app (App Store) | Live | Web app wrapped in a native iOS shell |
| Android app (Google Play) | Live | Web app wrapped in a native Android shell |
| PWA (browser install) | Live | Direct install from browser, no store required |
2. Epics & Features — User Stories¶
Epic 01: Client Dashboard¶
1.2 Total Open Vacancies and Active Jobs Widgets¶
As a client user I want to see key workforce metrics at a glance So that I can quickly assess staffing levels and urgent workforce needs
1.3 Workforce Cost Distribution (not MVP)¶
As a client manager I want to visualize how workforce costs are distributed across different worker types So that I can optimize spending and identify cost-saving opportunities
1.4 Task Center Widget (not MVP)¶
As a client user I want to see all pending tasks and required actions in one place So that I can prioritize my work and ensure nothing is overlooked
1.5 Ask Cruits AI Button¶
As a client user I want to access an AI assistant through a button in the header So that I can quickly get help finding candidates and answers to business questions without leaving my current workflow
1.6 Active Workers Page¶
As a client user I want to see detailed breakdown of workers by role So that I can understand workforce composition and identify urgent staffing imbalances
1.7 Data Refresh & Loading¶
As a user I want to see current data and know when it's being updated So that I can trust the information and make informed decisions
1.8 Alert System Integration (not MVP)¶
As a user I want to receive visual alerts for critical workforce situations So that I can take immediate action to prevent operational issues
1.9 Export & Reporting (not MVP)¶
As a client user I want to export dashboard data and generate reports So that I can share insights with stakeholders and maintain records
1.10 Workforce Forecast Chart (not MVP)¶
As a workforce planner I want to compare predicted workforce needs against actual staffing levels over time So that I can identify gaps and adjust my planning strategies
Epic 02: Job Request Viewing, Drafting and Posting¶
2.1 Jobs List View (not MVP)¶
As a client user I want to view all my job postings organized by status So that I can manage active vacancies, continue working on drafts, and reference archived positions
2.2 Create New Job Form¶
As a client user I want to create job postings through a guided form So that I can provide all necessary information and attract qualified candidates
2.3 Draft Auto-Save¶
As a client user I want my job draft to be saved automatically So that I don't lose progress if interrupted, if my session expires or if I click a back button
2.4 Publish/Unpublish Workflow¶
As a client user I want to control when jobs are visible to candidates So that I can manage recruitment timing and pause applications when needed
2.5 CAO Prefill Integration¶
As a client user I want job fields to prefill based on CAO selection So that I can ensure compliance and save time on data entry
2.6 Contact Person Section¶
As a client user I want to add or select contact person details to job postings and reuse them across multiple jobs So that candidates know who to contact and I don't have to re-enter the same information repeatedly
2.7 Job Attachments¶
As a client user I want to attach photos and videos to jobs So that applicants can better understand the work environment
2.8 Matching Criteria Builder¶
As a client user I want to specify requirements and their importance and see how many matching candidates there are So that candidate matching accurately reflects my needs and I can adjust criteria to find enough flexworkers
2.9 AI Job Description Assistant¶
As a client user I want to use AI to generate job descriptions So that I can create compelling content quickly without starting from scratch
2.10 Job Details Page (not MVP)¶
As a client user I want to view complete job details and access management actions from a single page So that I can review job information and take quick actions without navigating to multiple screens
Epic 03: Candidates Selection & Offer Sending¶
3.1 Process Applications Workflow¶
As a client user I want to process applications for my job postings through an organized workflow So that I efficiently move candidates through the hiring pipeline from application to placement
3.2 Matching Candidates List¶
As a client user I want to view all candidates who match my job postings, both those who have applied and those who haven't So that I can proactively reach out to suitable candidates
3.3 All Candidates List¶
As a client user I want to browse all available candidates on the platform and initiate actions after selecting a relevant job posting So that I can discover talents beyond automatic matching
3.4 Candidate Profile¶
As a client user I want to view comprehensive information about a candidate including their skills, experience and documents So that I can make informed and effective hiring decisions
3.5 Candidate Reviews¶
As a client user I want to view reviews from previous employers and leave my own review after a placement So that I can make informed decisions based on past performance
3.6 Message Candidate¶
As a client user I want to communicate directly with candidates through the platform So that I can discuss opportunities and coordinate next steps while maintaining a record of all communications
3.7 Send Offer¶
As a client user I want to create and send formal job offers with all necessary details and documents So that candidates receive professional offers integrated with our HR systems
3.8 Active Worker Internal Page¶
As a client user I want to view detailed information about my active workers So that I can manage current placements and maintain oversight of my workforce
3.9 Matching Engine¶
As a system I want to automatically match job requirements with flexworker profiles So that the most relevant candidates are surfaced for each vacancy
3.10 MySolution Integration¶
As a system I want to integrate with MySolution to synchronize candidate data So that all HR and payroll processes remain centralized and compliant
Epic 04: Worker Registration and Onboarding¶
4.1 Account Registration¶
As a flexworker I want to create an account with minimal information So that I can quickly start exploring job opportunities
4.2 Basic Information¶
As a flexworker I want to provide my basic personal information So that onboarding may get started
4.3 CV Upload & Parsing¶
As a flexworker I want to upload my CV and have it automatically fill my profile (where applicable) So that I can save time during onboarding
4.4 Languages & Skills¶
As a flexworker I want to specify the languages I know and the skills I have So that I can be matched with suitable job opportunities
4.5 Certificates¶
As a flexworker I want to upload my professional certificates So that I can prove my qualifications to potential employers
4.6 Work Experience & Education¶
As a flexworker I want to add my work history and educational background So that employers can understand my experience and qualifications
4.7 Availability Preferences, Work Preferences & Transportation¶
As a flexworker I want to set my work preferences, availability and transportation options So that I see jobs that match my availability and commute capabilities first
4.8 Housing in NL & Documents in NL¶
As a flexworker I want to provide my housing situation, BSN and bank account number So that employers know my readiness to work in the Netherlands
4.9 MySolution Integration¶
As a system I want to sync worker data with MySolution So that all HR processes remain centralized and compliant
Epic 05: Candidate Profile and Job Discovery¶
5.1 Profile Page¶
As a flexworker I want to view my complete profile with all information in one place So that I can see what employers see and track my profile completion
5.2 Edit Profile¶
As a flexworker I want to edit my availability and basic information easily So that I can keep my profile up to date and accurate
5.3 My Reviews¶
As a flexworker I want to view reviews I've given and received So that I can rate the companies I worked in and see how clients rated my work
5.4 Profile Sections¶
As a flexworker I want to manage my profile sections So that I can keep my qualifications current and improve my matching with jobs
5.5 Settings Page¶
As a flexworker I want to adjust my settings So that the app works best for me
5.6 Job Discovery and Saved Jobs¶
As a flexworker I want to search for and filter job opportunities So that I can find positions that match my skills, preferences, and availability
5.7 Job Details Page¶
As a flexworker I want to see comprehensive information about a job So that I can make an informed decision about applying
5.8 Matching Engine¶
As a system I want to automatically match job requirements with flexworker profile information So that workers see the most relevant jobs and clients see the most relevant candidates ranked by compatibility
Epic 06: Notifications and Messaging¶
6.1 Notifications (not MVP)¶
As a flexworker I want to receive notifications about important updates So that I don't miss offers, messages, or new job opportunities
Covers: new offers, offer renewals, offer expiry, perfect job match alerts, placement status changes, certificate expiry, payslip availability, timesheet updates, review requests. Multi-channel delivery: in-app, push (native iOS/Android + Web Push API), email fallback. Notification filters, quiet hours, grouping, and 30-day retention.
6.2 Messaging (not MVP)¶
As a flexworker I want to communicate one-on-one with managers through a messaging system So that I can discuss job details, find out about hiring process and maintain professional communication
Covers: threaded conversations scoped to a job posting, real-time delivery, file/image attachments, conversation search, unread indicators, push notifications for new messages, email fallback, lazy loading of message history.
Epic 07: Job Application, Offer and Placement¶
7.1 Work Page¶
As a flexworker I want to have all work-related information on one page So that I can see all steps of the employment process and stay organized
7.2 Applications Page¶
As a flexworker I want to track all my job applications So that I can manage my job search progress and stay organized
7.3 Offers Management¶
As a flexworker I want to manage my offers and make informed decisions to accept or decline So that I can choose opportunities that best match my needs
7.4 Placements Page¶
As a flexworker I want to view and manage my placements across different statuses So that I can track my work opportunities and access placement information
7.5 Payslips and Payment Documents¶
As a flexworker I want to view and download my payslips So that I can track my earnings, verify payments, and keep records for tax purposes
7.6 Placement Confirmation Steps¶
As a flexworker I want to complete the placement confirmation process steps So that I can move my placement from pending to active status and start work
Epic 08: Applications, Offers, Placements and Chats (Manager side)¶
8.1 Recruitment Page and Application Flow¶
As a manager I want to see all candidates within the recruitment process and understand the complete application flow So that I can efficiently navigate candidate management and take appropriate actions at each stage
8.2 Application Management¶
As a manager I want to view, filter, and manage all incoming and ongoing candidate applications in one centralized location So that I can efficiently review candidates and take appropriate hiring actions
8.3 Offer Management¶
As a manager I want to create, send, renew, and track job offers to candidates So that I can efficiently manage the hiring pipeline and maintain visibility of offer acceptance/decline status
8.4 Placement Management¶
As a manager I want to view and track candidate placements across different onboarding stages So that I can monitor the hiring pipeline, verify document completion, and manage active work assignments
8.5 Chats¶
As a manager I want to send and receive messages with candidates in dedicated threads with placement context So that I can efficiently communicate about placement status, documents, onboarding issues, and provide candidate support
Epic 09: Timesheets¶
9.1 Shift Hours Entry on Offer¶
As a manager I want to enter shift hours while creating an offer for the candidate So that weekly timesheets can be auto-generated
9.2 Timesheets — Manager Pending Tab¶
As a manager I want to review and approve auto-generated weekly timesheets before the payroll deadline So that I can ensure accurate hours are submitted for worker payment
9.3 Timesheets — Manager Approved Tab¶
As a manager I want to view all approved timesheets and make corrections if needed So that I can fix any post-approval errors
9.4 Absence Management¶
As a manager I want to mark and track worker absences with reasons So that I can accurately record when workers were not present and adjust their hours accordingly
9.5 Timesheets — Worker Side¶
As a worker I want to review my weekly timesheets So that I can ensure I will be paid correctly for my work
9.6 Timesheet Flow & Tag System¶
As a system I want to track comprehensive timesheet lifecycle status and modifications So that managers and workers have clear visibility of timesheet state and history
Epic 10: Manager Notifications¶
10.1 Manager Notifications¶
As a manager I want to receive notifications about important recruitment and placement events So that I stay informed about candidate actions, placements, and urgent follow-ups
10.2 Task Center Widget (not MVP)¶
As a manager I want to see a Task Center widget on my dashboard showing my pending tasks and action items So that I can quickly identify and prioritize urgent work
Epic 11: AI Assistant¶
11.1 AI Chat for Manager¶
As a manager I want to ask context-aware questions about staffing, compliance, and problem resolution So that I can make faster, more informed decisions and handle operational challenges effectively
11.2 AI Chat for Worker¶
As a worker I want to ask questions about job applications, profile optimization, and career development So that I can understand how everything works within the platform and improve my chances for an offer
11.3 User Persona & Long-term Memory¶
As a system I want to maintain comprehensive context about each user's activity, preferences, and history So that the AI can provide increasingly personalized and relevant recommendations over time
11.4 AI Chat History¶
As a manager or worker I want to access my previous AI conversations and prompts So that I can quickly return to prior topics, reuse successful queries, and maintain conversation continuity
11.5 "Enhance with AI" Button (Manager Only)¶
As a manager I want to improve my messages to workers using AI suggestions So that I can communicate more effectively with different tones and styles while saving time
11.6 Contextual Assistance & Conversation Threading¶
As a manager or worker I want contextual assistance and guided interactions with the AI So that I can discover relevant features and get more targeted help
Epic 12: Improvements¶
12.25.1 Phone Number Optional on Registration¶
As a candidate I want to omit entering my phone number while registering So that I can disclose limited personal info until I see the value of the app for me
12.25.2 Browse Jobs without Registration¶
As a candidate I want to browse through the jobs without registration So that I can decide whether I would like to proceed with signing up
12.26 Timesheet Overlap Validation (not MVP)¶
As a system I want to check for schedule overlaps when offers are sent or accepted So that valid timesheets are generated and submitted to MySolution correctly
12.N Chat Initiated Indicator (not MVP)¶
As a manager I want to understand at a glance whether a chat with a candidate exists and who initiated it So that I can save time while searching for suitable candidates
Epic 14: AI Interview — General Skills Assessment¶
14.1 Informational Modal before AI Interview redirect¶
As a flexworker I want to see an informational modal before being redirected to the AI interview platform So that I can make an informed decision before leaving the app
14.2 Integration with Third-Party AI Interview Provider¶
As a system I want to integrate with an external AI interview provider (Job Mojito) with full white-label branding So that interviews are conducted, recorded, and analyzed without the user knowing it is a third-party service
14.3 AI Interview Results in Candidate Profile¶
As a manager I want to view AI interview results — summary, soft skills radar, transcript, and video — in a candidate's profile tab So that I can shortlist candidates faster without conducting initial screening calls
14.4 "AI Assessed" Frame on Candidate Avatar¶
As a flexworker I want to display an "AI Assessed" ribbon frame on my profile avatar after completing the interview So that managers can immediately see I have been assessed and I stand out in candidate lists
Epic 15: Admin Statistics & Bottleneck Identification¶
15.1 Event Timestamp Infrastructure¶
As a system I want to have a centralised event log in PostgreSQL So that every time-sensitive action on the platform generates a timestamped record that can be queried for analytics and alerting
15.2 Analytics Dashboards¶
As a Cruits admin I want to view time-gap metrics across all recruitment funnel stages So that I can identify bottlenecks and act on them via Metabase without writing SQL
15.3 Automated Time-Gap Alerts (not MVP)¶
As a Cruits admin I want to receive an email alert when a time gap between two platform events exceeds a defined threshold So that I can intervene before the delay affects a candidate or placement outcome
15.4 Contentsquare Behaviour Analytics¶
As a Cruits admin I want to see where managers click, scroll, and drop off on desktop and where candidates lose momentum on mobile So that I can make evidence-based UX decisions without writing SQL