Epic 04: Worker Registration and Onboarding¶
Overview¶
The Worker Registration and Onboarding Epic enables flexworkers to quickly create accounts and complete the necessary onboarding steps to become job-ready. This epic implements a streamlined registration flow with CV parsing capabilities and automated profile population through MySolution. The system provides a mobile-optimized experience that guides workers through essential steps including personal information collection, document uploads, skills assessment, and compliance verification. The CV parsing feature significantly reduces manual data entry, while the progressive onboarding approach ensures workers can start browsing jobs early in the process.
Business Value¶
- Reduce onboarding time from days to minutes through automation Minimize drop-off rates with simplified, progressive disclosure Support multiple languages to serve international worker populations Enable early job discovery to increase engagement Build comprehensive worker profiles for accurate matching Reduce support burden through self-service capabilities
Solution Concept¶
The solution provides a progressive onboarding experience optimized for mobile devices. Workers begin with minimal registration requirements and can immediately browse available jobs. The optional CV upload triggers intelligent parsing that pre-fills profile fields, significantly reducing manual entry. Document verification happens asynchronously through MySolution and DataChecker integrations. The multilingual interface adapts to worker preferences, while smart defaults and contextual help reduce cognitive load. Throughout the process, workers maintain visibility into their profile completion status and understand which information unlocks additional opportunities.
Features and User Stories¶
4.1 Account Registration CFS-9:¶
4.1 Account Registration Done Preview¶
User Story:
As a flexworker I want to create an account with minimal information So that I can quickly start exploring job opportunities
Описание: The Account Registration feature provides a simple entry point for new flexworkers. The registration process requires only essential information (name, email/phone, password) to minimize friction. After basic registration, workers can immediately access job listings while completing their profile progressively.
Критерии приёмки: - Initial candidate validation screen - Opens on “Sign Up” button tap - “Do you have a passport or nationality of an EU/EEA country or Switzerland?” - If YES → continue to Create Account page - If NO → next question appears - “Do you currently have a valid work permit for the Netherlands (tewerkstellingsvergunning)?” - If YES → continue to Create Account page - If NO → show rejection message - Rejection message: “Unfortunately, you are not eligible to register on Cruits. - At this time we can only accept candidates who have the legal right to work in the Netherlands” - Registration Form contains: - First name (required) - Last name (required) - Email address (required, validated format) - Phone number (required, with country code selector - nice to have) - Password (required, minimum 8 characters) - Confirm password (required, must match) - Terms of Service and Privacy Policy checkbox (required) - "Continue" button - Email Validation: - Check valid email format - Send verification email - Allow proceeding if only email is verified - Phone Validation: - Country code selector “+31” by default - Support international formats - Additional Dutch number validation rules (like these ) - nice to have - Password Requirements: - Minimum 8 characters - Show warning text under the field until the number of symbols entered reaches 8 - Toggle password visibility option - Clear mismatch error messages - Alternative Login Methods: - "Sign in" link for existing users - "Forgot Password" functionality with OTP on email - Post-Registration Flow: - Create account in MySolution - Auto-login after successful registration OTP entered - Redirect to onboarding welcome screen - Send welcome email with next steps - Standard Forgot Password routine with OTP on email - Error Handling: - Duplicate email/phone detection - Clear validation messages - Preserve form data on errors - Loading states during submission - nice to have - Edge Cases: - If user leaves before OTP → user is “not_verified” → OTP screen will appear on log in attempt → passes OTP → becomes “verified” - If not_verified user goes to “forget password” flow → passes OTP → becomes “verified” - Welcome Email : - Hi [First Name], - Welcome to Cruits! - We're glad you're here. - You've just taken the first step toward finding flexible work opportunities that fit your schedule and skills. - Whether you're looking for shifts in logistics, retail, agriculture or other sectors, we're here to connect you with employers across the Netherlands. - Once you set up your profile is ready to go. - Now it's time to explore what's available. - What happens next? - Once you log in to your account, you will start with onboarding, where you will add your skills, work experience and availability. - Employers will be able to view your profile, so make sure you complete the onboarding. - The more information you share, the better we can match you with the right opportunities. - Then you can start browsing open positions in your area. - You can filter by location, industry, and shift times to find what works best for you. - When you see something you like, apply directly through the platform. - [LOG IN BUTTON] - If you have questions about how the platform works or need help with your profile, our support team is ready to assist you. - Just reply to this email! - Thanks for choosing Cruits. - We're looking forward to helping you find work that fits your life. - The Cruits Team - Footer: - Cruits | Flex work platform | [Address] | Unsubscribe
4.1.2 (не MVP)¶
4.2 Basic Information¶
User Story:
As a flexworker I want to provide my basic personal information So that onboarding may get started
Описание: This section collects fundamental personal information that is required for employment records and emergency situations. Some fields are pre-populated from the registration step to minimize data entry.
Критерии приёмки: - Screen Header: - Title: "Basic Information" - "Exit" button → Profile Main Page - Explanation text - Personal Details Fields: - First Name and Last Name (text fields) - Pre-filled from registration - Editable - Required field - Phone Number (phone field) - Pre-filled from registration - Not editable (grayed out) - Info icon with tooltip: "Your account is linked to your phone number, so it cannot be changed" - Email Address (email field) - Pre-filled from registration - Not editable (grayed out) - Info icon with tooltip: "Your account is linked to your email address, so it cannot be changed" - Date of Birth (date picker) - Calendar picker interface - Format: - DD/MM/YYYY - Age validation (must be 16+ ) - Required field - Gender (toggle buttons) - Male / Female - Required choice - Nationality (modal bottom sheet) - parsed from MySolution - radio button single select - search box on top - should have for MVP - Required field - Emergency Contact Section: - Section header: "Emergency Contact" - Explanatory text: "Please provide someone we can contact in case of emergency" - Name (text field) - Full name of emergency contact - Phone Number (phone field) - Country code selector “+31” by default - Format validation - Validation Rules: - All required fields must be completed - Phone numbers must be valid format - Birth date must indicate age 16 or older - Error messages display below relevant fields - Navigation: - "Continue" button to proceed (enabled when all required fields valid) - Auto-save functionality if “Skip” is clicked - should have
4.3 CV Upload & Parsing ( CFS-11:¶
4.3 CV Upload & Parsing In Review Preview )¶
User Story:
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
Описание: The CV Upload & Parsing feature offers workers an optional fast-track through onboarding. When a CV is uploaded, the MySolution parsing service extracts relevant information and pre-populates profile fields. Workers can review and edit extracted data before confirming.
Критерии приёмки: - Upload Interface: - Prominent "Upload Your CV" section - Clear explanation of benefits text - "Skip" button to proceed to the next step (saves the CV if it was uploaded) - “Exit” button to opt out from Onboarding → Profile (Main) page - "Back to previous step" link → previous step (Basic Info) - Upload CV opens a modal with - File selection button - “Upload” button - Once uploaded, show to “Upload CV” button, but an uploaded CV card with - CV name - Date Added - Delete button (Deletes the CV file, “Upload CV” button is active again to re-upload another CV file) - Continue button → next step in Onboarding, even if no CV was uploaded - File Requirements: - Accepted format: - Maximum file size: 10MB - Clear error messages for invalid files - Only English CV support - Parsing Process: - Show processing indicator (loader) - nice to have - Send file to MySolution parsing API - Handle parsing failures gracefully - Once the CV was skipped and a user entered work experience, education, skill, etc.m, we no longer allow parsing the CV, as the conflict between parsed and manually input data would cause error 500 - for MVP - Extract anything applicable: - Work experience - Education history - Skills and languages - Data Review: - Present extracted data for confirmation in next screens - Allow editing the entries on respective screens later - Profile Population: - Map parsed data to profile fields if the wording of sections / headers / skills matches - Mobile Optimization: - File upload from device storage - Responsive preview interface - Touch-friendly edit controls
4.3.1 (не MVP)¶
4.4 Languages & Skills CFS-12:¶
4.4 Languages & Skills In Review Preview¶
User Story:
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
Описание: The Languages & Skills steps allows workers to detail their language proficiencies and professional competencies. This information is crucial for job matching and helps employers assess communication abilities and technical qualifications. This data drives the matching engine and helps workers showcase their capabilities to potential employers.
Критерии приёмки: - Languages - ' alt size=16 style="--_rcxkve:16px;background-blend-mode:normal!important;background-clip:content-box!important;background-position:50% 50%!important;background-color:rgba(0,0,0,0)!important;background-image:var(--sf-img-12)!important;background-size:100% 100%!important;background-origin:content-box!important;background-repeat:no-repeat!important"> - BlinkSoftware [HF] [Main] - Languages Step: - Explanation text - "Exit" → Profile Main Page - "Skip" -> next step (Skills) - "Back to previous step" link → previous step (CV) - “Select Language” button → modal bottom sheet with the list of available languages, with “English” selection that cannot be removed - multi select with all item area clickable - Cancel → closes a bottom sheet with no changes saved - Submit → saves the choices and shows them as language cards - Pre-populated with languages from CV (if applicable), skill levels are for a user to select - English is a must have and cannot be removed - Every other language item has [x] button and can be removed ([x] button unselects that language in modal bottom sheet as well) - Every language item has “Select your level” modal bottom sheet with the following options: - 1 - Beginner - 2 - Elementary - 3 - Intermediate - 4 - Advanced - 5 - Fluent - “Choose at least your English level” text above Continue button - Continue button is active if at least 1 language level (English) is chosen → Skills step - If no level was selected - no level is assigned, it remains empty - Skills Section - ' alt size=16 style="--_rcxkve:16px;background-blend-mode:normal!important;background-clip:content-box!important;background-position:50% 50%!important;background-color:rgba(0,0,0,0)!important;background-image:var(--sf-img-12)!important;background-size:100% 100%!important;background-origin:content-box!important;background-repeat:no-repeat!important"> - BlinkSoftware [HF] [Main] - Skills - Explanation text - "Exit", "Skip" and "Back to previous step" - “Add Skill” button → modal bottom sheet with the list of skills (skill group is added automatically upon the choice of a skill, for MVP), parsed from Mysolution - multi select options : - Teamlead - Communication - Physical Strength - Order Picking - Packing - (Un)loading Trucks - Forklift Driving - Reachtruck Driving - (De)palletizing - Flower Sorting - Greenhouse Work - Harvesting - Line Work - Machine Operations - Cutting - Machine Maintenance - Small Repairs - search box on top - Cancel → closes a bottom sheet with no changes saved - Submit → saves the choices and shows them as skill cards - If it is not a boolean skill - “Select your level” button is added to a skill card - “Select your level” button opens a modal bottom sheet with the following options: - 1 - Novice - 2 - Beginner - 3 - Medium - 4 - Advanced - 5 - Proficient - Pre-populated with skills from CV, if wording matches exactly (if applicable) - Every skill item has [x] button and can be removed - Explanation text “Choose at least 3 skills to continue” above Continue button - If some skills have no levels selected and “Skip” button is tapped → add “1 - Novice” to that skill automatically - Continue button is active if at least 3 skill levels are chosen → next step - If no level was selected for non-boolean skill - no level is assigned, it remains empty
4.1 (не MVP)¶
4.5 Certificates ( CFS-13:¶
4.5 Certificates In Review Preview )¶
User Story:
As a flexworker I want to upload my professional certificates So that I can prove my qualifications to potential employers
Описание: The Certificates section allows workers to upload and manage their professional certifications. This includes safety certificates, licenses, diplomas and other credentials that may be required or preferred for certain positions.
Критерии приёмки: - Certificates Upload Screen: - Explanation text - "Exit", "Skip" and "Back to previous step" buttons - Upload Interface: - "Upload File" button - For each certificate uploaded: - Certificate name/type (text field) - Issue date (date picker) - Expiry date (date picker, optional) - View button (opens a pop-up with document preview) - Delete button → delete the uploaded file - Certificate Display: - Uploaded certificates shown as cards with: - Certificate type/name - Issue date date picker (optional) - Expiry date date picker (optional) - Delete button - Status indicator (Valid/Expiring Soon/Expired) - nice to have - File Requirements: - Accepted formats: - PDF, JPG, PNG - Maximum file size: 10MB per certificate - Multiple certificates can be uploaded (up to 10) - Show error message if the file is not valid - Validation: - Issue date should be earlier than expiry date - Issue date should be in the past, expiry date - in the future - Show error message if the dates are not valid - Verify file uploads successful - Link to document storage in MySolution
4.5.1 (не MVP)¶
4.6 Work Experience & Education CFS-14:¶
4.6 Work Experience & Education In Review Preview¶
User Story:
As a flexworker I want to add my work history and educational background So that employers can understand my experience and qualifications
Описание: This section captures the worker's employment history and educational achievements. Information can be auto-populated from CV parsing or entered manually, providing employers with a comprehensive view of the candidate's background.
Критерии приёмки: - Work Experience Screen - ' alt size=16 style="--_rcxkve:16px;background-blend-mode:normal!important;background-clip:content-box!important;background-position:50% 50%!important;background-color:rgba(0,0,0,0)!important;background-image:var(--sf-img-12)!important;background-size:100% 100%!important;background-origin:content-box!important;background-repeat:no-repeat!important"> - BlinkSoftware [HF] [Main] - Work Experience - Explanation text - "Exit", "Skip" and "Back to previous step" - Pre-populated with work experience entries from CV (if applicable) - Each work experience card has: - Preview with - Position name - Company - Location - Start-End Dates - Description (if any) - Edit Details button → edit mode - Delete → removes work entry (with confirmation dialog - nice to have) - Add Work Experience button → opens the screen of creation the new work experience entry with: - Job title (required) - Company name (required) - Location text field (optional) - Start Date picker (required) - End Date picker (required) - “I currently work here” checkbox, if checked → ignore the absence of End Date and add “Present” as End Date - Job description (text area, optional) - Edit mode is the same as creation mode, with all fields editable - Education Screen - ' alt size=16 style="--_rcxkve:16px;background-blend-mode:normal!important;background-clip:content-box!important;background-position:50% 50%!important;background-color:rgba(0,0,0,0)!important;background-image:var(--sf-img-12)!important;background-size:100% 100%!important;background-origin:content-box!important;background-repeat:no-repeat!important"> - BlinkSoftware [HF] [Main] - Education - Explanation text - "Exit", "Skip" and "Back to previous step" - Pre-populated with education entries from CV (if applicable) - Education xard is similar to Work Experience card - For each education entry: - Institution name text field (required) - Degree/Qualification dropdown (required) - High School - Vocational Training - Bachelor's Degree - Master's Degree - Location text field (optional) - Start date picker (required) - End date picker (required) - “I currently study here” checkbox, if checked → ignore the absence of End Date and add “Present” as End Date - Key achievements (text filed, optional) - Display Format: - Pre-populated fields are editable - Reverse chronological order (newest first) - Clean, scannable layout - Expand/collapse for details
4.7 Availability Preferences, Work Preferences & Transportation¶
User Story:
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
Описание: This section captures worker availability, shift preferences, and transportation capabilities. This information is essential for matching workers with suitable positions based on practical considerations.
Критерии приёмки: - Availability Preferences: - ' alt size=16 style="--_rcxkve:16px;background-blend-mode:normal!important;background-clip:content-box!important;background-position:50% 50%!important;background-color:rgba(0,0,0,0)!important;background-image:var(--sf-img-12)!important;background-size:100% 100%!important;background-origin:content-box!important;background-repeat:no-repeat!important"> - BlinkSoftware [HF] [Main] - Availability Preferences - Explanation text - "Exit", "Skip" and "Back to previous step" - Availability Status with the following 3 options (is shown as Availability Status on Candidate Profile page) : - Open to Work (secondary text “Looking for new assignments”) - Available from [date picker] (today is the earliest date to pick) - On Assignment (secondary text “Currently working”) - Available from [date picker] (today is the earliest date to pick) - Not Open to Work (secondary text “Not seeking assignments”) - Shift Preferences - multi-select checkboxes (is shown as Shift Preferences on Candidate Profile): - Day Shifts - Evening Shifts - Night Shifts - Weekend Shifts - Variable Shifts (is shown as Shift Preferences on Candidate Profile): - Yes/No toggle buttons - Explanation text - Continue button → next step - Work Preferences: - ' alt size=16 style="--_rcxkve:16px;background-blend-mode:normal!important;background-clip:content-box!important;background-position:50% 50%!important;background-color:rgba(0,0,0,0)!important;background-image:var(--sf-img-12)!important;background-size:100% 100%!important;background-origin:content-box!important;background-repeat:no-repeat!important"> - BlinkSoftware [HF] [Main] - Work Preferences - Explanation text - the same as on previous screen - "Exit", "Skip" and "Back to previous step" - Location Preferences (is considered for Matching Engine) : - Text “Please tell us what your future job location preferences are” - “Commute distance (km radius)” number field - Preferred Positions (is considered for Matching Engine) : - Text: "Select the positions that you find the most compelling as for the moment" - “Select Preferred Positions” button - Tap on “Select Preferred Positions” → modular bottom sheet - Options - multi-select checkboxes (desired_function in MySolution) : - Order Picker - Packer - Forklift Driver - Reachtruck Driver - Loader / Unloader - Machine Operator - Production Worker - Line Worker - Quality Checker - Flower Sorter / Picker - Maintenance Worker - Mechanic Assistant - Forklift Driver - Order Picker - Loader / Unloader - Team Leader - Cancel → closes a bottom sheet with no changes saved - Submit → saves the choices and shows them as chips under the “Select Preferred Positions” button - Industry Preferences (is considered for Matching Engine) : - Text “What industries you would like to work in? - Choose any number of options” - “Select Industry Preferences” button - Tap on “Select Industry Preferences” → modular bottom sheet - Options - multi-select checkboxes (desired_sector in MySolution): - Logistics - Agriculture - Production - Cancel → closes a bottom sheet with no changes saved - Submit → saves the choices and shows them as chips under the “Select Industry Preferences” button - Work Environment (is considered for Matching Engine) : - Text “Please choose the work conditions you are ok with. - Select all that apply” - “Select Work Environment” button - Tap on “Select Work Environment” → modular bottom sheet - Options - multi-select checkboxes (skill_group Working_Conditions → Skills list from MySolution): - Repetitive work - Standing for a long time - High temperatures - Working at height - Physically heavy - Low temperatures - Cancel → closes a bottom sheet with no changes saved - Submit → saves the choices and shows them as chips under the “Select Work Environment” button - Continue button → next step - Transportation - ' alt size=16 style="--_rcxkve:16px;background-blend-mode:normal!important;background-clip:content-box!important;background-position:50% 50%!important;background-color:rgba(0,0,0,0)!important;background-image:var(--sf-img-12)!important;background-size:100% 100%!important;background-origin:content-box!important;background-repeat:no-repeat!important"> - BlinkSoftware [HF] [Main] - Transportation - "Exit", "Skip" and "Back to previous step" - Explanation text - Question 1 - Do you own any vehicle in the Netherlands? - Yes/No radio buttons - If Yes -> “Vehicles owned” button appears - Tap on “Vehicles owned” → modular bottom sheet with vehicles - multi select with “Select all” - Cancel → closes a bottom sheet with no changes saved - Submit → saves the choices and shows them as chips under the “Vehicles owned” button - Question 2 - Do you have a driver’s licence? - Yes/No radio buttons - If Yes -> “Choose your licence type(s)” button appears - Tap on “Choose your licence type(s)” → modular bottom sheet with licence types - multi select with “Select all” - Cancel → closes a bottom sheet with no changes saved - Submit → saves the choices and shows them as chips under the “Choose your licence type(s)” button - Continue button → next step, require to choose the licence type if “yes” for licences selected
4.7.1 (не MVP)¶
4.8 Housing in NL & Documents in NL CFS-16:¶
4.8 Housing in NL & Documents in NL In Review Preview¶
User Story:
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
Описание: This section captures Netherlands-specific requirements including housing arrangements, BSN registration, and IBAN. This information helps determine work readiness and compliance status.
Критерии приёмки: - Housing in NL: - ' alt size=16 style="--_rcxkve:16px;background-blend-mode:normal!important;background-clip:content-box!important;background-position:50% 50%!important;background-color:rgba(0,0,0,0)!important;background-image:var(--sf-img-12)!important;background-size:100% 100%!important;background-origin:content-box!important;background-repeat:no-repeat!important"> - BlinkSoftware [HF] [Main] - Housing - "Exit", "Skip" and "Back to previous step" - Explanation text - "Select housing arrangement” button that opens a modal bottom sheet with radio button options: - Arranged with WorkInn - Already arranged with another temp agency - Already arranged privately - Needs to be arranged - If option 1/2/3 chosen, then the address fields and a checkbox appear: - Street name - House number - Postal code (with validation) - Checkbox “I don’t mind relocation” - if unmarked → nothing happens - if marked → system ignores distance in location filter on Candidates page, thus this worker is shown for any location filter option applied . Plus “May Relocate” candidate status applied (medium-low priority for MVP) - If option 4 chosen, then another question appears: - “Do you need help with housing arrangement?” - Yes → add internal status “housing_needed” and send an email to Cruits manager once: 1 - this candidate receives an offer, 2 - once this candidate accepts an offer (for MVP ) - No → nothing happens - Continue button → next step - Documents in NL: - ' alt size=16 style="--_rcxkve:16px;background-blend-mode:normal!important;background-clip:content-box!important;background-position:50% 50%!important;background-color:rgba(0,0,0,0)!important;background-image:var(--sf-img-12)!important;background-size:100% 100%!important;background-origin:content-box!important;background-repeat:no-repeat!important"> - BlinkSoftware [HF] [Main] - Documents in NL - Header - Page title - "Exit", "Skip" and "Back to previous step" - Explanation text: “Tell is if you have the following documents already. - They are essential for your first placement. - If you don't have any of this, no worries - we will help you with them!” - Explanation text changed to: "Your BSN and IBAN documents have been uploaded. - All good!" (for 4th layout - once both IBAN and BSN are added) - Layout States - No BSN and no IBAN: - “Do you have a BSN?” number field - Yes → “Verify BSN” button appears - “Do you have Dutch bank account?” - Yes → “Verify IBAN” button appears - BSN verified and no IBAN: - BSN input field, masked - on eye button click - pull BSN from SF - on edit attempt - modal bottom sheet “Change your BSN/IBAN” - Body text “To change your BSN/IBAN, please contact your Cruits manager by [mailto: email]” email to be defined? - Cancel button → return to previous view - “Do you have Dutch bank account?” - Yes → “Verify IBAN” button appears - IBAN Verified and no BSN: - “Do you have a BSN?” number field - Yes → “Verify BSN” button appears - IBAN input field, masked - on eye button click - pull IBAN from SF - on edit attempt - modal bottom sheet “Change your BSN/IBAN” - Body text “To change your BSN/IBAN, please contact your Cruits manager by [mailto: email]” email to be defined? - Cancel button → return to previous view - Both IBAN and BSN verified: - No explanation text on top - No questions with radio buttons - BSN input field, masked - on eye button click - pull BSN from SF - on edit attempt - modal bottom sheet “Change your BSN/IBAN” - Body text “To change your BSN/IBAN, please contact your Cruits manager by [mailto: email]” email to be defined? - Cancel button → return to previous view - IBAN input field, masked - on eye button click - pull IBAN from SF - on edit attempt - modal bottom sheet “Change your BSN/IBAN” - Body text “To change your BSN/IBAN, please contact your Cruits manager by [mailto: email]” email to be defined? - Cancel button → return to previous view - Verification with AI modals - “Verify BSN” button click→ bottom sheet modal: - Title: “BSN Document” - Explanation box - “Upload” button → opens file selector - Once uploaded - Submit button is active - BSN is parsed to input field and is editable to avoid AI slope - “Remove” button on file allows to reselect are re-parse - On Submit, AI verifies if the name and numbers match - Cancel button returns to previous view - “Verify IBAN” button click→ bottom sheet modal: - Title: “Debit Card or Bank Statement” - Explanation box - “Upload” button → opens file selector - Once uploaded - Submit button is active - IBAN is parsed to input field and is editable to avoid AI slope - “Remove” button on file allows to reselect and re-parse - On Submit, AI verifies if the name and numbers match - Cancel button returns to previous view - File requirements: - JPG, PNG, PDF, up to 10 Mb - Field validation rules - exactly 9 digits - “11-check” rule applied: - Each digit is assigned a weight, starting from 9 for the first digit and decreasing by one for each subsequent digit. - The last digit is multiplied by -1 instead of 1 - The number is divided into its individual digits. - Each digit is multiplied by its corresponding weight. - The results of these multiplications are summed up. - The sum is then divided by 11. - If the remainder of this division is 0, the number is considered valid. - Example: 442641023 - 9 x4 + 8 x4 + 7 x2 + 6 x6 + 5 x4 + 4 x1 + 3 x0 + 2 x2 + -1 x3 = 143 - 143/11 13.0 = valid - exactly 18 characters long - The two-letter country code for the Netherlands, prefilled. - Ignore it if a user pastes NL in the beginning - XX: the check digits, calculated to validate the IBAN - Four letters identifying the bank (always CAPITAL, like ABNA or RABO) - XXXXXXXXXX: - A 10-digit bank account number. - Error Handling: - Appropriate error toasts - Allow to retry and upload another document in case of parsing / verification errors - Compliance Indicators and Statuses: - Apply "Onboarded" onboarding status badge when all 3 - Housing (option 1/2/3 chosen), BSN and Dutch IBAN are revealed - Apply “Onboarding” onboarding status badge when there is at least 1 missing - Input and AI verification on this page are optional, but needed for finalizing the Placement (see User Story 7.4 )
4.8.1 (не MVP)¶
4.9 MySolution Integration U CFS-17:¶
4.9 MySolution Integration To Do Preview s¶
User Story:
As a system I want to sync worker data with MySolution So that all HR processes remain centralized and compliant
Описание: MySolution Integration ensures all worker data, documents, and verifications are properly synchronized with the back-office system. This maintains data integrity and enables smooth operational workflows.
Критерии приёмки: - Data Synchronization: - Create worker profile in MySolution - Update personal information - Sync skills and qualifications - Document upload and storage - Status synchronization - API Endpoints Used: - POST /workers - Create new worker - PUT /workers/{id} - Update worker data - POST /documents - Upload documents - GET /workers/{id}/status - Check verification - POST /cv-parse - Parse CV data - Sync Triggers: - On profile creation - On section completion - On document upload - Scheduled daily sync - Manual sync option - Error Handling: - Retry failed syncs - Queue for offline handling - Error logging and alerts - Fallback to manual process - User-friendly error messages - Data Mapping: - Field mapping configuration - Data transformation rules - Validation before sync - Conflict resolution - Audit trail
4.10 ID Verification - out of scope¶
User Story:
As a platform I want to verify worker identities So that we ensure compliance and prevent fraud
Описание: ID Verification integrates with DataChecker to validate worker identities. This automated process ensures compliance with employment regulations while maintaining a smooth user experience.
Критерии приёмки: - Verification Flow: - Clear explanation of why needed - Step-by-step guidance - Privacy assurance messages - Alternative manual process - Document Capture: - ID/Passport photo upload - Quality requirements display - Auto-crop and enhance - Multiple attempt allowance - DataChecker Integration: - Real-time API submission - Status webhook handling - Result storage in MySolution - Retry mechanism for failures - Verification Status: - Pending verification - Verified - Failed (with reasons) - Manual review required - Expired verification - User Communication: - Email on completion - In-app notifications - Clear next steps - Support contact for issues - Compliance Features: - Audit trail maintenance - Re-verification scheduling - Document retention policies - GDPR compliance - Technical Considerations - Performance Requirements - Registration form submission < 2 seconds - CV parsing completion < 30 seconds - Document upload < 10 seconds per file - Page load times < 1 second - Support 1000+ concurrent registrations - Data Integration - Real-time sync with MySolution for profile data - Asynchronous document verification processing - Webhook handlers for DataChecker responses - Queued jobs for CV parsing - Cached data for offline capability - Security & Privacy - Encrypted document storage - PII data encryption at rest - Secure API communication - Right to deletion implementation - Mobile Optimization - Progressive Web App capabilities - Touch-optimized controls - Responsive design breakpoints - Offline form data preservation - Camera integration for documents - Browser Compatibility - Chrome (latest 2 versions) - Safari (latest 2 versions) - Edge (latest 2 versions) - Firefox (latest 2 versions) - Chrome Mobile/Safari Mobile - Related content - More info - g(p.length) css-6cu6fo" role=listitem> - Test Report: - Worker Registration and Onboardin (06/11/2025) - Test Report: - Worker Registration and Onboardin (06/11/2025) - Mykhailo Virych - g(p.length) css-6cu6fo" role=listitem> - Candidate Profile and Job Discovery - Candidate Profile and Job Discovery - Nadia Albul - g(p.length) css-6cu6fo" role=listitem> - 2 Job Request Viewing, Drafting and Posting - 2 Job Request Viewing, Drafting and Posting - Nadia Albul - g(p.length) css-6cu6fo" role=listitem> - Job Application, Offer and Placement - Job Application, Offer and Placement - Nadia Albul - g(p.length) css-6cu6fo" role=listitem> - User Journey & Profiles: - From Recruitment to Continuous Engagement - User Journey & Profiles: - From Recruitment to Continuous Engagement - Mykhailo Virych - g(p.length) css-6cu6fo" role=listitem> - Candidates Selection & Offer Sending - Candidates Selection & Offer Sending - Nadia Albul