Project Requirements Documentation

Executive Summary

EmploiF1rst aims to address the challenges faced by new graduates in Canada as they enter a competitive job market characterized by high demand for experience. By creating a dedicated platform, we strive to connect recent graduates with entry-level job opportunities across various industries, fostering a smoother transition from academic life to professional careers. This platform is designed for recent graduates and students nearing graduation, empowering them to transition seamlessly from academic life to the professional world. Users will access EmploiF1rst through a web application, allowing them to search for jobs, access resources, and connect with potential employers all in one place.

Glossary

  • Job Listing - It is a detailed description of a job opportunity, posted by an employer, including the job title, description, required qualifications, and application instructions.
  • Job Board - It is a digital platform where employers post job listings, and job seekers search for open positions
  • Entry-level - It is a job position that requires minimal to no professional experience, typically aimed at recent graduates or individuals starting their careers
  • Search Filters - It is a criteria used by job seekers to refine their job search, such as location, job type, industry, and experience requirements.
  • Job Alert - It is a notification system that informs job seekers of new job listings that match their predefined search criteria.
  • Application Tracking - It is a system that allows job seekers to track the status of their job applications, from submission to acceptance or rejection.

User Stories

Priority Summary Table

Must Have Should Have Could Have Would Like But Won’t Get
US 01.01 US 01.03 US 01.05 US 01.09
US 01.02 US 01.07 US 01.12 US 02.06
US 01.04 US 01.08 US 02.11 US 02.07
US 01.06 US 02.05 US 04.01 US 03.02
US 01.10 US 04.02
US 01.11 US 04.03
US 01.13 US 04.04
US 02.01 US 04.05
US 02.02 US 04.06
US 02.03
US 02.04
US 02.08
US 02.09
US 02.10
US 03.01

Recent Graduate User Stories

US 01.01 (Must Have)

Description: As a recent graduate, I want to log in as a recent graduate using my google / apple email so I can login to my account quickly.
Story Points: 4

Acceptance Tests

  • Given the user is on the login page, when they choose to log in using Google or Apple, they are redirected to the respective OAuth provider
  • When the user successfully authenticates via Google or Apple, they are redirected back to the web application and automatically logged in.
  • If authentication fails, the user should see an appropriate error message (e.g., "Failed to log in. Please try again.").

US 01.02 (Must Have)

Description: As a recent graduate, I want to see dashboards that display a list of recruitments so I can efficiently look through recruitment postings.
Story Points: 8

Acceptance Tests

  • Given the user is logged in, when they access their dashboard, they should see a list of available job recruitments relevant to their profile.
  • The list should display at least the job title, company, location, and a short job description.
  • The user should be able to scroll through the list and click on individual job postings for more details.

US 01.03 (Should Have)

Description: As a recent graduate, I want my application to be auto filled so application is more streamlined and quick.
Story Points: 9

Acceptance Tests

  • Given the user is logged in, when they navigate to the application, they should have the option to auto-fill the form with information from their profile
  • The auto-fill should include fields like name, contact information, education, and work experience.
  • If the user chooses not to auto-fill, they can manually input their details.
  • The user should be able to review and edit the auto-filled content before submission.

US 01.04 (Must Have)

Description: As a recent graduate, I want to track my application status so I can be up to date on the application stage an application is in or if it has been closed.
Story Points: 6

Acceptance Tests

  • Given the user is logged in, when they navigate to the "My Applications" section, they should see a list of all jobs they have applied to.

US 01.05 (Could Have)

Description: As a recent graduate, I want to be able to get matched to recommended jobs so that I can more easily find a job suited for my skillset.
Story Points: 8

Acceptance Tests

  • Given the user is logged in, when they visit their dashboard, they should see a section titled "Recommended Jobs."
  • The recommendations should be based on the user’s profile, resume, location, and previous job applications.
  • Each recommended job should display relevant details like job title, company, and location.
  • The user should be able to apply directly from the recommendation list or view more details.

US 01.06 (Must Have)

Description: As a recent graduate, I want to be notified when an application is closed so I know if a company has already filled the position.
Story Points: 5

Acceptance Tests

  • Given the user has applied for a job, when the employer closes the job listing, the user should receive a notification (e.g., via email or in-app).
  • The notification should inform the user that the job is no longer accepting applications.
  • The application status should be updated to "Closed" in the user's "My Applications" section.

US 01.07 (Should Have)

Description: As a recent graduate, I want to be able to filter jobs by employment status so I can apply to part-time or full time positions more efficiently.
Story Points: 7

