<?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: prathamesh desai</title>
    <description>The latest articles on DEV Community by prathamesh desai (@prathamesh_desai_).</description>
    <link>https://dev.to/prathamesh_desai_</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%2F4079196%2Fa4501105-3d07-4a2c-b97d-10a4940a1e8d.jpg</url>
      <title>DEV Community: prathamesh desai</title>
      <link>https://dev.to/prathamesh_desai_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/prathamesh_desai_"/>
    <language>en</language>
    <item>
      <title>GraphGuard: Building a Graph-Powered AI Agent for Fraud Investigation with FalkorDB</title>
      <dc:creator>prathamesh desai</dc:creator>
      <pubDate>Sun, 18 Oct 2026 16:37:42 +0000</pubDate>
      <link>https://dev.to/prathamesh_desai_/graphguard-building-a-graph-powered-ai-agent-for-fraud-investigation-with-falkordb-o5n</link>
      <guid>https://dev.to/prathamesh_desai_/graphguard-building-a-graph-powered-ai-agent-for-fraud-investigation-with-falkordb-o5n</guid>
      <description>&lt;p&gt;&lt;strong&gt;Track:&lt;/strong&gt; Track 1 — Agents That Act on Connected Data&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Event:&lt;/strong&gt; Graph Hacks 2026 by WeMakeDevs and FalkorDB&lt;/p&gt;
&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;AI agents are becoming increasingly capable of answering questions, analyzing information and automating workflows. However, an important challenge remains: an agent can only make a reliable decision when it has the right context.&lt;/p&gt;

&lt;p&gt;Consider a suspicious financial transaction. Looking at the transaction amount alone might not tell us much. But what if the sender shares a device with several other accounts? What if those accounts are connected through other transactions? What if some of those transactions are already under review?&lt;/p&gt;

&lt;p&gt;The answer is no longer contained in one record. It depends on how multiple pieces of information connect.&lt;/p&gt;

&lt;p&gt;That was the problem I explored while developing &lt;strong&gt;GraphGuard&lt;/strong&gt;, a graph-powered fraud investigation prototype built for the Graph Hacks 2026 hackathon.&lt;/p&gt;

&lt;p&gt;My goal was to explore how a graph database can help an agent investigate connected records, identify potentially relevant relationships and present an understandable evidence trail.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Problem: Data Without Context
&lt;/h2&gt;

&lt;p&gt;Traditional data analysis often starts with individual records, filters, tables and reports. These tools are useful, but complex investigations can require following relationships across multiple entities.&lt;/p&gt;

&lt;p&gt;For example, an analyst might need to answer questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which accounts are connected to a particular transaction?&lt;/li&gt;
&lt;li&gt;Are multiple accounts using the same device?&lt;/li&gt;
&lt;li&gt;Which transactions are associated with an account under review?&lt;/li&gt;
&lt;li&gt;What evidence supports an investigation alert?&lt;/li&gt;
&lt;li&gt;What should an analyst inspect next?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If an AI system receives only an isolated transaction record, it may miss important connections or produce an explanation unsupported by the available data.&lt;/p&gt;

&lt;p&gt;GraphGuard explores a different approach: represent entities and their relationships explicitly, query those relationships, and use the resulting evidence to support an investigation.&lt;/p&gt;
&lt;h2&gt;
  
  
  Introducing GraphGuard
&lt;/h2&gt;

&lt;p&gt;GraphGuard is a prototype for connected-data investigation. It combines a Python application, FalkorDB graph queries and transparent investigation rules to help explore suspicious transaction patterns.&lt;/p&gt;

&lt;p&gt;Its main capabilities include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Investigating an account and its outgoing transactions.&lt;/li&gt;
&lt;li&gt;Tracing a transaction from sender to recipient.&lt;/li&gt;
&lt;li&gt;Identifying accounts connected through shared devices.&lt;/li&gt;
&lt;li&gt;Flagging configurable risk indicators.&lt;/li&gt;
&lt;li&gt;Displaying the evidence behind an investigation.&lt;/li&gt;
&lt;li&gt;Suggesting follow-up checks for a human analyst.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application uses synthetic demonstration data. It is an educational prototype, not a production fraud-detection platform.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why FalkorDB?
&lt;/h2&gt;

&lt;p&gt;The central idea behind GraphGuard is that relationships are part of the data, not merely details to reconstruct later.&lt;/p&gt;

&lt;p&gt;FalkorDB is a graph database that supports graph modeling and Cypher queries. It allows the application to represent entities as nodes and their connections as relationships.&lt;/p&gt;

&lt;p&gt;Instead of treating accounts, devices and transactions as unrelated rows, GraphGuard models how they connect.&lt;/p&gt;

&lt;p&gt;This is especially useful for investigations where the important question is not just &lt;em&gt;what happened?&lt;/em&gt; but &lt;em&gt;what else is connected to it?&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Designing the Graph Data Model
&lt;/h2&gt;

&lt;p&gt;I designed the prototype around three main node types.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Account&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An account stores an account identifier, a display name and a configured demonstration risk score.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Transaction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A transaction stores an identifier, amount, status and timestamp.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Device&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A device represents a device associated with one or more accounts.&lt;/p&gt;

&lt;p&gt;The graph uses these relationships:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;SENDS&lt;/code&gt;: an account sends a transaction.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;RECEIVED_BY&lt;/code&gt;: a transaction is associated with its receiving account.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;USES_DEVICE&lt;/code&gt;: an account uses a device.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;LINKED_TO&lt;/code&gt;: two accounts have a recorded relationship.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A simplified representation looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(Account)-[:SENDS]-&amp;gt;(Transaction)
(Transaction)-[:RECEIVED_BY]-&amp;gt;(Account)

(Account)-[:USES_DEVICE]-&amp;gt;(Device)
(Account)-[:LINKED_TO]-&amp;gt;(Account)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This model makes it possible to move between transaction records and related entities through graph queries.&lt;/p&gt;

&lt;h2&gt;
  
  
  Following Connections with Cypher
&lt;/h2&gt;

