Skip to content

Epic 07: Job Application, Offer and Placement

Overview

The Application, Offer and Placements Epic enables flexworkers to efficiently manage every stage of their placement processes. This unified, workflow-driven module provides clear lifecycle visibility of applications and offers, actionable placement tracking, and secure payslip access - empowering flexworkers to navigate the opportunities with full transparency and control. Employers and managers benefit from streamlined candidate decisioning and reduced support overhead, while the experience is optimized for mobile, ensures data security, and drives higher engagement throughout the application and placement journey.

Business Value

  • Applied, Offers, Placements, Payslips and Declined Applications & Offers Enable quick, informed decision-making for workers on job offers Improve retention through notification-driven workflows and clear action prompts Minimize support burden by surfacing errors, statuses, and next actions proactively Optimize mobile usability to support fast, accurate offer and placement management

Solution Concept

This epic implements four tightly integrated modules: Applications: Workers track all submitted job applications in a dedicated "Applications" section. The experience centers around two tabs (Applied and Declined), each showing real-time counts and organized lists, with card-based job previews and clear action buttons. Status flows ensure each application is actionable and visible, with empty states providing helpful guidance. Offers: Flexworkers receive and act on job offers via the "Offers" page with three tabs (New, Accepted and Declined) and the notification system. Detailed cards and modal views surface all offer info (company, job, hourly rate, start-end dates. expiry, offer details), enabling accept/decline workflows with confirm dialogs, reason capture, and feedback routing. Real-time notifications drive engagement and timely response to expiring or new offers. Placements: Upon accepting an offer, flexworkers enter a staged onboarding process tracked in "Placements": Pending (three steps), Active, and Archived. Each placement shows detailed progress indicators and expandable step flows: ID and permit check, document signing, document upload - each with status icon, error handling, and support links. Placement transitions trigger success notifications and accurate tab updates. Payslips: All payment information is centralized in the "Payslips" section. Payslips are displayed in responsive lists, card stacks for mobile. Each payslip lists company, period, net amount, and download action. Error handling, notifications, strict privacy, and robust mobile optimization ensure reliable, secure access to financial documents. All workflows optimize for touch, clarity, transparency, and mobile responsiveness. Key states, actions, and transitions are surfaced through real-ti

Features and User Stories

7.1 Work Page

User Story:

As a flexworker I want to have all work-related information on one page So that I can see all of steps of employment process and stay organized

Описание: The Work Page feature provides flexworkers with a centralized dashboard that consolidates all work-related information in one unified location. The page serves as the primary hub for accessing employment process steps. This enables workers to stay organized, monitor their professional activities, and quickly access critical work information without navigating between multiple sections of the PWA. alt size=16 style="background-blend-mode:normal;background-clip:content-box;background-position:50% 50%;background-color:rgba(0,0,0,0);background-image:var(--sf-img-10);background-size:100% 100%;background-origin:content-box;background-repeat:no-repeat"> BlinkSoftware [HF] [Main]

Критерии приёмки: - Applications Page Header: - Page title: "Work" - Notification icon on top right → Notifications - Page Content: - Explanation text: “Here you can find all work-related information. - It is your primary hub for accessing employment process steps” - 4 blocks: - Applications → Applications page, user story

7.2 Offers → Offers page,

7.3 Placements → Placements page,

7.4 Payslips → Payslips page,

7.5 Orange dot new activity indicator (in case there is anything unseen): Applications: if there is a new Applied / Declined

7.1.1 (не MVP)

7.2 Applications Page

7.2 Applications Page To Do Preview

User Story:

As a flexworker I want to track all my job applications So that I can manage my job search progress and stay organized

Описание: The Applications feature enables flexworkers to view and track all submitted job applications in one centralized location. Workers can see which jobs they've applied to, offers they've received, applications that have been declined, and the offers they've declined. The system provides clear visibility of application status and allows workers to take action on received offers. alt size=16 style="background-blend-mode:normal;background-clip:content-box;background-position:50% 50%;background-color:rgba(0,0,0,0);background-image:var(--sf-img-10);background-size:100% 100%;background-origin:content-box;background-repeat:no-repeat"> BlinkSoftware [HF] [Main]

