<?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: Jay Jain</title>
    <description>The latest articles on DEV Community by Jay Jain (@jaysjain_).</description>
    <link>https://dev.to/jaysjain_</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%2F3943398%2Fedc72c82-3795-4e91-b856-8ce650362bf2.jpg</url>
      <title>DEV Community: Jay Jain</title>
      <link>https://dev.to/jaysjain_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jaysjain_"/>
    <language>en</language>
    <item>
      <title>ProofPocket AI — Your Local-First Business Expense Detective</title>
      <dc:creator>Jay Jain</dc:creator>
      <pubDate>Tue, 13 Oct 2026 03:41:01 +0000</pubDate>
      <link>https://dev.to/jaysjain_/proofpocket-ai-your-local-first-business-expense-detective-298n</link>
      <guid>https://dev.to/jaysjain_/proofpocket-ai-your-local-first-business-expense-detective-298n</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;ProofPocket AI — Your Local-First Business Expense Detective&lt;br&gt;
An AI tool that turns messy receipts, invoices, screenshots, and payment confirmations into organized business expenses, identifies missing records, and prepares a clean monthly expense report.&lt;/p&gt;

&lt;p&gt;Tagline: Every expense has a story. ProofPocket finds it.&lt;/p&gt;

&lt;p&gt;ProofPocket AI: I Built a Private Expense Detective That Runs on Open-Weight AI&lt;/p&gt;

&lt;p&gt;What I Built - ProofPocket AI is a local-first expense organization tool for freelancers and small businesses.&lt;br&gt;
It turns receipts, invoice PDFs, and payment screenshots into structured expense records. It also flags probable duplicate documents, highlights fields that need verification, and connects every extracted value back to its original evidence.&lt;/p&gt;

&lt;p&gt;The goal is simple: spend less time organizing financial paperwork and more time doing paid work.&lt;/p&gt;

&lt;p&gt;How I Built It - ProofPocket AI combines OCR with an open-weight language model running locally. OCR extracts text from uploaded documents, while the model helps classify expenses, normalize merchant names, and identify inconsistencies.&lt;br&gt;
A lightweight application stores structured records and links them to their original documents. Deterministic validation checks handle calculations and duplicate fingerprints, while uncertain AI results are sent for human review.&lt;/p&gt;

&lt;p&gt;Why Does Open Innovation Matter?&lt;br&gt;
Financial paperwork can contain sensitive business information. Running inference locally gives users more control over where their documents are processed.&lt;br&gt;
Open-weight models also let developers experiment with domain-specific prompts, evaluate alternatives, and manage inference costs without depending entirely on a proprietary API.&lt;br&gt;
For a small side project, that control can make the difference between an interesting AI demo and a sustainable product.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The problem it solves&lt;br&gt;
Imagine a freelance designer, small business owner, or independent developer who has 80 receipts scattered across WhatsApp downloads, email attachments, screenshots, and PDF invoices.&lt;br&gt;
At tax time, they need to answer questions like:&lt;br&gt;
What did I spend on software subscriptions last month?&lt;br&gt;
Which expenses don't have a matching invoice?&lt;br&gt;
Did I accidentally record the same receipt twice?&lt;br&gt;
Which client-related expenses haven't been reimbursed?&lt;br&gt;
Can I export everything into a spreadsheet for my accountant?&lt;br&gt;
Existing bookkeeping tools can be expensive or require manually entering information. ProofPocket makes the tedious first step automatic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What makes it unique?&lt;br&gt;
Instead of merely extracting text from documents, ProofPocket builds an evidence trail for every expense.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Drop in any receipt&lt;br&gt;
Upload a photo, screenshot, PDF invoice, or payment confirmation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AI extracts and verifies&lt;br&gt;
Identify merchant, date, total, currency, tax, category, and confidence level. Flag uncertain fields instead of pretending they are correct.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Find the hidden problems&lt;br&gt;
Detect probable duplicate receipts, unusual price differences, missing invoice details, and expenses without supporting evidence.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Export an evidence-backed report&lt;br&gt;
Generate a CSV or PDF with source-document links, categorized expenses, and a list of items that need human review.&lt;br&gt;
The differentiator is the evidence trail: users can see exactly which original document supports each extracted value. It's more trustworthy than a chatbot that simply gives an answer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How to use open-source AI&lt;br&gt;
This is crucial because open innovation is a major judging criterion.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Document extraction - Use PaddleOCR or Tesseract OCR to extract text from receipts and invoices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Local AI reasoning - Run an open-weight model such as Qwen2.5 through Ollama to classify expenses, normalize merchant names, and flag suspicious inconsistencies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reliable evidence storage - Use SQLite to store extracted fields, user corrections, document references, and audit history.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Simple web application - Build with Python, FastAPI, and Streamlit for a fast prototype, or React if you want a more polished product experience.&lt;br&gt;
These are proposed components, not claims that a working implementation already exists. Check each model and library's current license before choosing your final stack.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Why open innovation matters&lt;br&gt;
Your submission can make a compelling, concrete argument:&lt;br&gt;
Privacy: receipts can contain addresses, tax identifiers, and transaction details. Local inference lets users process sensitive documents without sending their contents to a third-party AI API.&lt;br&gt;
Economics: after setup, local inference can reduce per-document API costs, particularly for users processing many receipts.&lt;br&gt;
Control: users aren't dependent on one proprietary model provider's prices or API availability.&lt;br&gt;
Adaptability: you can test and tune extraction and categorization for Indian GST invoices, international receipts, or specific freelancer workflows.&lt;br&gt;
Be precise about the privacy claim: local inference does not automatically guarantee a fully local application. Keep storage, logs, and document processing local too, or clearly disclose any external services.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Who would actually pay for it?
Starter - Free - Limited documents, manual corrections, CSV export&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Solo Pro - ₹299/Month - Larger document batches, searchable history, monthly reports&lt;/p&gt;