&lt;p&gt;One example is finding other accounts that share a device with a selected account.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cypher"&gt;&lt;code&gt;&lt;span class="k"&gt;MATCH&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="py"&gt;a:&lt;/span&gt;&lt;span class="n"&gt;Account&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="ss"&gt;[&lt;/span&gt;&lt;span class="nc"&gt;:USES_DEVICE&lt;/span&gt;&lt;span class="ss"&gt;]&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="py"&gt;d:&lt;/span&gt;&lt;span class="n"&gt;Device&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="ss"&gt;[&lt;/span&gt;&lt;span class="nc"&gt;:USES_DEVICE&lt;/span&gt;&lt;span class="ss"&gt;]&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="py"&gt;other:&lt;/span&gt;&lt;span class="n"&gt;Account&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;a.account_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;$account_id&lt;/span&gt;
  &lt;span class="ow"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;other.account_id&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;a.account_id&lt;/span&gt;
&lt;span class="k"&gt;RETURN&lt;/span&gt; &lt;span class="n"&gt;other.account_id&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;related_account&lt;/span&gt;&lt;span class="ss"&gt;,&lt;/span&gt;
       &lt;span class="n"&gt;d.device_id&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;shared_device&lt;/span&gt;
&lt;span class="k"&gt;LIMIT&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The query starts with an account, follows its connection to a device and then finds other accounts connected to that same device.&lt;/p&gt;

&lt;p&gt;This is a simple example of why graphs are useful: a relationship can reveal relevant context that is not obvious when examining an account in isolation.&lt;/p&gt;

&lt;p&gt;A shared device is not proof of wrongdoing. It is a relationship that may warrant further investigation, depending on the circumstances.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the Investigation Workflow Works
&lt;/h2&gt;

&lt;p&gt;The prototype follows a straightforward workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Select an account or transaction.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The user chooses an entity to investigate from the dashboard.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Retrieve connected evidence.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The graph layer retrieves relevant outgoing transactions, related accounts and shared-device connections.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Evaluate transparent indicators.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The investigation logic checks configured conditions, such as a high demonstration risk score, transactions above a threshold, transactions pending review and shared-device connections.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Present the results.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The application summarizes the findings and displays the evidence records in a table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Recommend follow-up checks.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The prototype suggests that an analyst review transaction context, investigate shared-device relationships and inspect existing review or decline reasons where applicable.&lt;/p&gt;

&lt;p&gt;The current implementation uses graph queries and deterministic rules. An LLM-powered tool-selection and reasoning loop is a possible future extension, rather than a feature I claim is already complete.&lt;/p&gt;

&lt;h2&gt;
  
  
  Exploring the Dashboard
&lt;/h2&gt;

&lt;p&gt;The Streamlit interface is organized into four sections:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Account Investigation:&lt;/strong&gt; Select an account and inspect its risk indicators and outgoing transactions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Transaction Investigation:&lt;/strong&gt; Trace a transaction to its sender and recipient and inspect connected-device evidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Graph Explorer:&lt;/strong&gt; View a summary of relationships returned by the graph layer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;About:&lt;/strong&gt; Review the architecture, intended workflow and limitations.&lt;/p&gt;

&lt;p&gt;The project also includes a local demonstration fallback, allowing the interface to be explored when a FalkorDB server is unavailable. The fallback is useful for development, but a proper hackathon demonstration should verify the live FalkorDB integration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technology Stack
&lt;/h2&gt;

&lt;p&gt;The prototype uses the following technologies:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python:&lt;/strong&gt; Core application logic and investigation workflows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FalkorDB:&lt;/strong&gt; Graph storage and relationship queries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cypher:&lt;/strong&gt; Query language for traversing the graph.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit:&lt;/strong&gt; Interactive dashboard.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docker Compose:&lt;/strong&gt; Local database setup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pytest:&lt;/strong&gt; Basic tests for investigation behavior.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application is designed to run locally and uses synthetic data so the demonstration does not depend on real financial records.&lt;/p&gt;

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

&lt;p&gt;This project helped me explore several important ideas about building graph-powered AI applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Relationships can be more informative than isolated records.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An individual transaction may not tell the whole story. Connections between accounts, devices and transactions can reveal useful context for investigation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Explainability should be designed into the workflow.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A system should not merely label something suspicious. It should show the records and relationships that contributed to its assessment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Graph queries and language models have different responsibilities.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A graph query retrieves connected evidence. A language model can potentially help interpret a question or explain the returned evidence, but it should not invent records or relationships.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Risk indicators need careful interpretation.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A high configured score, large transaction or shared device does not establish fraud. Results should be treated as leads for human review.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. A working prototype needs more than a user interface.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Database connectivity, query correctness, reproducible setup instructions and meaningful test cases are important parts of the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limitations and Future Improvements
&lt;/h2&gt;

&lt;p&gt;GraphGuard is an early-stage prototype. There are several improvements I would like to make next:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Add an LLM-powered agent that selects from a controlled set of investigation tools.&lt;/li&gt;
&lt;li&gt;Implement deeper multi-hop graph traversal and explainable relationship paths.&lt;/li&gt;
&lt;li&gt;Add an interactive graph visualization.&lt;/li&gt;
&lt;li&gt;Expand automated tests and validate behavior against a live FalkorDB instance.&lt;/li&gt;
&lt;li&gt;Improve data validation, error handling and configuration.&lt;/li&gt;
&lt;li&gt;Add evidence-linked natural-language reports.&lt;/li&gt;
&lt;li&gt;Explore agent tool integration through MCP, with access controls and read-only query tools where appropriate.&lt;/li&gt;
&lt;li&gt;Evaluate investigation quality against a larger, carefully designed synthetic dataset.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These improvements would move the project closer to an agent that actively uses connected data to investigate a question and explain its findings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Running the Project
&lt;/h2&gt;

&lt;p&gt;The project repository includes a README with the setup instructions.&lt;/p&gt;

&lt;p&gt;The basic workflow is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install Python and, optionally, Docker Desktop.&lt;/li&gt;
&lt;li&gt;Install the dependencies with &lt;code&gt;pip install -r requirements.txt&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Start FalkorDB using Docker Compose.&lt;/li&gt;
&lt;li&gt;Launch the interface with &lt;code&gt;streamlit run app.py&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Select a sample account or transaction and inspect the returned evidence.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Source code:&lt;/strong&gt; [Add your public GitHub repository URL here]&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demo video:&lt;/strong&gt; [Add your public demo video URL here]&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project status:&lt;/strong&gt; [Describe what you personally tested and verified before publishing.]&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;GraphGuard explores how connected data can make AI-assisted investigations more transparent and useful.&lt;/p&gt;

&lt;p&gt;The main lesson is simple: when a question depends on relationships between multiple records, the system needs access to those relationships—not just a collection of isolated facts.&lt;/p&gt;