Критерии приёмки: - Applications Access Points: - Primary: - Work Page > Applications - Secondary: - Notification system (job application status update - you are hired / declined) - Applications Page Header: - Page title: "Applications" - Two tabs: "Applied" and "Declined" - Default to "Applied" tab - Tab badge showing count of items in each tab - nice to have - Orange dot new activity indicator, if there is a new Applied / Declined application since last visit (mark as read once scrolled to it) - Applied Tab: - Display list of jobs worker has applied to in card format - Each applied job card shows: - Job title - Company name - Location - Application date timestamp (Applied on [date] at [time]) - “View Details” action button → Job Page - Empty state: "No applications yet" with helpful message and “Go to Jobs Page” button - Sorted by date (most recent first) - Declined Tab: - Display all declined offers in card format (read-only) - Each declined card shows: - Job title, company name, location - Decline date - Declined timestamp (Declined on [date] at [time]) - “View Details” button → Job Page with Decline Reason red box on top with timestamp (Declined on [date] at [time]) - Empty state: "No declined offers yet" and “Go to Jobs Page” button - Sorted by date (most recent first) - User Flow: - First-time visit to Applications: - Show appropriate empty states for each tab - Display helpful messages encouraging job search if no applications - Application lifecycle: - Worker applied for a job → job card appears in Applied tab - Application remains undecided by a manager (in Unprocessed or Ongoing statuses) + job start date comes (from job posting) → moves to Applications > Declined - Manager declines a candidate → moves to Applications > Declined - Manager sends offer → moves to Offers page > New - Offer Expired → stays in Offers > New, add red clock mask on company logo and Expired red box on top in Offer Details - Offer Expired + job start date comes (from offer) → moves to Offer > Declined - Worker accepts offer → moves to Placements > Pending - Worker declines offer → moves to Offers > Declined - Placement step 2 not completed → stays in Placements > Pending tab with “Awaiting” status, can be declined - Placement step 2 is done → stays in Pending tab with “Confirmed” status, cannot be declined - Placement step 3 done + job start date comes (from offer) → moves to Active Placements - Placement is active + job end date comes (from offer) → moves to Archived Placements - Worker declines “Awaiting” placement → moves to Offers > Declined - Empty State - Explanation text - Button: - Go to Jobs Page → Jobs Page - Notifications: - Real-time notification when new offer received - Badge on Applications tab shows count of unread offers - Push notification for new offers, offer about to expire and expired - details in epic 6 - Mobile Optimization: - Touch-friendly card size and buttons - Full-width cards on mobile - Responsive offer details modal - Clear action buttons for message/accept/decline - Confirmation dialogs are mobile-friendly

7.2.1 (не MVP)

7.3 Offers Management

User Story:

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

Описание: The Offers feature provides flexworkers with detailed information about job opportunities sent by managers/employers, as well as the lists of accepted and declined offers. Workers can view comprehensive offer details including manager notes, contract terms, and job requirements, then make informed decisions to accept or decline. This feature bridges the gap between job discovery and placement. alt size=16 style="background-blend-mode:normal;background-clip:content-box;background-position:50% 50%;background-color:rgba(0,0,0,0);background-image:var(--sf-img-10);background-size:100% 100%;background-origin:content-box;background-repeat:no-repeat"> BlinkSoftware [HF] [Main]

Критерии приёмки: - Offers Access Points: - Primary: - Work Page > Offers - Secondary: - Notification system (new offer received, offer expired - see Epic 6) - Count showing number of pending offers - Offers Page Header: - Page title: "Offers" - Three tabs: “New”, "Accepted" and "Declined" - Default to "New" tab - Tab badge showing count of items in each tab - nice to have - Orange dot new activity indicator, if there is a new New / Accepted / Declined application since last visit (mark as read once scrolled to it) - New Offers Tab - Displays all pending offers (not expired) - Card-based layout showing preview information: - Company name and logo (or placeholder) - Job title - Location - Hourly rate - Start date and end date - Match percentage badge - Red alert indicator if expiring within 24 hours - nice to have - Red clock mask on company logo if Offer expired - Expiry timestamp (Rexpires on [date] at [time]) - "View Offer Details" button → offer details page - Sorted by date (most recent first) - Lazy loading - Pull to refresh functionality - Empty state message if no new offers - Accepted Offers Tab - Displays all accepted offers (moved here after acceptance) - Same card layout as "New" tab for consistency - No Expiry Date - Accepted timestamp (Accepted on [date] at [time]) - "View Offer Details" button → offer details page - Sorted by acceptance date (most recent first) - Empty state message if no accepted offers, with “Go to Jobs Page” button - Declined Offers - Displays all declined offers (moved here after decline) - Same card layout as "New" tab for consistency - No Expiry Date - Declined timestamp (Declined on [date] at [time]) - "View Offer Details" button → offer details page - Sorted by decline date (most recent first) - Empty state message if no declined offers - Offer Details Page: - Header section: - “Offer Details” title - Back/close button - Job Section - Position name - Start-end dates (from the offer, not job description) - Badge showing current tab context (New/Accepted/Declined) - nice to have - Offer Message - Created by a manager - Expiry date - Bottom Section (sticky): - “Message” button → opens dialog with offer sender manager - "Accept" button → accept offer workflow - "Decline" button → decline offer workflow - If Offer is expired : - Offer expired red box on top with message: “This offer has expired. - Please contact the manager if you would like it to be renewed” - “Message” button → opens dialog with offer sender manager - "Decline" button → decline offer workflow - No Accept button - Accept Offer Workflow: - Clicking "Accept" shows modal/confirmation: - Heading: "Accept Offer" - Explanation text: "By accepting the offer from [company], you'll enter the placement process. - ID and work permit verification will be required" - "Accept" button → successful accept - "Cancel" button → go back to previous screen - On successful accept: - Success toast/notification: "Offer accepted!" - Automatic redirect to Placements > Pending tab - Offer moved to "Accepted" tab - New placement entry created in "Pending" tab with Step 1 active → user story