Acceptance Tests

  • Given the user is on the job search page, they should be able to filter jobs by employment status (e.g., Full-Time, Part-Time, Internship).
  • When the user selects an employment status filter, only jobs that match the selected status should be displayed.
  • The filter should be easy to apply and remove as needed.

US 01.08 (Should Have)

Description: As a recent graduate I want to be able to filter jobs by location so I can more easily apply to jobs in locations I am able to work in.
Story Points: 7

Acceptance Tests

  • Given the user is on the job search page, they should see a filter option for job location.
  • When the user selects a location, only jobs within the specified area should be displayed.
  • The user should be able to enter a city, region, or postal code to filter jobs.
  • The filter should be easy to apply and remove.

US 01.09 (Would Like But Won’t Get)

Description: As a recent graduate, I want to see reviews from other users of a company so I can learn more about the company before possible application.
Story Points: N/A

Acceptance Tests

  • Given the user is viewing a job posting, they should be able to see reviews of the company from other users.
  • Reviews should include a rating (e.g., out of 5 stars) and written feedback from users.
  • The user should be able to sort reviews by rating or date.
  • The user can view detailed reviews on a separate page or as part of the job details.

US 01.10 (Must Have)

Description: As a recent graduate, I want to easily apply to jobs to quickly complete my application so I can possibly apply to more positions in less time.
Story Points: 6

Acceptance Tests

  • Given the user is viewing a job posting, they should see an "Apply Now" button prominently displayed.
  • Clicking "Apply Now" should lead to an application form that is either auto-filled (if resume data is available) or asks for the necessary information.
  • After completing the form, the user should be able to submit the application quickly and receive a confirmation of submission.

US 01.11 (Must Have)

Description: As a recent graduate, I want to be able to view/edit my profile so I can keep my information up to date for application.
Story Points: 8

Acceptance Tests

  • Given the user is logged in, when they visit the "My Profile" section, they should be able to see all their profile information (e.g., name, contact info, education, experience).
  • The user should have the option to edit their profile by clicking an "Edit Profile" button.
  • Any changes made to the profile should be saved and updated in real-time.
  • The user should receive confirmation when their profile is successfully updated.

US 01.12 (Could Have)

Description: As a recent graduate, I want to be able to star job postings I want to apply to in the future so I can keep track of job postings which have interested me.
Story Points: 8

Acceptance Tests

  • The User can star the job postings in the job dashboard.
  • When the 'starred jobs' filter is selected, user can see that starred posting.
  • The User can un-star the job posting from the job dashboard.
  • When the 'starred jobs' filter is seleceted, the job posting is no longer in the dashboard.

US 01.13 (Must Have)

Description: As a recent graduate, I want to register/sign-in using built-in system so that I can have personalized credentials for this website.
Story Points: 4

Acceptance Tests

  • Given the user is on the login page, when they choose to log in using correct credentials, they are redirected to the applicant dashbaord.
  • When the user enter wrong credentials, they get an error message and fail to enter the dashboard.
  • Given the user is on the register page, when they choose to input correct credentials, they are redirected to the applicant dashbaord.
  • When the user enters email which is already being used, they get an error message and fail to enter the dashboard.

Recruiter User Stories

US 02.01 (Must Have)

Description: As a recruiter, I want to log in as a recruiter using my google / apple email so I can login to my account quickly.
Story Points: 4

Acceptance Tests

  • Given the recruiter is on the login page, when they choose to log in using Google or Apple, they should be redirected to the respective OAuth provider.
  • When the recruiter successfully authenticates via Google or Apple, they should be redirected back to the web application and automatically logged in.
  • If authentication fails, the recruiter should see an appropriate error message (e.g., "Failed to log in. Please try again.").
  • Upon successful login, the recruiter should be directed to their personalized recruiter dashboard.

US 02.02 (Must Have)

Description: As a recruiter, I want dashboards that allow us to post job recruitments so I can efficiently post jobs to search for applicants.
Story Points: 5

Acceptance Tests

  • Given the recruiter is logged in, when they access their dashboard, they should see an option to "Post a Job."
  • When the recruiter clicks on "Post a Job," they should be directed to a form where they can enter job details (e.g., job title, description, requirements, salary, location).
  • Upon submitting the form, the job should be posted and appear on the job listings page.
  • The recruiter should receive confirmation that the job has been successfully posted.

US 02.03 (Must Have)

Description: As a recruiter, I want to see the list of applicants for each job posting so I can easily access applicant information.
Story Points: 6