&lt;p&gt;By combining a graph model, Cypher queries and evidence-based investigation rules, GraphGuard provides a foundation for exploring that idea. The next step is to develop a more capable agent that can select graph tools, follow multi-hop relationships and explain its findings with traceable evidence.&lt;/p&gt;

&lt;p&gt;This project is my contribution to &lt;strong&gt;Graph Hacks 2026 — Track 1: Agents That Act on Connected Data&lt;/strong&gt;, powered by WeMakeDevs and FalkorDB.&lt;/p&gt;

&lt;p&gt;I'm continuing to learn about graph databases, agent architectures and responsible AI systems, and I'm excited to keep improving the project.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; AI-assisted development tools were used during the development process. I am responsible for reviewing, testing and understanding the code and technical decisions included in the final submission.&lt;/p&gt;

&lt;h1&gt;
  
  
  GraphHacks #FalkorDB #AI #AIagents #GraphDatabase #Python #BuildInPublic
&lt;/h1&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>database</category>
      <category>devchallenge</category>
    </item>
    <item>
      <title>FreelanceFlow-AI</title>
      <dc:creator>prathamesh desai</dc:creator>
      <pubDate>Fri, 16 Oct 2026 15:32:03 +0000</pubDate>
      <link>https://dev.to/prathamesh_desai_/freelanceflow-ai-1j</link>
      <guid>https://dev.to/prathamesh_desai_/freelanceflow-ai-1j</guid>
      <description>&lt;h1&gt;
  
  
  FreelanceFlow AI: A Local-First Invoice Assistant Powered by Open-Source AI
&lt;/h1&gt;

&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;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Meet &lt;strong&gt;FreelanceFlow AI&lt;/strong&gt; — a local-first invoice and receipt management assistant designed for freelancers, independent consultants, and small business owners.&lt;/p&gt;

&lt;p&gt;Running a small business means dealing with receipts, invoices, expense categories, and monthly reports. Organizing these documents manually takes time, while uploading financial documents to cloud-based AI services may raise privacy concerns.&lt;/p&gt;

&lt;p&gt;FreelanceFlow AI aims to make that workflow easier.&lt;/p&gt;

&lt;p&gt;With the application, users can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upload invoices and receipts in supported formats.&lt;/li&gt;
&lt;li&gt;Extract text from documents.&lt;/li&gt;
&lt;li&gt;Use a locally running AI model to identify invoice details such as vendor, invoice number, date, amount, and expense category.&lt;/li&gt;
&lt;li&gt;Review and correct extracted information before saving it.&lt;/li&gt;
&lt;li&gt;Store expense records in a local SQLite database.&lt;/li&gt;
&lt;li&gt;Visualize spending through a dashboard.&lt;/li&gt;
&lt;li&gt;Export expense records and monthly summaries to CSV.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is simple: &lt;strong&gt;spend less time organizing financial documents and more time running the business.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Who would pay for it?
&lt;/h3&gt;

&lt;p&gt;The intended customers are freelancers, designers, consultants, tutors, and small businesses that regularly process receipts and invoices.&lt;/p&gt;

&lt;p&gt;Potential revenue opportunities include paid setup and customization, tailored expense-reporting workflows, and premium features for small businesses. These are possible business models to validate, not established revenue.&lt;/p&gt;

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

&lt;p&gt;The project is currently a local-first application that runs on your own computer.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub repository:&lt;/strong&gt; &lt;a href="https://github.com/prathamesh-1983/FreelanceFlow-AI" rel="noopener noreferrer"&gt;https://github.com/prathamesh-1983/FreelanceFlow-AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project is built with Python and Streamlit, with separate modules for document parsing, AI extraction, database operations, validation, analytics, and reporting.&lt;/p&gt;

&lt;p&gt;The repository includes the application source code, installation instructions, sample test data, and basic automated tests.&lt;/p&gt;

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

&lt;p&gt;I built FreelanceFlow AI using a modular Python architecture.&lt;/p&gt;

&lt;h3&gt;
  
  
  Technology stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt; — application logic and data processing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit&lt;/strong&gt; — interactive user interface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt; — local model runtime.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Qwen2.5 3B&lt;/strong&gt; — the example open-weight model configured for structured invoice-field extraction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PyMuPDF&lt;/strong&gt; — text extraction from digital PDFs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tesseract OCR&lt;/strong&gt; — optional OCR for receipt images.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite&lt;/strong&gt; — local expense storage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pandas and Plotly&lt;/strong&gt; — expense summaries, analytics, and visualizations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pytest&lt;/strong&gt; — automated tests.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How the workflow operates
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;The user uploads an invoice or receipt.&lt;/li&gt;
&lt;li&gt;The document parser extracts readable text.&lt;/li&gt;
&lt;li&gt;When local AI is enabled, the text is sent to the configured Ollama model to extract structured fields.&lt;/li&gt;
&lt;li&gt;The application displays the extracted information for user review.&lt;/li&gt;
&lt;li&gt;The approved record is saved to SQLite.&lt;/li&gt;
&lt;li&gt;The dashboard and reporting modules turn saved records into useful summaries.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;AI extraction is optional, so users can still enter expenses manually if the local model is unavailable.&lt;/p&gt;

&lt;p&gt;I also designed the application around human review because an AI model can misread dates, amounts, currencies, and vendor names. Extracted values should be checked before they become financial records.&lt;/p&gt;

&lt;p&gt;The current version is an MVP. Image OCR requires a separate Tesseract installation, and scanned PDFs need additional OCR support.&lt;/p&gt;

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

&lt;p&gt;For this project, open innovation is not just a technology choice. It is connected directly to the product's intended value.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. More control over financial data
&lt;/h3&gt;

&lt;p&gt;With a correctly configured local model, invoice text can be processed without sending it to a cloud AI API. This gives users more control over where their financial documents are processed.&lt;/p&gt;

&lt;p&gt;Local processing alone does not encrypt files or secure the computer, so the application still needs appropriate security precautions.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Reduced dependence on per-request API pricing
&lt;/h3&gt;

&lt;p&gt;Running inference locally avoids per-request charges from a hosted AI inference API. Users still need suitable hardware, electricity, and storage, and may incur costs for setup and maintenance.&lt;/p&gt;

&lt;p&gt;For a small side hustle, predictable operating costs can make experimentation easier.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Freedom to experiment
&lt;/h3&gt;

&lt;p&gt;A local model makes it possible to experiment with prompts, expense categories, extraction logic, and compatible models without redesigning the whole application around one proprietary AI provider.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. A more accessible starting point
&lt;/h3&gt;

