<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Pranjal Sharma</title>
    <description>The latest articles on DEV Community by Pranjal Sharma (@pranjal_detoxify).</description>
    <link>https://dev.to/pranjal_detoxify</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3977469%2F6d3b8de2-6661-4a5e-9c7a-1a96c1956d1b.png</url>
      <title>DEV Community: Pranjal Sharma</title>
      <link>https://dev.to/pranjal_detoxify</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pranjal_detoxify"/>
    <language>en</language>
    <item>
      <title>Here's how I made a ghost job detector and what went wrong</title>
      <dc:creator>Pranjal Sharma</dc:creator>
      <pubDate>Wed, 10 Jun 2026 10:57:31 +0000</pubDate>
      <link>https://dev.to/pranjal_detoxify/heres-how-i-made-a-ghost-job-detector-and-what-went-wrong-3jm5</link>
      <guid>https://dev.to/pranjal_detoxify/heres-how-i-made-a-ghost-job-detector-and-what-went-wrong-3jm5</guid>
      <description>&lt;p&gt;So, let's first start with introductions. I am Pranjal Sharma, founder of &lt;a href="https://detoxify-ten.vercel.app/" rel="noopener noreferrer"&gt;Detoxify&lt;/a&gt;, a platform striving to make hiring transparent and fair.&lt;/p&gt;

&lt;p&gt;I launched my website with a feature, ghost job detection. Although I deactivated it due to insufficient denand, I still think of it as a useful thing. So, here's how it worked:&lt;/p&gt;

&lt;p&gt;I first needed some patterns common in jobs. I asked ChatGPT to find such patterns over internet and explicitly stated to not add any by itself. I then checked top results and found common pattern on which I focused.&lt;/p&gt;

&lt;p&gt;I found patterns like, salary unmentioned, overloading of work on a role, excess ownership expectations.&lt;/p&gt;

&lt;p&gt;Now, I needed to find these patterns in new jobs. I found two options; &lt;/p&gt;

&lt;p&gt;Train AI to detect these patterns&lt;br&gt;
Use rule based logic&lt;/p&gt;

&lt;p&gt;AI was definitely a better choice. But I didn't have enough data and found some unfamiliarity + issues with API. So, I resorted to rule based logic.&lt;/p&gt;

&lt;p&gt;I first built some basic classifiers, like salary classifier (Salary and equity detections, regex used), Company stage classifier (detecting stage of a company from job descriptions), Seniority classifier (classifying seniority of a role), and skills classifier (identifying skills required in the jobs). &lt;/p&gt;

&lt;p&gt;I built a dictionary with some basic words for detection like &lt;br&gt;
"senior", "senior specialist" for Seniority detection. The dictionaries contained 20+ words for each classification in each classifier. &lt;/p&gt;

&lt;p&gt;I, then built the input script, to take a JD, split it into a words list, check how similar those words are to the words put into the dictionaries for classifiers, like previously mentioned senior and senior specialist, and if they are very similar, then input tokens are changed to those words. This relieved me from adding every similar word which could indicate a classification, as similar words were changed to their already entered counterparts.&lt;/p&gt;

&lt;p&gt;Finally, by combination of results from classifiers, I could obtain results. Like direct result from salary classifier could fulfill detection of salary absence pattern of ghost jobs. Role overload pattern was detected by checking skills requirement, and seniority level mentioned.&lt;/p&gt;

&lt;p&gt;You can visit my site at: &lt;a href="https://detoxify-ten.vercel.app/" rel="noopener noreferrer"&gt;https://detoxify-ten.vercel.app/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>saas</category>
      <category>programming</category>
      <category>career</category>
    </item>
  </channel>
</rss>