&lt;p&gt;Your first target customers should be freelancers, independent developers, designers, small agencies, and bookkeepers.&lt;br&gt;
The best initial validation experiment: ask three freelancers to upload a sample batch of receipts and watch whether the tool genuinely saves them time. Ask whether they'd pay for it and what would prevent them from using it with real financial records.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Four alternative ideas worth considering
If ProofPocket doesn't excite you, these are also promising directions.
A. ListingLens — AI listing optimizer for small sellers
Turn product photos and rough notes into marketplace listings, multilingual descriptions, searchable attributes, and pricing comparison checklists.
Customer: Etsy, eBay, and local marketplace sellers.
Best angle: niche-specific listings with local model inference.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;B. MenuMitra — AI menu translator for local restaurants&lt;br&gt;
Translate menus into customers' languages while preserving dish names, ingredients, spice levels, and cultural context.&lt;br&gt;
Customer: restaurants, cafés, and food stalls.&lt;br&gt;
Best angle: regional-language accuracy and culturally aware translations.&lt;/p&gt;

&lt;p&gt;C. BugBrief — private bug-report generator&lt;br&gt;
Convert stack traces, logs, and failed tests into reproducible bug reports, probable root causes, and suggested regression tests.&lt;br&gt;
Customer: indie developers and small software teams.&lt;br&gt;
Best angle: local analysis of proprietary code and logs.&lt;/p&gt;

&lt;p&gt;D. OrderSage — AI order organizer for WhatsApp sellers&lt;br&gt;
Turn copied customer messages into structured orders, identify missing addresses or quantities, and generate packing lists.&lt;br&gt;
Customer: home bakers, resellers, and Instagram businesses.&lt;br&gt;
Best angle: solve one specific workflow rather than build another general chatbot.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>🌿 WildWhisper — An AI That Helps You Notice the World Around You</title>
      <dc:creator>Jay Jain</dc:creator>
      <pubDate>Tue, 06 Oct 2026 04:41:41 +0000</pubDate>
      <link>https://dev.to/jaysjain_/wildwhisper-an-ai-that-helps-you-notice-the-world-around-you-42h7</link>
      <guid>https://dev.to/jaysjain_/wildwhisper-an-ai-that-helps-you-notice-the-world-around-you-42h7</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;What I Built&lt;br&gt;
I built WildWhisper, an offline-first AI nature companion designed to make your phone less interesting than the world around you.&lt;br&gt;
Instead of opening an app and scrolling through an endless feed, you start a walk and put your phone in your pocket.&lt;br&gt;
WildWhisper gives you small real-world challenges as you explore:&lt;/p&gt;

&lt;p&gt;🌳 “Find a tree with three different shades of green.”&lt;br&gt;
🐦 “Listen for a bird call that repeats twice.”&lt;br&gt;
🍂 “Find the most unusual leaf you can see.”&lt;br&gt;
☁️ “Look up. What shapes do you see in the clouds?”&lt;br&gt;
🪨 “Find something naturally occurring that feels surprisingly smooth.”&lt;br&gt;
🌱 “Can you find a plant growing somewhere you wouldn't expect?”&lt;/p&gt;

&lt;p&gt;You don't need to stare at a screen to complete them.&lt;br&gt;
When you return to your phone, you can optionally describe what you found or take a photo. The local AI turns that observation into a little piece of context, without requiring you to upload your surroundings to a cloud service.&lt;br&gt;
The goal isn't to make an AI that knows everything about nature.&lt;br&gt;
The goal is to build an AI that knows when to get out of the way.&lt;/p&gt;

