Urgent.News

What's breaking now, across thousands of outlets.

Tech

Building a skill-assessment engine for hiring: timed tests, anti-cheat, and category-based matching

I've been building HireLyf, a hiring platform, and wanted to share how the core assessment engine works, since it's the part I spent the most time getting right. The problem: give candidates a fair, hard-to-cheat skill test that actually predicts job readiness, without needing a full proctoring vendor. What I built: A 40-question, 20-minute assessment split across 10-question sections,…

I have been developing HireLyf, a hiring platform, and I am eager to explain the workings of the core assessment engine, as it presented the most challenging aspect to perfect. The primary concern was to provide candidates with a fair, difficult-to-cheat skill test that accurately predicts job readiness, all without relying on a comprehensive proctoring service.

My solution involves a 40-question, 20-minute assessment divided into ten-question sections, dynamically pulled from a question bank covering SQL, coding, data structures, Python, React, and more. Candidates select their own test categories based on their listed skills, with English and aptitude always required. To prevent cheating, the platform incorporates an anti-cheat layer utilizing client-side signals such as tab-switch detection, window-blur tracking, copy/paste blocking, and cursor-leave detection.

These signals are amalgamated into a flag threshold, rather than triggering a hard block, as individual signals alone result in excessive false positives.

The scoring system remains out of 100, with 25 points awarded per section, irrespective of the number of questions presented. This ensures that the math remains consistent regardless of the test duration. The technology stack includes Next.js 14, MongoDB via Prisma, and is deployed on Vercel. I am willing to provide further details on any aspect of this process, particularly the anti-cheat calibration, which required multiple iterations to strike a balance between detecting deceitful behavior and avoiding false positives on the part of honest candidates.

For those interested in the full platform, it is available for early access at https://www.hirelyf.com.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Two Agents, Not Five

AI helped me ship more this summer. Learning to stop has been harder. Between 15 June and 17 August I committed code on 64 consecutive days. Then I took one day off and started again.

Some Space Optimisations

Given an integer array nums and an integer k, return true if there are two distinct indices i and j in the array such that nums[i] == nums[j] and abs(i - j) <= k MY FIRST APPROACH: A very valid…

  • First approach uses dictionary to store indices of array values
  • Second approach optimizes space with set of size k
  • Both methods find indices i, j with nums[i] == nums[j] and |i - j| = k

1,558 Tests Green and No Auth: The Tests That Never Actually Ran

A test named test_all_adapters_importable asserted nothing. It would pass forever, even if every adapter was broken. 57 of 65 assertion files were in the wrong format, and the harness returned 0 / 0…

  • Three issues cause green test suites with no actual tests.
  • 57 assertion files in wrong format in planner-critic-engine module.
  • CauterRule v0.3.0 reports 1,558 green tests due to missing import.

More from Saturday 19 September →