7.6 Error handling: Display error message if accept fails Retry button available Offer remains in offers list Decline Offer

7.3.1 (не MVP)

7.4 Placements Page

7.4 Placements Page To Do Preview

User Story:

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

Описание: The Placements Page provides a centralized view for flexworkers to manage their work placements across three states: Pending (awaiting confirmation steps), Active (ongoing work), and Archived (completed work). The page displays placement cards with relevant information and actions for each status category. alt size=16 style="background-blend-mode:normal;background-clip:content-box;background-position:50% 50%;background-color:rgba(0,0,0,0);background-image:var(--sf-img-10);background-size:100% 100%;background-origin:content-box;background-repeat:no-repeat"> BlinkSoftware [HF] [Main]

Критерии приёмки: - Placements Page Header: - Page title: "Placements" - Three tabs: "Pending", "Active", "Archived" - Default to "Pending" tab - Tab badge showing count in each tab - nice to have - Orange dot new activity indicator, if there is a new Pending / Active / Archived application since last visit (mark as read once scrolled to it) - Pending Tab - Placement Cards: - Each pending placement shows: - Company logo, Job Position, company name, location, distance (if applicable), Start Date, as in standard offer card information - Offer accepted timestamp (Accepted on [date] at [time]) - Status: - Awaiting - before step 2 completion (ID, Work Permit & Contract Signed) - Confirmed - after step 2 is completed - Text & Buttons: - If candidate did not register in Victoria-ID: - Warning text: “Please check your email and register on Victoria-ID so you can start the screening and confirm your placement” - “Proceed to Screening” button disabled - “View Details” button → Placement Details - If candidate registered in Victoria-ID, but at least one of the steps (ID Check, Work Permit & Contract Signing) not done yet: - Warning text: “Please finish the screening on Victoria-ID so you can confirm your placement” - “Proceed to Screening” button active → open Victoria-ID app - “View Details” button → Placement Details - If candidate registered in Victoria-ID, all steps (ID Check, Work Permit & Contract Signing) are done, and BSN and / or IBAN are missing / not verified: - Warning text: “You finished the screening in Victoria-ID and your placement is confirmed. - Now please finalize your documents and you are ready to go!” - “Finalize” button → opens “Documents in NL” profile page so that a candidate may enter / verify their BSN & IBAN - “View Details” button → Placement Details - If candidate registered in Victoria-ID, all steps (ID Check, Work Permit & Contract Signing) are done, and both IBAN & BSN are verified: - Green info text: “You finished the screening and finalized your documents. - You are all set up and your placement will become active once work start date comes!” - Single “View Details” button → Placement Details - View Details page for Awaiting Placement - On "View Details" button tap of a pending placement - Header section: - "Placement Details" title - Back/close button - Same as Offer Details layout + - No Expiry date - Offer accepted timestamp (Accepted on [date] at [time]) - "Draft of Placement Confirmation" with download button → downloads a Draft Placement Confirmation Document from MySolution - Bottom Section (sticky): - "Message" button → opens dialog with offer sender - "Decline" button → decline placement workflow (only if placement is of "Awaiting" status) - View Details page on Confirmed Placement: - If "View Details" clicked: - Full placement information: - Similar card structure, as for Awaiting Placement - Placement confirmed timestamp (Confirmed on [date] at [time]) - "Placement Confirmation" with download button → downloads a Placement Confirmation Document from MySolution - "Message" button → opens dialog with offer sender manager - No Decline button - Decline Placement Workflow: - Similar to Offer Decline workflow - Clicking "Decline" shows modal/confirmation: - Heading: "Decline Placement" - Explanation text: "You are about to decline a placement from [company]. Please select the reason why you are declining" - Reason selection: - "Not interested" - "Schedule doesn't work" - "Found another job" - "Rate too low" - "Other" (with text field) - "Decline" button → placement moved to Archived - "Cancel" button → go back to placement details - Decline button is active if only the reason is selected - On successful decline: - Success toast: "Placement declined" - Offer moved to Offers > Declined - Reason feedback sent to system/manager - Return to placements list - Error handling: - Display error if decline fails - Placement remains available to retry - Active Tab: - Display confirmed placements that are ongoing or future-scheduled - Each active placement card shows: - Similar card structure, as in Offer Details - "View Details" button → Placement Details page - "Payslips" button → Payslips page - Sorted by start date (newest first) - Empty state: "No active placements" - Placement Details for Active tab: - If "View Details" clicked: - Full placement information: - Similar card structure, as for Confirmed Placement - Placement confirmed timestamp (Confirmed on [date] at [time]) - "Placement Confirmation" with download button → downloads a Placement Confirmation Document from MySolution - "Message" button → opens dialog with offer sender manager - No Decline button - Archived Tab: - Display completed/ended placements - Each archived card shows: - Standard placement card - View Details button → Placement Details the same as for Active Placement - "Payslips" button -> Payslips page - Empty state: "No archived placements yet" - Sorted by end date (most recent first) - Empty State - Explanation text - Button: - Go to Jobs Page → Jobs Page - Notifications: - See details on notifications in epic 6 - Mobile Optimization: - Full-width cards and step displays - Touch-friendly buttons and file pickers - Clear visual progress indicators - Step layout adapts to mobile screen size - Performance: - Loading indicators while awaiting external service responses - No blocking of UI during verification - Optimized image uploads