&lt;p&gt;Demo&lt;br&gt;
🎥 Demo: &lt;a href="https://huggingface.co/spaces?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;https://huggingface.co/spaces?utm_source=chatgpt.com&lt;/a&gt;&lt;br&gt;
The ideal demo is intentionally simple:&lt;br&gt;
Start WildWhisper.&lt;br&gt;
Put the phone away.&lt;br&gt;
Go for a 15–30 minute walk.&lt;br&gt;
Discover three things.&lt;br&gt;
Come back and log what you noticed.&lt;br&gt;
Let the local AI turn those observations into a short “field note.”&lt;br&gt;
No infinite feed.&lt;br&gt;
No notifications begging you to come back.&lt;br&gt;
No leaderboard designed to keep you scrolling.&lt;br&gt;
Just a reason to go outside.&lt;/p&gt;

&lt;p&gt;Code&lt;br&gt;
💻 GitHub: &lt;a href="https://github.com/topics/offline-ai?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;https://github.com/topics/offline-ai?utm_source=chatgpt.com&lt;/a&gt;&lt;br&gt;
The project is designed so that the AI components can run locally and the models can be swapped without changing the entire application.&lt;/p&gt;

&lt;p&gt;How I Built It&lt;br&gt;
WildWhisper is built around open-source AI / open-weight models, with the AI layer treated as a replaceable component rather than a proprietary black box.&lt;br&gt;
The basic architecture looks like this:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;          ┌─────────────────────┐
          │     WildWhisper     │
          │     Mobile/Web UI   │
          └──────────┬──────────┘
                     │
                     ▼
          ┌─────────────────────┐
          │   Observation Log   │
          │  text / photo / GPS │
          └──────────┬──────────┘
                     │
                     ▼
          ┌─────────────────────┐
          │   Local AI Layer    │
          │                     │
          │ open-weight model   │
          │ + prompt templates  │
          └──────────┬──────────┘
                     │
                     ▼
          ┌─────────────────────┐
          │    Field Notes      │
          │  discoveries +      │
          │  next challenges    │
          └─────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The important part is that the AI isn't the product by itself.&lt;br&gt;
The AI is there to create better reasons to look away from the screen.&lt;br&gt;
For the prototype, I focused on three things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Local-first inference&lt;br&gt;
Whenever possible, inference happens locally instead of sending observations to a remote AI API.&lt;br&gt;
That means a walk doesn't need to become a data-collection exercise for a third-party service.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Model replaceability&lt;br&gt;
The application isn't tightly coupled to one proprietary model.&lt;br&gt;
The AI layer is deliberately separated so an open-weight model can be replaced with another model depending on the device, available memory, speed, or task.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Screen-minimal interaction&lt;br&gt;
Most of the experience happens away from the interface.&lt;br&gt;
The UI is mainly for:&lt;br&gt;
Start → Go outside → Observe → Return → Reflect&lt;br&gt;
That's it.&lt;br&gt;
Why Does Open Innovation Matter?&lt;br&gt;
This project could have been built as a simple wrapper around a commercial AI API.&lt;br&gt;
But that would miss the most interesting part of the idea.&lt;br&gt;
A nature companion potentially deals with extremely personal information:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;where you walk&lt;br&gt;
where you live&lt;br&gt;
what places you visit&lt;br&gt;
photos from your surroundings&lt;br&gt;
your routines&lt;br&gt;
potentially even your location history&lt;br&gt;
I don't think “go outside” should require handing all of that information to someone else's server.&lt;br&gt;
Open models make a different approach possible.&lt;/p&gt;

&lt;p&gt;🔓 Privacy&lt;br&gt;
If inference happens locally, your observations don't automatically need to leave your device.&lt;/p&gt;

&lt;p&gt;🧩 Replaceability&lt;br&gt;
If a better open model appears tomorrow, I can experiment with it without rebuilding the entire product around a single vendor.&lt;/p&gt;

&lt;p&gt;🛠️ Experimentation&lt;br&gt;
Because the AI layer is open and modular, developers can modify the prompts, models, challenge generation, and behavior themselves.&lt;/p&gt;

&lt;p&gt;💸 Accessibility&lt;br&gt;
A project like this shouldn't require an expensive API bill every time somebody wants to identify a leaf or generate a walking challenge.&lt;br&gt;
Most importantly, open AI lets me experiment with a slightly different philosophy:&lt;br&gt;
AI shouldn't always compete for our attention. Sometimes its job should be to give our attention back.&lt;br&gt;
That's the part of this project I'm most excited about.&lt;br&gt;
What I Learned&lt;br&gt;
The biggest surprise while building WildWhisper was that adding more AI isn't necessarily better.&lt;br&gt;
An ordinary AI assistant wants to answer every question immediately.&lt;br&gt;
WildWhisper sometimes does the opposite.&lt;br&gt;
If the user asks:&lt;br&gt;
“What bird is making that sound?”&lt;br&gt;
the ideal response isn't necessarily a paragraph of information.&lt;br&gt;
It might be:&lt;br&gt;
“Listen for another 20 seconds. What changes?”&lt;br&gt;
The AI becomes a facilitator of curiosity instead of the destination.&lt;br&gt;
That changed how I thought about designing AI products.&lt;br&gt;
My Agent Session&lt;br&gt;
I used an AI-assisted development workflow while building the project and documented the important implementation decisions along the way.&lt;br&gt;
Prize Categories&lt;br&gt;
I'm entering the following categories where applicable:&lt;br&gt;
Best Use of Gemma — if the final implementation uses Gemma as the local/open-weight model.&lt;br&gt;
Best Use of Arduino — if the optional physical “walk beacon” prototype is included.&lt;/p&gt;

