How We Taught AI to Distinguish a Real Senior Go Developer from AI Hallucinations

We implemented deterministic filters and qualification signals to reduce AI errors in candidate evaluation.

---

Why This Was Necessary: The First Alarm in Slack

One day in Slack, we saw a message from one of our recruiters: "It seems that the AI doesn't understand what it means to be a Senior Go Developer." This was not just a complaint—it touched on our entire recruitment system. We began to realize that errors in candidate evaluation could lead to a waste of time and resources for our team and the companies we work with.

Context of the Problem

In today's world, recruiting requires high accuracy. We aimed to use AI to automate candidate evaluation, but with each new application, we faced increasing issues with AI hallucinations. Candidates who clearly did not meet the qualifications were advancing to the next stage. This created dissatisfaction among recruiters and reduced trust in our platform.

The Problem in Detail

One striking example was a recent resume that entered our system. The candidate claimed to have 10 years of experience in Go, but there were no mentions of specific projects or technologies related to this platform in their profile. The AI identified them as a strong candidate, but upon closer inspection, we realized it was just a hallucination.

Initial Attempts at Solutions

Our first attempt involved using simple keywords to filter resumes. However, as practice showed, this did not solve the problem. Candidates with insufficient experience still made it into the system. We even considered introducing multi-level testing, but that increased the time and resources spent on selection.

Technical Approach

Ultimately, we decided to combine several approaches. We added deterministic filters that checked for specific technologies and projects in resumes. We also implemented qualification signal analysis, taking into account not only experience but also participation in open-source projects or publications. Additionally, we used cached GPT explanations for deeper analysis.

func filterCandidates(candidates []Candidate) []Candidate {
    var qualified []Candidate
    for _, candidate := range candidates {
        if hasRelevantExperience(candidate) && isSenior(candidate) {
            qualified = append(qualified, candidate)
        }
    }
    return qualified
}

What Changed in the Product

After implementing the new filters and analysis methods, we noticed a significant decrease in the number of candidates with unrealistic expectations. This allowed recruiters to focus on truly qualified specialists, thereby improving the quality of selection. We also updated the /jobs and /for-companies pages to reflect the new approach to candidate evaluation.

What We Learned

  • Fact-checking is more important than it seems. Simple keywords won't provide an accurate picture.
  • Deterministic filters can significantly improve output quality.
  • Feedback from recruiters is key to improving processes.
  • Using cached data helps reduce query processing time.

What This Means for Candidates

For candidates, this means that their resumes will be analyzed based on real skills and experience. We strive to create a fairer and more transparent recruitment system where your achievements are valued. It also means that candidates will have a higher chance of getting an interview if their qualifications meet the requirements.

What This Means for Recruiters

Recruiters can be confident that the system effectively filters candidates, allowing them to focus on more important aspects of their work. This will save time and improve the quality of hiring. Moreover, they will be able to provide better recommendations based on accurate data.

Next Steps

Despite the progress made, we understand that the work is not finished. We continue to monitor the quality of analysis and are ready to make changes to algorithms as needed. If we had the opportunity to go back to the beginning, we might have integrated more complex analysis methods right away to avoid the initial difficulties. ---

Related materials

  • Chart plannedСравнение точности до и после улучшений
    График, показывающий изменения в количестве ошибок ИИ в оценке кандидатов.
  • Architecture diagram plannedСтруктура нового процесса оценки
    Схема, объясняющая новый подход к фильтрации кандидатов.

Also on Fitlane AI

Topics: ИИ-галлюцинации, оценка кандидатов, Senior Go разработчики, технологии подбора, умный отбор, AI в HR, детерминированные фильтры, сигналы квалификации, для компаний, для кандидатов