Skip to content

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

  1. Direct client–worker collaboration — clients and flexworkers interact directly; the agency automates the back office
  2. Predictive WFM — demand forecasting, gap identification, auto-generated vacancy drafts
  3. End-to-end digitization — onboarding, contract signing (MySolution My Sign), timesheets, invoicing — no paper
  4. Smart matching — formula- and weight-based matching on skills, availability, travel distance, and ratings; two-way reviews
  5. Data dashboards — KPIs on fill rate, cost per shift, forecast accuracy, worker satisfaction
  6. 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