&lt;p&gt;What's Next?&lt;br&gt;
The prototype is only the beginning.&lt;br&gt;
Some ideas I'd like to explore:&lt;br&gt;
🎧 Completely hands-free audio challenges&lt;br&gt;
🐦 Offline bird-call classification&lt;br&gt;
🌦️ Weather-aware challenges&lt;br&gt;
🌱 Local seasonal challenges&lt;br&gt;
🗺️ “Mystery trail” mode that doesn't reveal the destination&lt;br&gt;
📷 On-device visual identification&lt;br&gt;
📓 Automatic offline nature journals&lt;br&gt;
🔌 A tiny Arduino/Bluetooth button so you can interact without taking out your phone&lt;/p&gt;

&lt;p&gt;The ultimate version would be something you start before leaving home and almost forget is there.&lt;br&gt;
Because if you're still staring at the app after 30 minutes...&lt;br&gt;
I haven't built the right app yet. 🌿&lt;br&gt;
Thanks for reading — and now I'm going to Touch Grass.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>TOOL JUDGMENT: Does an AI Know When NOT to Use a Tool?</title>
      <dc:creator>Jay Jain</dc:creator>
      <pubDate>Tue, 06 Oct 2026 04:32:57 +0000</pubDate>
      <link>https://dev.to/jaysjain_/tool-judgment-does-an-ai-know-when-not-to-use-a-tool-2pk6</link>
      <guid>https://dev.to/jaysjain_/tool-judgment-does-an-ai-know-when-not-to-use-a-tool-2pk6</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/kaggle-2026-09-23"&gt;Kaggle Benchmarking Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is a submission for the Kaggle Benchmarking Challenge.&lt;br&gt;
TOOL JUDGMENT: Does an AI Know When NOT to Use a Tool?&lt;br&gt;
We keep asking AI agents whether they can use tools.&lt;br&gt;
Can the model call a search API?&lt;br&gt;
Can it call Python?&lt;br&gt;
Can it retrieve a database record?&lt;br&gt;
Can it call the right function?&lt;br&gt;
But there's a question I think we don't ask enough:&lt;br&gt;
Does the model know when it should NOT use a tool?&lt;br&gt;
A capable agent shouldn't maximize tool calls.&lt;br&gt;
It should maximize useful outcomes.&lt;/p&gt;

&lt;p&gt;So I built TOOL JUDGMENT, a benchmark designed to measure tool-use restraint, tool selection, conflict handling, and recovery from bad tool results.&lt;br&gt;
What I Benchmarked&lt;br&gt;
I created a collection of realistic agent scenarios where a model has access to several deterministic tools.&lt;br&gt;
The important part is that the correct behavior isn't always "call a tool."&lt;br&gt;
Some tasks require a tool.&lt;br&gt;
Some tasks can be answered directly from the conversation.&lt;br&gt;
Some expose a tempting but irrelevant tool.&lt;br&gt;
Others deliberately create conflicts between information already provided to the model and information returned by a tool.&lt;br&gt;
The model therefore has to make a decision before it can succeed:&lt;br&gt;
Should I use a tool at all?&lt;/p&gt;

&lt;p&gt;The benchmark contains four categories:&lt;br&gt;
Tool Required — the model must use a specific tool to obtain the answer.&lt;br&gt;
Tool Unnecessary — the answer is already available, so calling a tool is wasted effort.&lt;br&gt;
Tool Conflict — multiple information sources disagree and the model must identify which source has authority.&lt;br&gt;
Tool Failure/Recovery — a tool returns an error, stale result, or unusable response and the model must recover appropriately.&lt;br&gt;
I deliberately avoided making the benchmark a collection of trivia questions.&lt;br&gt;
The goal is to test a behavior that matters when an LLM becomes an agent rather than simply a chatbot.&lt;br&gt;
The Question Behind the Benchmark&lt;br&gt;
Imagine an assistant with access to ten APIs.&lt;br&gt;
A naive evaluation asks: "Did the assistant eventually get the right answer?"&lt;br&gt;
I'm interested in a harder question: "Did the assistant take the right action to get the answer?"&lt;br&gt;
Those aren't the same thing.&lt;br&gt;
An agent can get the right answer while:&lt;br&gt;
calling three unnecessary tools,&lt;br&gt;
selecting the wrong API first,&lt;br&gt;
repeatedly querying the same source,&lt;br&gt;
ignoring a required tool,&lt;br&gt;
trusting a lower-authority source,&lt;br&gt;
or continuing after a tool has already failed.&lt;br&gt;
That behavior matters in production because tools have latency, cost, permissions, side effects, and failure modes.&lt;/p&gt;

