Urgent.News

What's breaking now, across thousands of outlets.

Tech

My screener recommended every job it could not read

This is a submission for DEV's Summer Bug Smash: Clear the Lineup powered by Sentry . Project Overview Today I wrote a screener for a freelance job board. One category alone holds ~800 open postings, most of which I can rule out from the text: the ones that require a video interview, the ones restricted by age or gender, the ones that want your personal anecdotes, and — the one that actually…

This report details issues with a screener tool used for a freelance job board, powered by Sentry. The tool is divided into two stages: parsing the job listings and fetching the detailed pages for further testing. The primary issue lies in the second stage where failed fetches were incorrectly considered as endorsements, leading to an increased shortlist of unreadable job postings.

Bug 1: Failed fetch was an endorsement

The second stage of the tool fetched each job's detail page and tested the body text against nine disqualifier regexes. However, when a fetch failed, the resulting empty string was mistakenly considered as satisfying all the disqualifier regexes, causing the job to be recommended without proper evaluation. This issue led to a flaw in the shortlist generation, as failed fetches were silently converted into positive recommendations.

To fix this bug, the tool was modified to give a specific outcome for "cannot look" (HTTP errors, 404, expired sessions, rate-limited responses) and to check twice before recommending a job. The revised implementation now properly handles these cases and adds them to the "unreadable" list, ensuring that only properly evaluated and disqualifiable jobs are recommended.

Bug 2: Zero results, silently

Another issue arose when the tool fetched the search URLs directly instead of navigating to the job listings. While the fetch returned an HTTP 200 and well-formed HTML, the parsed HTML contained no job postings. This resulted in a misleadingly high count of zero results for various keywords, which could mislead the user into believing that there were no relevant job postings.

To address this issue, the tool was modified to verify that the parser successfully extracted job postings from the fetched HTML. If the parser was unable to find any job postings, the tool now marks the job as "unreadable" instead of silently including it in the shortlist. This change ensures that only jobs that can be properly evaluated are recommended, improving the overall quality of the shortlist.

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

How to record Google Meet and Zoom calls with dual audio using the HTML5 MediaRecorder API

Recording virtual meetings like Google Meet or Zoom often comes with annoying hurdles: 5-minute freemium limits, forced software installations, or needing explicit host permission just to record local…

  • HTML5 MediaRecorder API captures dual audio for Google Meet/Zoom
  • navigator.mediaDevices.getDisplayMedia captures screen video and system audio
  • MediaRecorder encodes video and audio into downloadable WebM/MP4 file

More from Saturday 22 August →