Acceptance Tests

  • Given the recruiter is logged in and viewing their job postings, they should see a list of applicants who have applied to each job.
  • The list should display the applicant’s name, education, and basic profile information.
  • The recruiter should be able to click on each applicant to view more details (e.g., resume, cover letter).

US 02.04 (Must Have)

Description: As a recruiter, I want to review the resumes of applicants so I can easily access applicant resume details.
Story Points: 8

Acceptance Tests

  • Given the recruiter is viewing the list of applicants, they should be able to click on an applicant's name to open and review their resume.
  • The resume should display all relevant details (e.g., education, experience, skills) in an easy-to-read format.
  • The recruiter should have the option to download or print the resume.
  • If a resume is not available, the recruiter should see a message indicating that the applicant has not uploaded a resume.

US 02.05 (Should Have)

Description: As a recruiter, I want to set the recruitment status so I can keep the job posting's hiring status up to date.
Story Points: 2

Acceptance Tests

  • Given the recruiter is viewing a job posting, they should have the option to set the status of the recruitment (e.g., Open, Closed, In Review).
  • When the recruiter changes the status, the new status should be reflected on the job listing and in the applicant's status view.
  • Applicants should be notified if the status changes to "Closed" or "In Review."

US 02.06 (Would Like But Won’t Get)

Description: As a recruiter, I want to be able to get matched to recommended applicants so I can efficiently find possible good applicants.
Story Points: N/A

Acceptance Tests

  • Given the recruiter is logged in, they should see a "Recommended Applicants" section based on job criteria (e.g., skills, location, experience).
  • The recommendations should show applicants who fit the job requirements and are available for hire.
  • The recruiter should be able to click on each recommended applicant to view their profile and resume.

US 02.07 (Would Like But Won’t Get)

Description: As a recruiter, I want to be able to star applicants I want to review so I can keep track of applicants I want to review further.
Story Points: 7

Acceptance Tests

  • Given the recruiter is viewing a list of applicants, they should see a star icon next to each applicant’s name.
  • When the recruiter clicks the star icon, the applicant should be added to a "Starred Applicants" list for further review.
  • The recruiter should be able to access the starred list from their dashboard and remove applicants from it as needed.

US 02.08 (Must Have)

Description: As a recruiter, I want to be able to view/edit profile so that I can keep my information up to date for applicants.
Story Points: 8

Acceptance Tests

  • Given the user is logged in, when they visit the "My Profile" section, they should be able to see all their profile information (e.g., name, contact info, company name, company type).
  • The user should have the option to edit their profile by clicking an "Edit Profile" button.
  • Any changes made to the profile should be saved and updated in real-time.
  • The user should receive confirmation when their profile is successfully updated.

US 02.09 (Must Have)

Description: As a recruiter, I want to register/sign-in using built-in system so that I can have personalized credentials for this website.
Story Points: 4

Acceptance Tests

  • Given the recruiter is on the login page, when they choose to log in using correct credentials, they are redirected to the recruiter dashbaord.
  • When the user enter wrong credentials, they get an error message and fail to enter the dashboard.
  • Given the recruiter is on the register page, when they choose to input correct credentials, they are redirected to the recruiter dashbaord.
  • When the user enters email which is already being used, they get an error message and fail to enter the dashboard.

US 02.10 (Must Have)

Description: As a recruiter I want to be able to view a list of all my job postings so that I can track the number of applicants for the posting.
Story Points: 8

Acceptance Tests

  • Given the user is logged in, when they access their dashboard, they should see a list of all the job postings they have created.
  • The list should display at least the job title, company, location, a short job description, application deadline and the number of applicants.
  • The user should be able to scroll through the list and click on individual job postings for more details.

US 02.11 (Could Have)

Description: As a recruiter I want to be able to sort applicants by skills match/job description.
Story Points: 7

Acceptance Tests

  • Given the user is logged in, when they access their dashboard, they should see a list of all the applicants on a job post.
  • The list should be sortable by applicants skillset.
  • The list should be sortable by how the applicant matches the job description.

General User Stories

US 03.01 (Must Have)

Description: As a user, I want to see the description about the website so I can quickly understand the purpose of the website.
Story Points: 1

Acceptance Tests

  • Given the user is on the homepage, they should see a section labeled "About Us" or "What We Do."
  • The description should be easy to read and located prominently on the page.

US 03.02 (Would Like But Won’t Get)

Description: As a user, I want to filter the jobs by their properties so I can quickly find jobs I am interested in applying for.
Story Points: N/A