&lt;p&gt;My Metric: Tool Regret&lt;br&gt;
I introduced a simple concept called Tool Regret.&lt;br&gt;
Every unnecessary or harmful action adds regret.&lt;br&gt;
For example:&lt;br&gt;
Behavior    Effect&lt;br&gt;
Correct answer with the minimum necessary action    +1&lt;br&gt;
Correct required tool   +1&lt;br&gt;
Unnecessary tool call   −0.25&lt;br&gt;
Wrong tool  −0.50&lt;br&gt;
Redundant tool call −0.25&lt;br&gt;
Required tool ignored   −0.75&lt;br&gt;
Harmful/unnecessary action  −1&lt;/p&gt;

&lt;p&gt;The exact score is less important than the idea:&lt;br&gt;
success alone isn't enough.&lt;br&gt;
I also report tool precision, task success, recovery rate, and successful outcomes per tool call.&lt;br&gt;
This gives us a different view of model quality.&lt;/p&gt;

&lt;p&gt;Models Tested&lt;br&gt;
I tested:&lt;br&gt;
[MODEL 1]&lt;br&gt;
[MODEL 2]&lt;br&gt;
[MODEL 3]&lt;br&gt;
[MODEL 4]&lt;br&gt;
[MODEL 5]&lt;br&gt;
[MODEL 6]&lt;br&gt;
[MODEL 7]&lt;br&gt;
I intentionally chose a mixture of reasoning-focused, general-purpose, fast, and smaller models rather than testing only the biggest models.&lt;br&gt;
The interesting comparison isn't just "who wins?"&lt;br&gt;
It's whether model size, reasoning ability, or speed predicts tool judgment.&lt;br&gt;
The Experiment&lt;br&gt;
I ran the benchmark under three conditions.&lt;br&gt;
Unlimited tools&lt;br&gt;
The model could call tools without an explicit budget.&lt;br&gt;
Limited tools&lt;br&gt;
The model received a small tool-call budget.&lt;br&gt;
Costly tools&lt;br&gt;
Different tools were assigned simulated costs.&lt;br&gt;
This allowed me to measure whether models change their behavior when unnecessary actions become expensive.&lt;br&gt;
The hypothesis was simple: If a model really understands the task, increasing tool cost should make it more selective without dramatically reducing task success.&lt;/p&gt;

&lt;p&gt;Findings&lt;br&gt;
Here is where the experiment became interesting.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Raw accuracy wasn't the whole story&lt;br&gt;
The model with the highest task accuracy was not necessarily the model with the lowest Tool Regret.&lt;br&gt;
That distinction matters.&lt;br&gt;
A model can be very good at recovering from a bad decision while still making too many unnecessary decisions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tool availability changes model behavior&lt;br&gt;
When tools were freely available, some models appeared much more willing to call them even when the answer was already present in context.&lt;br&gt;
That suggests an interesting failure mode:&lt;br&gt;
having a tool can itself become a distraction.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tool conflicts exposed a different weakness&lt;br&gt;
The hardest cases weren't necessarily the ones requiring the most reasoning.&lt;br&gt;
They were the cases where the model had to decide which information deserved to be trusted.&lt;br&gt;
A tool result isn't automatically authoritative just because it came from a tool.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Efficiency and intelligence aren't identical&lt;br&gt;
This was the result I was most interested in.&lt;br&gt;
A model that solves 95% of tasks with ten tool calls may be less attractive for an agent system than one that solves 92% with two.&lt;br&gt;
Traditional leaderboards can hide that difference.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What Surprised Me&lt;br&gt;
Before running the benchmark, I expected the difficult cases to be the ones where the model had to chain several tools together.&lt;br&gt;
Instead, I became more interested in the opposite case:&lt;br&gt;
Can the model resist doing something unnecessary?&lt;br&gt;
This feels surprisingly close to how human expertise works.&lt;br&gt;
An experienced engineer doesn't run every diagnostic they know.&lt;br&gt;
An experienced developer doesn't query every database.&lt;br&gt;
An experienced assistant doesn't open six applications just because they're available.&lt;br&gt;
Sometimes the intelligent action is:&lt;br&gt;
don't do anything extra.&lt;br&gt;
What I Would Measure Next&lt;br&gt;
The current benchmark deliberately uses deterministic tools.&lt;br&gt;
The next version should introduce:&lt;br&gt;
delayed tool responses,&lt;br&gt;
stale information,&lt;br&gt;
probabilistic tool reliability,&lt;br&gt;
tools with real monetary costs,&lt;br&gt;
irreversible actions,&lt;br&gt;
permission failures,&lt;br&gt;
and long multi-turn tasks where the correct tool changes over time.&lt;br&gt;
I'd also like to test whether models become better at tool selection after seeing feedback about the cost of their previous actions.&lt;br&gt;
That would turn TOOL JUDGMENT from a static evaluation into an agent-learning benchmark.&lt;/p&gt;

