How We Built AI Job Search on Laravel and MySQL

We developed an AI job search that improved the accuracy of job matching for candidates.

---

Launching AI Job Search on Laravel and MySQL

Recently, our team had a discussion in Slack about how to make job searches more relevant for candidates. One of the developers suggested using AI to enhance matching accuracy, and we decided that this was exactly what we needed. This solution was to be implemented on Laravel with MySQL as the database.

Why It Was Important

The existing search mechanism did not meet user needs: candidates often struggled to find suitable jobs or received irrelevant results. This led to dissatisfaction and decreased trust in our platform. The consequences were serious — a decline in applications for job postings and, consequently, a reduced flow of candidates to the /jobs and /for-candidates pages. We needed to understand how to leverage AI to change the situation.

The Problem in Detail

Job searches often returned results that did not align with candidates' experience or preferences. For instance, one user with a marketing background was shown job postings for technical specialists. This not only caused frustration but also reduced the effectiveness of the search. Our task was to find a way to make the search smarter and more adaptive to user needs.

Initial Attempts

We started with a simple approach — trying to improve the existing search algorithm by adding some filters. However, this solution did not yield significant results. We quickly realized that it was not enough to just enhance filtering. Our team concluded that we needed more data and more complex algorithms to process queries.

Technical Approach

Ultimately, we chose a machine learning-based approach that allowed us to utilize data from past user interactions with the platform to create more accurate recommendations. We integrated a natural language processing (NLP) library that analyzed resumes and matched them with job postings.

// Example code for processing queries
public function searchJobs($query) {
    $results = Job::where('title', 'LIKE', '%' . $query . '%')
        ->orWhere('description', 'LIKE', '%' . $query . '%')
        ->get();
    return $results;
}

This code became part of a more complex system that took into account not only text matches but also contextual data such as candidates' preferences and activity on the platform.

Changes in the Product

After implementing the new search, we noticed significant changes in user experience. Candidates began receiving more relevant job postings, which led to an increase in application rates. Moreover, we received positive feedback on the /for-candidates and /companies pages, where users noted that they were now finding exactly what they were looking for. This improvement also contributed to an increase in subscriptions to paid services on the /pricing page.

What We Learned

  • Simple improvements to existing algorithms do not always yield the expected results.
  • Utilizing user behavior data allows for the creation of more accurate algorithms.
  • Integrating NLP can significantly enhance search quality.
  • It is important to test different approaches and not be afraid to abandon initial ideas if they are not working.
  • User feedback is key to understanding the effectiveness of changes.

What This Means for Candidates

For candidates, this means that the job search process has become more intuitive and efficient. You can expect the search engine to consider your skills and preferences, offering you more suitable job postings. This will significantly reduce the time spent on job searching and increase the likelihood of finding the ideal opportunity.

What This Means for Recruiters

For recruiters, this opens new opportunities for attracting the right candidates. More accurate searches will allow them to find specialists that match their requirements more quickly. This means they can fill vacancies more efficiently and reduce the time spent searching for suitable employees.

Next Steps

Despite the successes achieved, we continue to monitor the performance of the new algorithm. In the future, we plan to add more parameters for analysis and improve data processing. If we had to go back, we would focus more on testing in the early stages to avoid some mistakes. We are confident that further improvements will lead to even higher satisfaction for both users and recruiters. ---

Related materials

  • Code screenshot plannedПример кода поиска вакансий
    Код, реализующий базовый функционал поиска вакансий с учетом текстовых совпадений.
  • Chart plannedУвеличение числа откликов на вакансии
    График, показывающий динамику откликов на вакансии до и после внедрения AI-поиска.

Also on Fitlane AI

Topics: AI-поиск вакансий, Laravel, MySQL, поиск, алгоритмы, вакансии, подбор