7.4.1 (не MVP)

7.5 Payslips and Payment Documents U

7.5 Payslips and Payment Documents To Do Preview s

User Story:

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

Описание: The Payslips feature provides flexworkers with access to all payment documents generated from active placements. Workers can view payslips in an organized list, review payment details, and download documents for personal records and tax filing. alt size=16 style="background-blend-mode:normal;background-clip:content-box;background-position:50% 50%;background-color:rgba(0,0,0,0);background-image:var(--sf-img-10);background-size:100% 100%;background-origin:content-box;background-repeat:no-repeat"> BlinkSoftware [HF] [Main]

Критерии приёмки: - Payslips Page Header: - Page title: "Payslips" - No tabs (single unified view) - Orange dot new activity indicator, if there is a new Payslip since last visit (mark as read once scrolled to it) - Payslips List View: - Display all payslips in card format - Payslips sorted by date (most recent first) - Pull to refresh functionality - Lazy loading for performance - Card Layout: - Payslip displayed as cards - Each card shows: - Company name (bold header) - Period: - Date range - Amount: - Net payment amount (prominent) - Download button (icon) - Cards stacked vertically - Sufficient padding for touch targets - Download Functionality: - Download button for each payslip - Clicking download: - Triggers file download (PDF format) - Success notification: "Payslip downloaded" - File name: "Payslip_[Company]_[Period].pdf" - Downloads to user's default downloads folder - Multiple downloads allowed (no rate limiting) - Error handling if download fails - Empty State: - If no payslips available: - Message: "No payslips available yet" - Explanation: "Once you have an active placement, weekly payslips will appear here." - Icon/illustration - No action buttons needed - Payslip Availability: - Payslips only appear for active placements - Generated weekly for each active placement - Available immediately after payment processed - Push notification on new payslip (see Epic 6) - Historical payslips remain accessible indefinitely - Mobile Optimization: - Full-width cards on mobile - Touch-friendly layout - No horizontal scrolling needed - Performance: - Fast card rendering with many payslips - Download initiates quickly - No page freeze during download - Lazy loading for large payslip lists

7.5.1 (не MVP)

7.6 Placement Confirmation Steps Us

7.6 Placement Confirmation Steps To Do Preview

User Story:

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