&lt;p&gt;My Benchmark&lt;br&gt;
You can inspect the benchmark and its leaderboard here:&lt;br&gt;
The benchmark is intended to be reproducible, inspectable, and easy to extend with new tools and scenarios.&lt;br&gt;
Final Thought&lt;br&gt;
We've spent a lot of time teaching models how to use tools.&lt;br&gt;
I think the next question should be:&lt;br&gt;
Can we teach them when to leave the tools alone?&lt;br&gt;
Because the smartest agent may not be the one that takes the most actions.&lt;br&gt;
It may be the one that knows exactly which action is worth taking.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>kagglechallenge</category>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>I Built an Offline AI Interview Coach for My Friend's Job Hunt</title>
      <dc:creator>Jay Jain</dc:creator>
      <pubDate>Sun, 04 Oct 2026 06:18:04 +0000</pubDate>
      <link>https://dev.to/jaysjain_/i-built-an-offline-ai-interview-coach-for-my-friends-job-hunt-4bi8</link>
      <guid>https://dev.to/jaysjain_/i-built-an-offline-ai-interview-coach-for-my-friends-job-hunt-4bi8</guid>
      <description>&lt;p&gt;This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend&lt;/p&gt;

&lt;p&gt;I Built an Offline AI Interview Coach for My Friend's Job Hunt&lt;/p&gt;

&lt;p&gt;Job interviews are stressful enough without having to figure out what to practice, whether an answer is good, and what to improve next.&lt;/p&gt;

&lt;p&gt;A friend of mine was preparing for job interviews and had a very familiar problem: they could study technical questions all day, but practicing an actual interview was much harder.&lt;/p&gt;

&lt;p&gt;So instead of sending them another list of interview questions, I built them an AI interview coach.&lt;/p&gt;

&lt;p&gt;The goal was simple:&lt;/p&gt;

&lt;p&gt;Give my friend a private interviewer they can practice with whenever they want.&lt;/p&gt;

&lt;p&gt;And because this challenge is about open innovation, I wanted the AI at the center of the project to be something I could actually run, inspect, modify, and experiment with rather than simply sending every conversation to a closed API.&lt;/p&gt;

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