&lt;p&gt;Freelancers and small businesses should not need an expensive AI subscription just to explore basic document automation. A local-first tool gives them another option, especially when they value control over their documents.&lt;/p&gt;

&lt;p&gt;The important distinction is that open-weight models have their own licenses and limitations. Before distributing or commercially using a model, its license must be checked.&lt;/p&gt;

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

&lt;p&gt;Building this project highlighted that an AI-powered application needs more than a model that produces answers.&lt;/p&gt;

&lt;p&gt;It also needs document parsing, structured output, validation, database storage, a usable interface, error handling, and a way for users to correct mistakes.&lt;/p&gt;

&lt;p&gt;For financial workflows, human review is especially important. A polished dashboard is useful, but trustworthy records matter more than impressive-looking AI output.&lt;/p&gt;

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

&lt;p&gt;Some improvements I would like to explore are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OCR support for scanned PDF invoices.&lt;/li&gt;
&lt;li&gt;Duplicate receipt detection.&lt;/li&gt;
&lt;li&gt;Extraction confidence indicators.&lt;/li&gt;
&lt;li&gt;Better handling of multiple currencies.&lt;/li&gt;
&lt;li&gt;Stronger local data protection.&lt;/li&gt;
&lt;li&gt;Feedback-driven improvements based on real users' workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;FreelanceFlow AI is my attempt to turn open-source AI into a practical tool for a specific business problem.&lt;/p&gt;

&lt;p&gt;Rather than building another general-purpose chatbot, I wanted to explore how local AI could help someone complete a repetitive task while retaining more control over their data.&lt;/p&gt;

&lt;p&gt;The next important step is to put the application in front of freelancers, gather honest feedback, measure extraction accuracy, and learn which features are useful enough that someone would actually pay for them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you manage invoices or receipts as a freelancer or small business owner, what would you want a tool like this to automate first?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>EcoTrail AI</title>
      <dc:creator>prathamesh desai</dc:creator>
      <pubDate>Sat, 10 Oct 2026 16:41:34 +0000</pubDate>
      <link>https://dev.to/prathamesh_desai_/ecotrail-ai-2kk</link>
      <guid>https://dev.to/prathamesh_desai_/ecotrail-ai-2kk</guid>
      <description>&lt;h1&gt;
  
  
  🌿 EcoTrail AI: Explore More, Scroll Less
&lt;/h1&gt;

&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;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;EcoTrail AI is a local-first outdoor exploration companion that uses open-source multimodal AI to help people learn about the natural world around them.&lt;/p&gt;

&lt;p&gt;Users upload a photo of a plant, flower, tree, mushroom, or other outdoor scene. EcoTrail AI analyzes the image and returns a cautious identification, a confidence estimate, a short description, habitat notes, safety guidance, and a suggested outdoor activity. Users can save their discoveries in a simple observation journal.&lt;/p&gt;

&lt;p&gt;The goal is to make the screen the shortest part of the experience: use AI to get a starting point, then put the phone away and explore outdoors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who it is for:&lt;/strong&gt; hikers, walkers, gardeners, curious beginners, students, and anyone who wants to notice more of the nature around them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Safety note:&lt;/strong&gt; AI-generated identifications can be wrong. EcoTrail AI is an educational companion, not a scientific authority. Never eat or handle an unknown organism based only on an AI result.&lt;/p&gt;

&lt;p&gt;For a local demo:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start Ollama and make sure the &lt;code&gt;gemma3:4b&lt;/code&gt; model is downloaded.&lt;/li&gt;
&lt;li&gt;Run the FastAPI backend and React frontend using the steps in the repository README.&lt;/li&gt;
&lt;li&gt;Upload a clear outdoor/nature photo.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Analyze with local AI&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Review the result and save it to the observation journal.&lt;/li&gt;
&lt;li&gt;If demonstrating offline use, download the model first, then disconnect from the internet and test again.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub repository:&lt;/strong&gt; &lt;a href="https://github.com/prathamesh-1983/Ecotrail-AI" rel="noopener noreferrer"&gt;https://github.com/prathamesh-1983/Ecotrail-AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React + Vite frontend&lt;/li&gt;
&lt;li&gt;Python + FastAPI backend&lt;/li&gt;
&lt;li&gt;Ollama integration for local multimodal inference&lt;/li&gt;
&lt;li&gt;Gemma 3 4B vision model&lt;/li&gt;
&lt;li&gt;SQLite observation journal&lt;/li&gt;
&lt;li&gt;API endpoints for image analysis and saved observations&lt;/li&gt;
&lt;li&gt;Setup instructions, demo script, and submission outline&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Suggested repository name: &lt;code&gt;ecotrail-ai&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Replace the placeholder with your actual GitHub username and repository URL before publishing.&lt;/p&gt;

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

&lt;p&gt;I built EcoTrail AI as a full-stack web application with a local-first AI architecture.&lt;/p&gt;

&lt;h3&gt;
  
  
  Technology stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; React, Vite, JavaScript, CSS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Python, FastAPI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI runtime:&lt;/strong&gt; Ollama&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-weight model:&lt;/strong&gt; Gemma 3 4B, which supports image and text input&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; SQLite&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Communication:&lt;/strong&gt; REST API with JSON responses&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How the flow works
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;The user selects a nature photo in the React interface.&lt;/li&gt;
&lt;li&gt;The frontend sends the image to the FastAPI &lt;code&gt;/api/analyze&lt;/code&gt; endpoint.&lt;/li&gt;
&lt;li&gt;The backend encodes the image and sends it to the locally running Ollama API.&lt;/li&gt;
&lt;li&gt;Gemma 3 4B analyzes the image and returns structured JSON.&lt;/li&gt;
&lt;li&gt;The interface displays the likely subject, confidence estimate, description, habitat, safety guidance, and an outdoor mission.&lt;/li&gt;
&lt;li&gt;If the user saves the result, FastAPI stores it in SQLite and the journal displays it later.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Why local inference?
&lt;/h3&gt;

&lt;p&gt;After the model has been downloaded, inference can run on the user's own machine without sending the image to a hosted AI inference API. This makes local privacy and offline experimentation central to the project rather than add-on features. The web interface and backend still need to be running locally, and the initial model download requires internet access.&lt;/p&gt;

&lt;h3&gt;
  
  
  Current scope and limitations
&lt;/h3&gt;