Acceptance Tests

  • Given the user is on the job search page, they should see filters that allow them to filter jobs by various properties (e.g., employment status, location, industry, salary).
  • When the user applies a filter, the job list should update to show only the jobs that match the selected criteria.
  • The user should be able to remove or adjust the filters easily.

Admin User Stories

US 04.01 (Could Have)

Description: As an administrator, I want to be able to view all users so I can efficiently track of all accounts registered on the website.
Story Points: 5

Acceptance Tests

  • Given the administrator is logged in, when they navigate to the "Users" section, they should see a list of all registered users (both graduates and recruiters).
  • The list should display basic information such as the user’s name, email, role (graduate or recruiter), and registration date.
  • The administrator should be able to search for specific users using filters (e.g., name, email).

US 04.02 (Could Have)

Description: As an administrator, I want to be able to view all job postings so I can efficiently track all the job postings created on the website.
Story Points: 6

Acceptance Tests

  • Given the administrator is logged in, when they navigate to the "Job Postings" section, they should see a list of all active job postings.
  • The list should display information such as the job title, company, posting date, and status (open or closed).
  • The administrator should be able to search or filter job postings by properties such as date, company, or job title.

US 04.03 (Could Have)

Description: As an administrator, I want to be able to remove users so I can delete invalid/inactive user accounts if needed.
Story Points: 4

Acceptance Tests

  • Given the administrator is viewing the user list, they should see an option to "Remove" or "Deactivate" users.
  • When the administrator clicks "Remove" on a user, they should see a confirmation prompt (e.g., "Are you sure you want to remove this user?").
  • Upon confirmation, the user should be removed, and their account should no longer be active.
  • The administrator should receive confirmation of the successful removal of the user.

US 04.04 (Could Have)

Description: As an administrator, I want to be able to remove job postings so I can delete invalid/inactive job postings if needed.
Story Points: 4

Acceptance Tests

  • Given the administrator is viewing the list of job postings, they should see an option to "Remove" or "Close" job postings.
  • When the administrator clicks "Remove" on a job posting, they should see a confirmation prompt (e.g., "Are you sure you want to remove this job posting?").
  • Upon confirmation, the job posting should be removed from the job listings.
  • The administrator should receive confirmation of the successful removal of the job posting.

US 04.05 (Could Have)

Description: As an administrator, I want to be able to login as admin.
Story Points: 6

Acceptance Tests

  • Given the administrator is viewing their login page, they should be able to login and be redirected to the authentification page.
  • When the administrator fails to login, a failure message should appear.
  • Upon successful login, administrator should be redirected to their profile and dashboards.

US 04.06 (Could Have)

Description: As an administrator, I want to be able to edit/view my profile.
Story Points: 5

Acceptance Tests

  • Given the administrator is logged in, they should be able to view their profile and click on it to further inspect the details
  • When the administrator clicks on a field, they should be able to update the field values.
  • The administrator should receive confirmation of the successful update of profile field.

Similar Products

  1. LinkedIn - A professional networking platform that allows users to connect, network, and find job opportunities. Although it provides job listings and resources, its emphasis is on professionals with experience, making it less accessible for recent graduates.
    Inspiration: EmploiF1rst may combine job search with professional networking, allowing users to connect with employers and peers. It may also feature job recommendations based on user profiles.

  2. SimplyHired - A job search engine that aggregates job listings from across the web. It offers a user-friendly interface, but like other platforms, it doesn’t specialize in entry-level roles tailored for new graduates.
    Inspiration: EmploiF1rst can take cues from its clean design, focusing on a straightforward user experience that allows easy navigation through entry-level job postings.

  3. Zip-Recruiter - An online employment marketplace. It allows recruiters to post job openings and use AI tools to match and recommend qualified candidates. Since this is also open to all kinds of job seekers, recent graduates are less highlighted among the candidates.
    Inspiration: EmploiF1rst can benchmark their AI matching algorithms or programs between recruiters and recent graduates, enhancing the interactions between them.

Open Source Products

  1. JobberBase - JobberBase is an open-source job board platform built with PHP. It is designed to allow users to post job listings and for job seekers to find and apply for job opportunities.
    Inspiration: It provides basic job board functionalities, including job posting, searching, and filtering, along with an admin dashboard for managing listings. A similar posting form can be implemented in EmploiF1rst.

  2. WP Job Manager - Offers a complete job board solution within WordPress, including job listings, search, and resume submissions.
    Inspiration: WP Job Manager’s simple frontend job submission process, job alerts, and resume management can be adapted for EmploiF1rst, improving user experience for new graduates and employers seeking entry-level talent.

Technical Resources