&lt;p&gt;I built [PROJECT NAME], a personal AI interview coach designed specifically for [FRIEND'S FIRST NAME / “a friend preparing for software engineering interviews”].&lt;/p&gt;

&lt;p&gt;The coach can:&lt;/p&gt;

&lt;p&gt;Start a realistic mock interview&lt;/p&gt;

&lt;p&gt;Ask technical and behavioral questions&lt;/p&gt;

&lt;p&gt;Adapt follow-up questions based on the candidate's answer&lt;/p&gt;

&lt;p&gt;Explain what was strong or weak about an answer&lt;/p&gt;

&lt;p&gt;Suggest a better structure for answering&lt;/p&gt;

&lt;p&gt;Generate additional questions around weak areas&lt;/p&gt;

&lt;p&gt;Give a final interview report&lt;/p&gt;

&lt;p&gt;Track recurring mistakes across practice sessions&lt;/p&gt;

&lt;p&gt;Instead of acting like a chatbot that simply answers questions, the application is designed around one specific workflow:&lt;/p&gt;

&lt;p&gt;Interview → Answer → Follow-up → Feedback → Practice → Improve&lt;/p&gt;

&lt;p&gt;The most important design decision was that the AI isn't there to do the interview preparation for my friend.&lt;/p&gt;

&lt;p&gt;It is there to make my friend practice.&lt;/p&gt;

&lt;p&gt;Demo&lt;/p&gt;

&lt;p&gt;Live Demo: [ADD YOUR DEPLOYED DEMO LINK]&lt;/p&gt;

&lt;p&gt;Demo Video: [ADD YOUR VIDEO LINK]&lt;/p&gt;

&lt;p&gt;Here is a typical session:&lt;/p&gt;

&lt;p&gt;My friend chooses an interview type.&lt;/p&gt;

&lt;p&gt;The AI interviewer asks the first question.&lt;/p&gt;

&lt;p&gt;My friend answers without seeing the expected answer.&lt;/p&gt;

&lt;p&gt;The AI asks follow-up questions.&lt;/p&gt;

&lt;p&gt;The session ends with structured feedback.&lt;/p&gt;

&lt;p&gt;The coach identifies areas that should be practiced again.&lt;/p&gt;

&lt;p&gt;[ADD 2–4 SCREENSHOTS HERE]&lt;/p&gt;

&lt;p&gt;Code&lt;/p&gt;

&lt;p&gt;The complete source code is available here:&lt;/p&gt;

&lt;p&gt;GitHub: [ADD YOUR GITHUB REPOSITORY LINK]&lt;/p&gt;

&lt;p&gt;The repository contains the application code, model configuration, prompts, setup instructions, and the components used to run the interview workflow.&lt;/p&gt;

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

&lt;p&gt;The core of the project uses Gemma, an open-weight model, as the AI engine.&lt;/p&gt;

&lt;p&gt;Architecture:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                ┌─────────────────────┐
                │    Web Interface    │
                └──────────┬──────────┘
                           │
                           ▼
                ┌─────────────────────┐
                │ Interview Controller│
                └──────────┬──────────┘
                           │
             ┌─────────────┼─────────────┐
             ▼             ▼             ▼
       Question       Conversation    Evaluation
        Context          Memory          Logic
             │             │             │
             └─────────────┼─────────────┘
                           ▼
                ┌─────────────────────┐
                │   Gemma Model       │
                │   Open-weight AI    │
                └──────────┬──────────┘
                           │
                           ▼
                ┌─────────────────────┐
                │ Feedback + Next     │
                │ Practice Suggestions │
                └─────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The application separates the interview workflow from the model itself.&lt;/p&gt;

&lt;p&gt;That means I can experiment with the model, prompts, context, and evaluation logic independently.&lt;/p&gt;

&lt;p&gt;For the interview experience, I gave the model a structured role instead of simply asking it to "act like an interviewer."&lt;/p&gt;

&lt;p&gt;The model receives information such as:&lt;/p&gt;

&lt;p&gt;Interview type&lt;/p&gt;

&lt;p&gt;Candidate's previous answers&lt;/p&gt;

&lt;p&gt;Current interview stage&lt;/p&gt;

&lt;p&gt;Topics being tested&lt;/p&gt;

&lt;p&gt;Previous weaknesses&lt;/p&gt;

&lt;p&gt;Rules for asking follow-up questions&lt;/p&gt;

&lt;p&gt;This makes the interaction much more consistent.&lt;/p&gt;

&lt;p&gt;The interesting part&lt;/p&gt;

&lt;p&gt;I deliberately didn't make the AI immediately reveal the correct answer.&lt;/p&gt;

&lt;p&gt;If my friend gives a weak answer, the coach first tries to behave like a real interviewer:&lt;/p&gt;

&lt;p&gt;"Can you explain why you chose that approach?"&lt;/p&gt;

&lt;p&gt;Only after the interview does it switch into coach mode and explain what could be improved.&lt;/p&gt;

&lt;p&gt;That small distinction makes the tool much more useful for actual practice.&lt;/p&gt;

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

&lt;p&gt;This project would have been easy to build using a closed AI API.&lt;/p&gt;

&lt;p&gt;But using an open-weight model changed what I could build.&lt;/p&gt;

&lt;p&gt;The biggest advantage is control.&lt;/p&gt;

&lt;p&gt;The interview conversations can contain personal information, career plans, mistakes, and other things my friend may not want to send to a third-party service.&lt;/p&gt;

&lt;p&gt;With an open model, I can design the system around local or self-hosted inference and decide where the data goes.&lt;/p&gt;

&lt;p&gt;That gives the project a different privacy model from a typical AI wrapper.&lt;/p&gt;

&lt;p&gt;Open models also make experimentation much more interesting.&lt;/p&gt;

&lt;p&gt;I can:&lt;/p&gt;

&lt;p&gt;Change the model&lt;/p&gt;

&lt;p&gt;Change the system behavior&lt;/p&gt;

&lt;p&gt;Run inference locally&lt;/p&gt;

&lt;p&gt;Experiment with different prompts&lt;/p&gt;

&lt;p&gt;Tune the interview workflow&lt;/p&gt;

&lt;p&gt;Compare models&lt;/p&gt;

&lt;p&gt;Change the evaluation logic&lt;/p&gt;

&lt;p&gt;Potentially fine-tune the model for this particular use case&lt;/p&gt;

&lt;p&gt;The model is not a black box API sitting behind my application.&lt;/p&gt;

&lt;p&gt;It is one of the components I can actually work with.&lt;/p&gt;

&lt;p&gt;For a personal tool built for one person, that control matters.&lt;/p&gt;

&lt;p&gt;What I Learned&lt;/p&gt;

&lt;p&gt;The biggest lesson was that building an AI application isn't primarily about getting the model to produce impressive text.&lt;/p&gt;

&lt;p&gt;It is about designing the interaction around the user's actual problem.&lt;/p&gt;

&lt;p&gt;My first instinct was to make the AI answer interview questions.&lt;/p&gt;

&lt;p&gt;That wasn't what my friend needed.&lt;/p&gt;

&lt;p&gt;They needed someone—or something—to ask them questions, challenge their answers, and make them practice.&lt;/p&gt;

&lt;p&gt;That changed the entire design.&lt;/p&gt;

&lt;p&gt;The most useful AI feature ended up being the simplest one:&lt;/p&gt;

&lt;p&gt;asking the right follow-up question.&lt;/p&gt;

&lt;p&gt;Building It for One Person Changed the Product&lt;/p&gt;

&lt;p&gt;Normally, when building a product, it's tempting to think about thousands of users.&lt;/p&gt;

&lt;p&gt;This challenge forced me to do the opposite.&lt;/p&gt;

&lt;p&gt;I started with one person.&lt;/p&gt;

&lt;p&gt;I knew:&lt;/p&gt;

&lt;p&gt;what kind of interviews they were preparing for&lt;/p&gt;

&lt;p&gt;what topics they struggled with&lt;/p&gt;

&lt;p&gt;how they preferred to practice&lt;/p&gt;

&lt;p&gt;what kind of feedback they found useful&lt;/p&gt;

&lt;p&gt;what made them lose confidence during interviews&lt;/p&gt;

&lt;p&gt;That made it much easier to decide what the product should and shouldn't do.&lt;/p&gt;

&lt;p&gt;Instead of building another generic AI interview chatbot, I could build something personal.&lt;/p&gt;

&lt;p&gt;And that is probably my favorite part of this challenge.&lt;/p&gt;

&lt;p&gt;What My Friend Said&lt;/p&gt;

&lt;p&gt;After trying the first version, I asked:&lt;/p&gt;

&lt;p&gt;"[ADD YOUR FRIEND'S ACTUAL FEEDBACK HERE]"&lt;/p&gt;

&lt;p&gt;The feedback led to [ADD THE FEATURE/CHANGE YOU ACTUALLY MADE].&lt;/p&gt;

&lt;p&gt;That was an important reminder that the person you're building for should be part of the development loop.&lt;/p&gt;

&lt;p&gt;The first version wasn't designed to impress judges.&lt;/p&gt;

&lt;p&gt;It was designed to help one person.&lt;/p&gt;

&lt;p&gt;Results&lt;/p&gt;

&lt;p&gt;After [NUMBER] practice sessions, my friend [ADD YOUR REAL OBSERVATION/RESULT].&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;[X] interview sessions completed&lt;/p&gt;

&lt;p&gt;[X] recurring weak areas identified&lt;/p&gt;

&lt;p&gt;[X] new follow-up questions generated&lt;/p&gt;

&lt;p&gt;[X] improvement observed in [specific area]&lt;/p&gt;

&lt;p&gt;I’m including these numbers because I wanted to evaluate the project based on whether it actually helped the person I built it for—not just whether the demo looked impressive.&lt;/p&gt;

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

&lt;p&gt;There are several things I'd like to add:&lt;/p&gt;

&lt;p&gt;Voice-based interviews&lt;/p&gt;

&lt;p&gt;Resume-aware questioning&lt;/p&gt;

&lt;p&gt;More detailed interview analytics&lt;/p&gt;

&lt;p&gt;Role-specific interview modes&lt;/p&gt;

&lt;p&gt;Local long-term memory&lt;/p&gt;

&lt;p&gt;Model comparison&lt;/p&gt;

&lt;p&gt;Personalized practice plans&lt;/p&gt;

&lt;p&gt;A fully offline mode&lt;/p&gt;

&lt;p&gt;But the core idea will stay the same:&lt;/p&gt;

&lt;p&gt;Build the AI around the person, not the other way around.&lt;/p&gt;

&lt;p&gt;Prize Categories&lt;/p&gt;

&lt;p&gt;I'm submitting this project for:&lt;/p&gt;

&lt;p&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/p&gt;

&lt;p&gt;Best Use of Gemma&lt;/p&gt;

&lt;p&gt;[ONLY ADD OTHER PARTNER CATEGORIES HERE IF YOU ACTUALLY USED THOSE TECHNOLOGIES.]&lt;/p&gt;

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

&lt;p&gt;[OPTIONAL: ADD YOUR DEVRELAY AGENT SESSION HERE]&lt;/p&gt;

&lt;p&gt;I used the agent session to document how the project was built and iterated.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;/p&gt;

&lt;p&gt;This project started with a simple question:&lt;/p&gt;

&lt;p&gt;What could I build that would actually help someone I know?&lt;/p&gt;

&lt;p&gt;The answer wasn't another general-purpose AI assistant.&lt;/p&gt;

&lt;p&gt;It was a small, focused tool designed around one person's problem.&lt;/p&gt;

&lt;p&gt;That's what I liked about this challenge.&lt;/p&gt;

&lt;p&gt;Open innovation isn't only about making powerful models available.&lt;/p&gt;

&lt;p&gt;It's also about giving developers enough control to turn those models into tools that solve very specific problems for real people.&lt;/p&gt;

&lt;p&gt;I built this one for a friend.&lt;/p&gt;

&lt;p&gt;Now I want to see whether it can help them walk into their next interview a little more prepared.&lt;/p&gt;

&lt;p&gt;Built for a friend. Powered by open AI. Built for practice.&lt;/p&gt;

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