Описание: The Placement Confirmation Steps feature manages the onboarding workflow required to activate a placement. It includes three sequential steps: ID/work permit verification, document signing, and document upload. Each step must be completed before the placement moves from Pending to Active status. alt size=16 style="background-blend-mode:normal;background-clip:content-box;background-position:50% 50%;background-color:rgba(0,0,0,0);background-image:var(--sf-img-10);background-size:100% 100%;background-origin:content-box;background-repeat:no-repeat"> BlinkSoftware [HF] [Main]

Критерии приёмки: - Card Display Information - Pending Placement Card Layout - Company logo - Job position title - Company name - Location - Distance (if applicable) - Start date - Offer accepted timestamp in format: "Accepted on [DD Mon YYYY] at [HH:MM]" - Current status badge (Awaiting or Confirmed) - Status Badge Display - "Awaiting" if Victoria-ID registration is incomplete OR at least one screening step (ID Check, Work Permit & Contract Signing) is not completed - "Confirmed" if Victoria-ID registration is complete AND all screening steps (ID Check, Work Permit & Contract Signing) are completed - Scenario 1: - Victoria-ID Not Registered - Victoria-ID Registration Not Complete - Warning Message - Warning message displays: "Please check your email and register on Victoria-ID so you can start the screening and confirm your placement" - Victoria-ID Registration Not Complete - Button States - "Proceed to Screening" button is disabled (visually grayed out/inactive) - "View Details" button is active and navigates to Placement Details page - Scenario 2: - Victoria-ID Registered but Screening Incomplete - Screening In Progress - Warning Message - Warning message displays: "Please finish the screening on Victoria-ID so you can confirm your placement" - Screening In Progress - Button States - "Proceed to Screening" button is active and opens the Victoria-ID app/application when clicked - "View Details" button is active and navigates to Placement Details page - Scenario 3: - Screening Complete but IBAN/BSN Missing/Unverified - Screening Complete, Documents Unfinalized - Warning Message - Warning message displays: "You finished the screening in Victoria-ID and your placement is confirmed. - Now please finalize your documents and you are ready to go!" - Screening Complete, Documents Unfinalized - Button States - "Finalize" button is active and opens the "Documents in NL" profile page when clicked - "View Details" button is active and navigates to Placement Details page - "Proceed to Screening" button is not displayed - Document Finalization Navigation - Flexworker is taken to the "Documents in NL" profile page where they can: - Enter their BSN (if missing) - Enter their IBAN (if missing) - Verify existing BSN and IBAN details - Scenario 4: - All Steps Complete and Documents Verified - Fully Confirmed - Success Message - Green success message displays: "You finished the screening and finalized your documents. - You are all set up and your placement will become active once work start date comes!" - Fully Confirmed - Button State - Only the "View Details" button is displayed and active, navigating to Placement Details page - "Proceed to Screening" and "Finalize" buttons are not displayed - Status Transition Requirements - Status Updates Correctly - Status badge immediately updates from "Awaiting" to "Confirmed" when Victoria-ID screening is completed (all steps done) - Placement Activation Timeline - Message indicates the placement "will become active once work start date comes" when all confirmation steps are complete and documents are verified, but the work start date has not yet arrived - Pending Tab Persistence - Placement remains visible in the Pending Tab until the start date is reached when status is confirmed but work start date has not yet come - Edge Cases - Multiple Placements in Various States - Each placement card independently displays correct status, explanation text, and buttons based on that specific placement's confirmation progress - Concurrent Victoria-ID Registration - Placement card updates to reflect "In Progress" state and enable the "Proceed to Screening" button when Victoria-ID registration is completed - Partial Document Submission - "Finalize" button remains active and warning message about completing documents is shown when BSN and / or IBAN is missing (both fields required for full verification) - Business Rules - No Placement Activation Before Start Date - Placement remains in "Pending" tab and cannot be manually activated by the flexworker when all confirmation steps are complete but the current date/time is before the work start date - Screening Step Completeness - Both ID Check AND Work Permit & Contract Signing must be completed to move past "Awaiting" status (all-or-nothing requirement) - Document Verification Requirement - Both BSN AND IBAN must be provided and verified for final confirmation (neither can be missing or unverified) - Mobile Requirements - Optimization: - Touch-friendly buttons and file pickers - Clear visual progress indicators - Step layout adapts to mobile screen size - Performance: - Document verification processes asynchronously - Loading indicators while awaiting external service responses - No blocking of UI during verification - Optimized image uploads

7.6.1 (не MVP)