&lt;p&gt;This submission is an MVP. Its predictions have not been scientifically validated, and the confidence value is model-generated rather than a calibrated probability. Image analysis requires a compatible local Ollama installation and enough hardware resources to run the model. The project should not be used for plant edibility, medical advice, or emergency decisions.&lt;/p&gt;

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

&lt;p&gt;Open innovation made it possible to build the core experience around a model that can run locally instead of depending on a closed, hosted AI API.&lt;/p&gt;

&lt;p&gt;For this project, that enables:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Privacy-oriented experimentation:&lt;/strong&gt; nature photos can stay on the local machine during inference.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;More control:&lt;/strong&gt; the model, prompt, API flow, and application code can be inspected and adapted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline potential:&lt;/strong&gt; once the model is installed, image analysis can work without an active internet connection, subject to the local setup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility for builders:&lt;/strong&gt; developers and students can prototype multimodal AI without integrating a paid hosted inference API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Room to improve:&lt;/strong&gt; the community can contribute better prompts, evaluation examples, accessibility improvements, additional languages, and outdoor features.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open models do not automatically guarantee accuracy or safety. Testing, transparent limitations, and responsible user guidance remain essential.&lt;/p&gt;

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

&lt;p&gt;Optional. Add a DevRelay agent-session link or embed after saving your session.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;!-- Replace this comment with the DevRelay agent_session embed or link if available. --&amp;gt;&lt;/code&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Primary theme:&lt;/strong&gt; Touch Grass / outdoor exploration with open-source AI.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check the challenge rules and list only the partner prize categories that EcoTrail AI genuinely qualifies for. Remove this section or update it if you are not entering a specific partner category.&lt;/p&gt;




&lt;h2&gt;
  
  
  Before You Publish
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Replace the GitHub repository placeholder with your real public repository.&lt;/li&gt;
&lt;li&gt;[ ] Add a deployed demo or video link, if available.&lt;/li&gt;
&lt;li&gt;[ ] Add screenshots of the working app.&lt;/li&gt;
&lt;li&gt;[ ] Test the app with a real outdoor photo and describe what happened.&lt;/li&gt;
&lt;li&gt;[ ] Include a DevRelay session if you have one.&lt;/li&gt;
&lt;li&gt;[ ] Confirm the challenge deadline and prize-category rules.&lt;/li&gt;
&lt;li&gt;[ ] Keep claims about accuracy and offline behavior consistent with what you actually tested.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>InterviewBuddy AI</title>
      <dc:creator>prathamesh desai</dc:creator>
      <pubDate>Sun, 04 Oct 2026 16:03:58 +0000</pubDate>
      <link>https://dev.to/prathamesh_desai_/interviewbuddy-ai-42n0</link>
      <guid>https://dev.to/prathamesh_desai_/interviewbuddy-ai-42n0</guid>
      <description>&lt;h1&gt;
  
  
  🤝 InterviewBuddy AI --- A Local AI Interview Partner for a Friend
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build&lt;br&gt;
for a&lt;br&gt;
Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;InterviewBuddy AI&lt;/strong&gt;, a beginner-friendly AI mock interview&lt;br&gt;
partner for a friend who is preparing for &lt;strong&gt;Data Analyst, Data&lt;br&gt;
Executive, and MIS Executive interviews&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The problem was simple: finding interview questions is easy, but finding&lt;br&gt;
someone who is consistently available to conduct a realistic interview,&lt;br&gt;
ask follow-up questions, and give useful feedback is much harder.&lt;/p&gt;

&lt;p&gt;InterviewBuddy AI turns a resume into a personalized interview practice&lt;br&gt;
session.&lt;/p&gt;

