<?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: Hannan Zubair</title>
    <description>The latest articles on DEV Community by Hannan Zubair (@hannanthetron).</description>
    <link>https://dev.to/hannanthetron</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%2F4192939%2F17385929-f2ea-43c6-b2a5-b37468053562.png</url>
      <title>DEV Community: Hannan Zubair</title>
      <link>https://dev.to/hannanthetron</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hannanthetron"/>
    <language>en</language>
    <item>
      <title>ScamSloth 🦥 listens to your voicemails so you don't have to</title>
      <dc:creator>Hannan Zubair</dc:creator>
      <pubDate>Mon, 26 Oct 2026 05:18:22 +0000</pubDate>
      <link>https://dev.to/hannanthetron/scamsloth-listens-to-your-voicemails-so-you-dont-have-to-5cbi</link>
      <guid>https://dev.to/hannanthetron/scamsloth-listens-to-your-voicemails-so-you-dont-have-to-5cbi</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I never listen to my voicemails. Half of them are scams, and the other half I worry might be. ScamSloth does the listening for me. Upload a voicemail and in about 4 seconds you get a &lt;strong&gt;Scam / Not scam&lt;/strong&gt; verdict with red flags, a check on whether the &lt;strong&gt;callback number&lt;/strong&gt; is reported as a scam online, and the full transcript. No listening and no googling numbers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Live: &lt;a href="https://scamslothis.mildlyintelligent.tech" rel="noopener noreferrer"&gt;https://scamslothis.mildlyintelligent.tech&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/bauji/scamslothis" rel="noopener noreferrer"&gt;https://github.com/bauji/scamslothis&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Qwen3.5-4B (open-weight)&lt;/strong&gt; on &lt;strong&gt;Tinker&lt;/strong&gt; is the brain. It reads the transcript and returns a JSON verdict with up to 5 red flags. Qwen3.5-4B is released under Apache 2.0, so I'm free to fine-tune it, self-host it, and ship my own version.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ElevenLabs Scribe&lt;/strong&gt; turns the audio into text.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SerpApi&lt;/strong&gt; searches the callback number for scam reports. ScamSloth pulls the number out of the transcript even when it's spoken as words ("four one six…").&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FastAPI&lt;/strong&gt;, managed with &lt;strong&gt;uv&lt;/strong&gt;, deployed on &lt;strong&gt;Render&lt;/strong&gt; at my own &lt;code&gt;.tech&lt;/code&gt; subdomain.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I built it in small steps, each one leaving a working app: first a page, then the transcript, then the verdict, then the number check.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;A scam checker has to know about &lt;em&gt;your&lt;/em&gt; life. While building ScamSloth, I tested it on my own voicemails, and it flagged one of my legitimate ones as a scam. The base model (Qwen3.5-4B) had no context on my life. If it had known my work history and which financial institutions I use, it wouldn't have flagged that call. The funny part is that the exact same voicemail sent to &lt;em&gt;you&lt;/em&gt; could very well be a scam.&lt;/p&gt;

&lt;p&gt;Generic models are great at a lot of things, but they don't know my data or my life. I see a future where intelligence works for everyone: open models with open weights, fine-tuned on each person's own data. Everyone gets intelligence customized for them, and without ads 😉.&lt;/p&gt;

&lt;p&gt;To be upfront: transcription (ElevenLabs) and the number search (SerpApi) are closed services today. The roadmap swaps in open speech-to-text and local inference.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;I ran it on 4 of my own voicemails this week. Each took about 4 seconds instead of listening and googling the number. It caught both spam calls, but it also flagged one real call, and that's exactly the mistake my fine-tune is going to fix.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Render&lt;/strong&gt;: the whole app (FastAPI front end and AI pipeline) runs on Render.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of ElevenLabs&lt;/strong&gt;: Scribe transcribes the voicemail audio for the open-weight model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of SerpApi&lt;/strong&gt;: live web search checks whether the callback number is reported as a scam.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of a .tech Domain&lt;/strong&gt;: live at scamslothis.mildlyintelligent.tech.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Fine-tune on my own labelled voicemails and score it against the base model&lt;/li&gt;
&lt;li&gt;Turn it into an agent that decides when to look up a number&lt;/li&gt;
&lt;li&gt;Open speech-to-text and local inference&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
