SAAS application Job Entry in React and Laravel

SAAS in React + Laravel – Job Entry

I created a SaaS (Software-as-a-Service) application for recruiters and job seekers called Job Entry, built with React JS and Laravel. It is a platform that allows recruiters to post jobs, specify the salary range, available vacancies, and provide a brief description of the job. Job seekers can apply for the job and attach their CVs as well.

Technical stack and architecture

  • Languages: PHP 8, Javascript V8 12
  • Frameworks: Laravel 12 (backend), React 19 (frontend, single-page application)
  • Libraries: Bootstrap 5, jQuery 3.6, Font awesome 6.5, Slick carousel, Axios, Sweetalert
  • Database: MySQL 5.7.39
  • Security: CSRF, XSS protection. SQL injection prevention.
  • Authentication: Laravel sanctum, Google auth
  • Payment methods: Stripe, Bank transfer
  • Storage: Laravel built-in storage
  • Mail: SMTP
  • Chat widget: Tidio
  • Deployment: Can be deployed on any shared hosting, VPS or dedicated.
  • Extra features:
    • Admin panel
    • Email notifications via SMTP

Posting a job

Recruiters can post a job by entering the job title, category (IT, marketing, etc.). Set if the job is remote, on-site, or hybrid, if the job is on-site or hybrid, then he also has to enter the location of the job. Either the job is part-time or full-time. Decide the salary range in your preferred currency. Number of available vacancies for the position and a little description about the job. They can also set the job as inactive when no longer needed.

All jobs must be approved by the admin. So, as soon as the recruiter posts a job or makes changes in a job, they are just for approval from the admin. There is an admin panel where the admin (You) can view all the jobs and you can approve or cancel them. Once the job is approved by the admin, it will start displaying in the job listing.

Business model

Customers who buy this project need a way to make money from it. So I implemented a feature that allows recruiter to pay to feature their job. Featured jobs appeared at the top in search results. This helps recruiters hire fast, saves time by 3x. For payment methods, I have added 2 payment methods: Bank transfer and Stripe. Bank transfer is if the user wants to pay manually, and Stripe is if the user wants to pay via their debit or credit card.

Job listing

Users can search for a job by job title, category, type (on-site, remote, or hybrid), location, nature (full-time, part-time), and in a salary range. In a job listing, each job shows:

  • Job title
  • The company logo can be set from the profile page.
  • Nature (full-time, part-time)
  • Salary range
  • Date when the job was posted
  • Bookmark icon (heart-shaped)
  • Apply button

Bookmark jobs

User will also see an option to bookmark their favorite jobs. This allows them to see all their favorite jobs on a separate page.

Applying for a job

From a job listing, a user can view the detail page of the job. From there, he can apply on the job and attach his/her CV with it. You can manage your CVs from our CV Manager. The user can upload multiple CVs and attach the relevant CV for each job.

Note: A Candidate cannot apply for the same job twice.

Recruiters can see all the applicants for their job and can change the status as well (shortlisted, interviewing, rejected, etc.). Unlike other platforms where they charge money to view the applicant’s details, here recruiters can see the applicant’s name, email, and their CV for free. Whenever the status of the application is changed, the applicant receives a notification about it.

Recruiter can also download all the CVs at once by selecting the applicants and clicking the “Download” button. The download will be a zip file with all the selected CVs in PDF.

Follow a company

Job seekers can automatically get notifications whenever a new job is posted by a company by following them. There is a button on each job detail page from which you can “Follow” a company. Once followed, then, whenever that company posts a new job, all the users who are following that company will receive an email. Of course, they can remove the company from the following list if they no longer want to receive emails.

Admin panel

Admin of this website (You) will be able to manage all the users, jobs, newsletter etc. You can add or remove the user who violates your policy. All the jobs are posted before approving from admin. If you find any job suspicious, you can cancel or simply ignore it. Admin can see all the payments he has received. Admin can also manage all the categories where jobs will be posted.

Note: Deleting a category from admin panel will NOT remove the jobs in that category.

Admin can see all the messages he has received from “Contact us” form and he can also view list of all users who has subscribed on your website via newsletter.

Marketing emails

Admin can create campaigns to send marketing emails. So, you can turn users who subscribed to your website via newsletter, into your customers. On admin panel, you will see all users who has subscribed to you. You just need to create a campaign, set the title (subject) and content of email, select the users whom you want to send the marketing email, and start the campaign. We are using cron jobs to send 30 emails every hour. Once the email is sent to all the users, the campaign will automatically be marked as “completed”.

Job seeker profile – Get hire fast

Job seekers can find a job faster by creating their profile. They can add the projects they have developed, along with the URL for recruiters to see the live demo. They can enter their education, how many degrees they have got and from which institutes. Experiences are the corner stone of a job seeker profile, it tells the recruiter how many years of experience they have and in which companies they has worked before. If you got any certificates, you can add them too and boost your profile. You can tell the recruiter your job preferences, for which positions you are looking for a job, what is your desired salary, in which cities you are willing to relocate and your skillset.

Posts

You can share posts to give updates about yourself. For example, a new project is completed, landed a new job etc. This gives a positive view of your’s to the recruiter because it shows that you are active in your community and upto-dated.

Login with Gmail

Users can login using their Gmail account with just one click. The account will automatically be created if the user does not exists. So user did not have to do registration if he decides to login with his Gmail account. This is also helpful because users do not have to remember their password. Some people save their passwords in a password-protected text file, but that is still an extra step.

Password-less authentication

If you do not want to link your Gmail account with this platform, you can still use our password-less authentication system. This allows you to just enter your email address, we will send you an email with a unique code in it. You need to enter that code and you will be logged-in automatically. This also saves you the hassle to remember or keep track of another password. The code expires after 10 minutes for security purpose.

Employees

Companies can add employees in their list and they will be show on company detail page. This helps the candidates know that how many employees are currently working in that company. To add an employee, you need to enter the email address of the employee (the employee must be a user of Job Entry platform). It will send an invitation to the employee. Only when the invitation is accepted by the employee, you will be able to see him on company detail page. When employee left the company, he has the option to remove himself from the company. Or the company can also remove an employee from it’s list.

Chat between recruiters and candidates

There is an option for candidates and recruiters to have a chat between them. If you are a recruiter, you can just goto the candidate’s profile, there will be a button for chat. When clicked, you will see a Facebook like chat widget on bottom right of your screen. You can have a chat with 3 people at-a-time. You can also find all your chats on a separate “inbox” page. This helps recruiters to approach a potential candidate. This will also help candidate reach out to recruiters and ask for work.

Practical applications

This job board platform can be used for niche market as well. You can use this to launch a platform to tech jobs only. Or you can launch a job board where people can find remote jobs. This can also be used for healthcare, education and construction etc. platforms too where you can find doctors, teachers or workers respectively. You can use this platform to launch a freelance platform like fiverr.com, upwork.com or peopleperhour.com, we will provide you customization services as well.

Companies can also use this platform to post internal hiring. This way they can separate themselves from the other crowded job board platforms. They will have their own dedicated hiring platform.

Wrapping Up

So that was our SAAS application called Job Entry developed in React and Laravel. We also provide customization services, so if you want to add, remove or change features and design for this, kindly do let me know.