&lt;p&gt;A user can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Upload a resume in TXT, PDF, or DOCX format.&lt;/li&gt;
&lt;li&gt;  Select a target job role.&lt;/li&gt;
&lt;li&gt;  Choose an interview difficulty.&lt;/li&gt;
&lt;li&gt;  Generate personalized interview questions.&lt;/li&gt;
&lt;li&gt;  Answer questions in an interactive interview session.&lt;/li&gt;
&lt;li&gt;  Receive AI feedback on each answer.&lt;/li&gt;
&lt;li&gt;  See strengths, improvement areas, missing points, and suggestions.&lt;/li&gt;
&lt;li&gt;  Receive a final practice report and a short improvement plan.&lt;/li&gt;
&lt;li&gt;  Store interview-session information locally using SQLite.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is not to replace a real interviewer. It is to give my friend&lt;br&gt;
an always-available practice partner so they can practice repeatedly&lt;br&gt;
without needing another person to be available every time.&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Local demo:&lt;/strong&gt; Run the project locally using the instructions in the&lt;br&gt;
GitHub README.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;For the final submission, include a short video showing: resume upload&lt;br&gt;
→ role selection → AI-generated questions → answering → AI feedback →&lt;br&gt;
final report.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub repository:&lt;/strong&gt; (&lt;a href="https://github.com/prathamesh-1983/InterviewBuddy-AI/tree/main" rel="noopener noreferrer"&gt;https://github.com/prathamesh-1983/InterviewBuddy-AI/tree/main&lt;/a&gt;)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;interviewbuddy-ai/
│
├── backend/
│   ├── main.py
│   ├── ai.py
│   └── database.py
│
├── frontend/
│   ├── index.html
│   ├── style.css
│   └── app.js
│
├── data/
├── uploads/
├── sample_resume.txt
├── requirements.txt
├── .env.example
├── .gitignore
├── LICENSE
└── README.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;InterviewBuddy AI is built around &lt;strong&gt;open-source/open-weight AI running&lt;br&gt;
locally&lt;/strong&gt; rather than depending on a closed hosted AI API.&lt;/p&gt;
&lt;h3&gt;
  
  
  AI
&lt;/h3&gt;

&lt;p&gt;The project uses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Gemma 3&lt;/strong&gt; as the open-weight language model.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Ollama&lt;/strong&gt; for local model execution and inference.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Python&lt;/strong&gt; for the AI and backend logic.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The basic AI flow is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Resume
   ↓
Resume text extraction
   ↓
FastAPI backend
   ↓
Personalized prompt
   ↓
Ollama
   ↓
Gemma 3
   ↓
Interview questions
   ↓
Candidate answer
   ↓
Gemma 3 evaluation
   ↓
Feedback + score
   ↓
Final practice report
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Application Stack
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Frontend
HTML + CSS + JavaScript
        │
        ▼
Backend
Python + FastAPI
        │
        ├──────────────► SQLite
        │
        ▼
Local AI
Ollama + Gemma 3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Resume Processing
&lt;/h3&gt;

&lt;p&gt;The application accepts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;code&gt;.txt&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;.pdf&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;.docx&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The extracted resume content is passed to the AI so that interview&lt;br&gt;
questions can be relevant to the candidate's actual experience and&lt;br&gt;
skills.&lt;/p&gt;

&lt;p&gt;For example, a resume mentioning &lt;strong&gt;Excel, Power BI, SQL, Python, and&lt;br&gt;
data cleaning&lt;/strong&gt; can result in questions specifically related to those&lt;br&gt;
skills instead of only generic interview questions.&lt;/p&gt;
&lt;h3&gt;
  
  
  AI Interview Workflow
&lt;/h3&gt;

&lt;p&gt;The AI is used for three major tasks:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Question generation&lt;/strong&gt; --- the model receives the candidate's
resume, target role, and difficulty level and generates relevant
interview questions.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Answer evaluation&lt;/strong&gt; --- after each answer, the model evaluates the
response and identifies strengths, missing points, and areas for
improvement.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Final report&lt;/strong&gt; --- after the interview, the model summarizes
performance and creates a practical improvement plan.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open innovation mattered for this project because the application is&lt;br&gt;
intended to be a &lt;strong&gt;personal, repeatable, and privacy-friendly interview&lt;br&gt;
practice tool&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Using a locally running open-weight model made several things possible.&lt;/p&gt;
&lt;h3&gt;
  
  
  1. The resume can stay local
&lt;/h3&gt;

&lt;p&gt;A resume contains personal information such as education, work&lt;br&gt;
experience, contact information, and skills.&lt;/p&gt;

&lt;p&gt;With local inference, the core AI processing can happen on the user's&lt;br&gt;
own computer instead of requiring every resume and interview answer to&lt;br&gt;
be sent to a third-party hosted AI service.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Traditional hosted approach:

Resume → Internet → Closed AI API → Response


InterviewBuddy:

Resume → Local application → Local Gemma model → Response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. No per-request AI API cost
&lt;/h3&gt;

&lt;p&gt;A local model does not require a paid API request for every practice&lt;br&gt;
question, making repeated interview practice more practical for students&lt;br&gt;
and job seekers.&lt;/p&gt;
&lt;h3&gt;
  
  
  3. The AI layer is replaceable
&lt;/h3&gt;

&lt;p&gt;Because the project communicates with Ollama, the model can be changed&lt;br&gt;
without redesigning the entire application.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Gemma 3
   ↓
another compatible local model
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. More control over the AI
&lt;/h3&gt;

&lt;p&gt;Running the model locally makes it easier to experiment with prompts,&lt;br&gt;
model choices, response formats, and interview behavior without being&lt;br&gt;
locked into one closed provider.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Open tools made the project accessible
&lt;/h3&gt;

&lt;p&gt;The project uses technologies that a beginner can inspect, modify, and&lt;br&gt;
learn from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Python&lt;/li&gt;
&lt;li&gt;  FastAPI&lt;/li&gt;
&lt;li&gt;  HTML/CSS/JavaScript&lt;/li&gt;
&lt;li&gt;  SQLite&lt;/li&gt;
&lt;li&gt;  Ollama&lt;/li&gt;
&lt;li&gt;  Gemma 3&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;strong&gt;DevRelay session:&lt;/strong&gt; &lt;code&gt;[Add your saved DevRelay session link here]&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This section can be updated with the saved DevRelay session so judges&lt;br&gt;
can see the development process.&lt;/p&gt;

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

&lt;p&gt;Building InterviewBuddy AI helped me understand that a useful AI&lt;br&gt;
application does not need to be extremely large.&lt;/p&gt;

&lt;p&gt;The most important part was identifying a real problem for one person&lt;br&gt;
and building around that problem.&lt;/p&gt;

&lt;p&gt;I also learned how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Connect a web application to a local AI model.&lt;/li&gt;
&lt;li&gt;  Use an open-weight model through Ollama.&lt;/li&gt;
&lt;li&gt;  Build prompts around structured user information.&lt;/li&gt;
&lt;li&gt;  Extract information from uploaded resumes.&lt;/li&gt;
&lt;li&gt;  Create an AI evaluation workflow.&lt;/li&gt;
&lt;li&gt;  Store application data with SQLite.&lt;/li&gt;
&lt;li&gt;  Separate frontend, backend, database, and AI responsibilities.&lt;/li&gt;
&lt;li&gt;  Design an AI application around privacy and local inference.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Future Improvements
&lt;/h2&gt;

&lt;p&gt;If I continue developing InterviewBuddy AI, I would like to add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Voice-based interviews.&lt;/li&gt;
&lt;li&gt;  Speech-to-text answers.&lt;/li&gt;
&lt;li&gt;  AI-generated follow-up questions.&lt;/li&gt;
&lt;li&gt;  Job-description upload and job-specific interviews.&lt;/li&gt;
&lt;li&gt;  Interview performance history and charts.&lt;/li&gt;
&lt;li&gt;  More detailed scoring for technical and behavioral questions.&lt;/li&gt;
&lt;li&gt;  Multilingual interview practice.&lt;/li&gt;
&lt;li&gt;  A recruiter/interviewer mode.&lt;/li&gt;
&lt;li&gt;  Better local model selection based on available hardware.&lt;/li&gt;
&lt;li&gt;  Optional deployment for friends who cannot run a local model.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Remove this section if no partner category applies.&lt;/p&gt;

&lt;p&gt;Potential partner technologies used in the project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Ollama / local AI inference&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Gemma 3 / open-weight AI&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If entering additional partner categories, list the applicable&lt;br&gt;
categories according to the official challenge requirements.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Note
&lt;/h2&gt;

&lt;p&gt;InterviewBuddy AI started with a simple question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What could I build that would genuinely help a friend?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The answer was not another generic chatbot.&lt;/p&gt;

&lt;p&gt;It was a practice partner that could be available whenever they needed&lt;br&gt;
it.&lt;/p&gt;

&lt;p&gt;By combining a simple web application with a locally running open-weight&lt;br&gt;
AI model, InterviewBuddy AI makes personalized interview practice more&lt;br&gt;
accessible, repeatable, and privacy-friendly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Built for a friend. Built with open AI. Built to be useful.&lt;/strong&gt; 🤝&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Jan Sahay: Transforming Healthcare Access with an AI Voice Agent</title>
      <dc:creator>prathamesh desai</dc:creator>
      <pubDate>Sat, 15 Aug 2026 15:50:31 +0000</pubDate>
      <link>https://dev.to/prathamesh_desai_/jan-sahay-transforming-healthcare-access-with-an-ai-voice-agent-3608</link>
      <guid>https://dev.to/prathamesh_desai_/jan-sahay-transforming-healthcare-access-with-an-ai-voice-agent-3608</guid>
      <description>&lt;p&gt;Introduction&lt;/p&gt;

&lt;p&gt;Access to healthcare is still a challenge for millions of people, especially those who struggle with language barriers, limited digital literacy, lack of awareness, or difficulty navigating healthcare services. While smartphones and digital health platforms have made healthcare information more accessible, many people still find traditional apps and websites difficult to use.&lt;/p&gt;

&lt;p&gt;Jan Sahay Health Access AI Voice Agent is designed to bridge this gap through a simple and natural voice-based interface. Instead of searching through websites, filling out complicated forms, or navigating multiple menus, users can communicate with an AI voice agent using everyday language.&lt;/p&gt;

&lt;p&gt;The goal is simple: make healthcare access easier, more inclusive, and more human-centered.&lt;/p&gt;

&lt;p&gt;What Is Jan Sahay?&lt;/p&gt;

&lt;p&gt;Jan Sahay is an AI-powered healthcare access assistant that allows users to interact with a voice agent to find relevant health information and access healthcare services.&lt;/p&gt;

&lt;p&gt;The system is designed around a conversational experience. A user can speak naturally, explain what they need, and receive an understandable response from the AI agent.&lt;/p&gt;

&lt;p&gt;For example, a user might say:&lt;/p&gt;

&lt;p&gt;“I have a fever. What should I do?”&lt;/p&gt;

&lt;p&gt;or&lt;/p&gt;

&lt;p&gt;“Where is the nearest government hospital?”&lt;/p&gt;

&lt;p&gt;Instead of requiring the user to understand complicated medical terminology or navigate a complex application, the voice agent can guide them through the appropriate next steps.&lt;/p&gt;

&lt;p&gt;Why a Voice-Based Healthcare Agent?&lt;/p&gt;

&lt;p&gt;Traditional digital healthcare platforms often assume that users are comfortable reading, typing, searching, and navigating applications. This can create barriers for elderly users, people with limited digital literacy, and users who are more comfortable communicating through speech.&lt;/p&gt;

&lt;p&gt;A voice-first approach can make healthcare technology more accessible.&lt;/p&gt;

&lt;p&gt;Key advantages include:&lt;br&gt;
Natural interaction: Users can speak instead of typing.&lt;br&gt;
Accessibility: Helpful for users who have difficulty reading or navigating apps.&lt;br&gt;
Multilingual potential: The system can support multiple Indian languages.&lt;br&gt;
Faster access: Users can directly explain what they need.&lt;br&gt;
24/7 availability: An AI agent can provide assistance at any time.&lt;br&gt;
Simple experience: Users do not need to understand complex healthcare systems.&lt;br&gt;
How the Jan Sahay AI Voice Agent Works&lt;/p&gt;

&lt;p&gt;The experience can be divided into several stages.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;User Starts a Conversation&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The user activates the voice agent and speaks naturally.&lt;/p&gt;

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

&lt;p&gt;“I want to find a nearby healthcare center.”&lt;/p&gt;

&lt;p&gt;The system captures the user's speech and converts it into text that can be processed by the AI system.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;AI Understands the Request&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The AI agent analyzes the user's intent and identifies what kind of assistance is required.&lt;/p&gt;

&lt;p&gt;The request could involve:&lt;/p&gt;

&lt;p&gt;Finding healthcare facilities&lt;br&gt;
Understanding general health information&lt;br&gt;
Navigating healthcare services&lt;br&gt;
Finding relevant government health resources&lt;br&gt;
Understanding what information or documents may be required&lt;br&gt;
Getting guidance on the next appropriate step&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;AI Provides a Simple Response&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The voice agent responds conversationally rather than presenting a complicated list of information.&lt;/p&gt;

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

&lt;p&gt;“I can help you find a nearby healthcare center. Please share your location or tell me your area.”&lt;/p&gt;

&lt;p&gt;This makes the interaction easier for users who may not be familiar with digital healthcare platforms.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Guided Assistance&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Instead of simply answering one question, Jan Sahay can guide the user through a process.&lt;/p&gt;

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

&lt;p&gt;User: “I need to visit a hospital.”&lt;/p&gt;

&lt;p&gt;AI Agent: “I can help you find one. What area are you currently in?”&lt;/p&gt;

&lt;p&gt;User: “Thane.”&lt;/p&gt;

&lt;p&gt;AI Agent: “I can help you look for healthcare facilities in Thane. Would you like a government hospital, clinic, or any nearby healthcare facility?”&lt;/p&gt;

&lt;p&gt;This conversational flow makes healthcare navigation more intuitive.&lt;/p&gt;

&lt;p&gt;Core Features of Jan Sahay&lt;br&gt;
AI Voice Interaction&lt;/p&gt;

&lt;p&gt;The primary interface is voice. Users can communicate naturally without depending entirely on keyboards, menus, or complicated forms.&lt;/p&gt;

&lt;p&gt;Multilingual Accessibility&lt;/p&gt;

&lt;p&gt;India has hundreds of languages and dialects. A healthcare access system can become significantly more inclusive by supporting regional languages.&lt;/p&gt;

&lt;p&gt;A multilingual Jan Sahay agent could allow users to communicate in languages they are comfortable with, making healthcare information easier to understand.&lt;/p&gt;

&lt;p&gt;Healthcare Navigation&lt;/p&gt;

&lt;p&gt;The agent can help users understand how to access healthcare services and identify relevant facilities or resources.&lt;/p&gt;

&lt;p&gt;Human-Centered Conversations&lt;/p&gt;

&lt;p&gt;Rather than responding with technical language, the AI should communicate using clear, simple, and empathetic language.&lt;/p&gt;

&lt;p&gt;Accessible User Interface&lt;/p&gt;

&lt;p&gt;The frontend can be designed with large buttons, clear status indicators, readable text, and a simple voice interaction area.&lt;/p&gt;

&lt;p&gt;Important agent states can include:&lt;/p&gt;

&lt;p&gt;Ready – waiting for the user&lt;br&gt;
Listening – capturing the user's voice&lt;br&gt;
Thinking – processing the request&lt;br&gt;
Speaking – providing the response&lt;br&gt;
Error – informing the user when something went wrong&lt;/p&gt;

&lt;p&gt;These states help users understand what the AI is doing at every moment.&lt;/p&gt;

&lt;p&gt;Example User Journey&lt;/p&gt;

&lt;p&gt;Imagine a user who wants to locate a healthcare facility.&lt;/p&gt;

&lt;p&gt;Step 1: Start&lt;/p&gt;

&lt;p&gt;The user opens Jan Sahay.&lt;/p&gt;

&lt;p&gt;Step 2: Speak&lt;/p&gt;

&lt;p&gt;The user says:&lt;/p&gt;

&lt;p&gt;“I need a healthcare center near me.”&lt;/p&gt;

&lt;p&gt;Step 3: Understand&lt;/p&gt;

&lt;p&gt;The AI identifies that the user is looking for a nearby healthcare facility.&lt;/p&gt;

&lt;p&gt;Step 4: Clarify&lt;/p&gt;

&lt;p&gt;The agent may ask:&lt;/p&gt;

&lt;p&gt;“Would you like a government facility or any nearby healthcare center?”&lt;/p&gt;

&lt;p&gt;Step 5: Guide&lt;/p&gt;

&lt;p&gt;Based on the user's response and available information, the system can guide the user toward an appropriate resource.&lt;/p&gt;

&lt;p&gt;The entire experience can happen through a natural conversation rather than multiple screens.&lt;/p&gt;

&lt;p&gt;Safety and Responsible AI&lt;/p&gt;

&lt;p&gt;Healthcare is a sensitive domain, so Jan Sahay should be designed with strong safety principles.&lt;/p&gt;

&lt;p&gt;The AI voice agent should not replace doctors or medical professionals. Its primary role should be healthcare access, navigation, information support, and appropriate guidance.&lt;/p&gt;

&lt;p&gt;The system should:&lt;/p&gt;

&lt;p&gt;Clearly communicate its limitations.&lt;br&gt;
Avoid presenting uncertain information as medical fact.&lt;br&gt;
Encourage professional medical care when appropriate.&lt;br&gt;
Avoid making definitive diagnoses.&lt;br&gt;
Protect user privacy.&lt;br&gt;
Minimize collection of unnecessary personal information.&lt;br&gt;
Clearly distinguish general information from professional medical advice.&lt;br&gt;
Provide appropriate escalation guidance for potentially urgent situations.&lt;/p&gt;

&lt;p&gt;Responsible AI is especially important when users may rely on the system during stressful healthcare situations.&lt;/p&gt;

&lt;p&gt;Technology Behind the Voice Agent&lt;/p&gt;

&lt;p&gt;A system like Jan Sahay can combine several AI technologies.&lt;/p&gt;

&lt;p&gt;Speech Recognition&lt;/p&gt;

&lt;p&gt;Converts the user's spoken words into text.&lt;/p&gt;

&lt;p&gt;Large Language Model&lt;/p&gt;

&lt;p&gt;Processes the user's request, understands conversational context, and generates an appropriate response.&lt;/p&gt;

&lt;p&gt;Retrieval-Augmented Generation&lt;/p&gt;

&lt;p&gt;Healthcare information can be connected to trusted and verified sources so that the AI can provide information grounded in reliable knowledge rather than relying solely on its language model.&lt;/p&gt;

&lt;p&gt;Text-to-Speech&lt;/p&gt;

&lt;p&gt;Converts the AI's response back into natural-sounding speech.&lt;/p&gt;

&lt;p&gt;Voice Agent Framework&lt;/p&gt;

&lt;p&gt;A real-time voice infrastructure can connect speech recognition, AI reasoning, tools, and text-to-speech into a continuous conversation.&lt;/p&gt;

&lt;p&gt;Healthcare Data and APIs&lt;/p&gt;

&lt;p&gt;Where appropriate and legally permitted, trusted healthcare directories, facility information, and public health resources can be integrated into the system.&lt;/p&gt;

&lt;p&gt;Potential Impact&lt;/p&gt;

&lt;p&gt;Jan Sahay has the potential to make healthcare navigation more accessible for people who are underserved by traditional digital interfaces.&lt;/p&gt;

&lt;p&gt;Its impact could extend to:&lt;/p&gt;

&lt;p&gt;Rural and semi-urban communities&lt;br&gt;
Elderly users&lt;br&gt;
Users with limited digital literacy&lt;br&gt;
Multilingual communities&lt;br&gt;
People who prefer voice interaction&lt;br&gt;
Users who have difficulty navigating healthcare websites&lt;br&gt;
Communities that need simpler access to public healthcare information&lt;/p&gt;

&lt;p&gt;The larger vision is not simply to build another chatbot. It is to create a voice-first bridge between people and healthcare resources.&lt;/p&gt;

&lt;p&gt;Future Possibilities&lt;/p&gt;

&lt;p&gt;Jan Sahay could evolve into a broader healthcare access platform with capabilities such as:&lt;/p&gt;

&lt;p&gt;Support for multiple Indian languages&lt;br&gt;
Healthcare facility discovery&lt;br&gt;
Appointment-navigation assistance&lt;br&gt;
Government healthcare scheme information&lt;br&gt;
Medication and document reminders&lt;br&gt;
Follow-up guidance&lt;br&gt;
Accessibility features for elderly users&lt;br&gt;
Integration with verified healthcare databases&lt;br&gt;
Human-agent escalation&lt;br&gt;
Personalized but privacy-conscious conversations&lt;/p&gt;

&lt;p&gt;These capabilities should be introduced carefully, with safety, privacy, and reliability remaining the highest priorities.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;Jan Sahay Health Access AI Voice Agent represents a vision of healthcare technology that focuses on accessibility rather than complexity.&lt;/p&gt;

&lt;p&gt;For many users, the biggest barrier is not the absence of healthcare information—it is the difficulty of finding, understanding, and navigating that information.&lt;/p&gt;

&lt;p&gt;A conversational voice agent can help reduce this barrier by allowing people to simply speak, ask, understand, and take the next step.&lt;/p&gt;

&lt;p&gt;With responsible AI, trusted healthcare information, multilingual support, privacy protection, and an accessible user experience, Jan Sahay can become a meaningful example of how artificial intelligence can be used to improve healthcare access.&lt;/p&gt;

&lt;p&gt;Jan Sahay's vision is simple: technology should adapt to people—not force people to adapt to technology.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>llm</category>
    </item>
  </channel>
</rss>
