<?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: Anant Singh</title>
    <description>The latest articles on DEV Community by Anant Singh (@anant_singh_tfc).</description>
    <link>https://dev.to/anant_singh_tfc</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%2F4157757%2Fef673286-a0ad-46d5-aa0e-36296fbe6de2.png</url>
      <title>DEV Community: Anant Singh</title>
      <link>https://dev.to/anant_singh_tfc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/anant_singh_tfc"/>
    <language>en</language>
    <item>
      <title>GrassQuest</title>
      <dc:creator>Anant Singh</dc:creator>
      <pubDate>Sun, 11 Oct 2026 05:57:28 +0000</pubDate>
      <link>https://dev.to/anant_singh_tfc/grassquest-1e2c</link>
      <guid>https://dev.to/anant_singh_tfc/grassquest-1e2c</guid>
      <description>&lt;p&gt;What I Built&lt;br&gt;
GrassQuest turns a short walk into a small discovery quest. It uses your browser’s location to generate a nearby waypoint, then invites you to head there, notice something outdoors, and write a quick reflection. An open-weight Gemma model classifies that reflection as Monsoon Water, Earthy Terra, Urban Flora, or Solar Heat. Your completed quest adds a colored “fog” area to your map, saved in your browser.&lt;/p&gt;

&lt;p&gt;It’s for anyone who wants a lightweight nudge to explore their surroundings instead of spending more time scrolling.&lt;/p&gt;

&lt;p&gt;Demo&lt;br&gt;
&lt;a href="https://grass-quest-ixi8.onrender.com/" rel="noopener noreferrer"&gt;Running live on Render&lt;/a&gt; - added rate limiting to limit the number of calls to the service, to protect against misuse of the service.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg4zjxzs4jpp9y6819ag2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg4zjxzs4jpp9y6819ag2.png" alt="Fog clouds over quests completed in past" width="580" height="752"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fors55b5zuax55nobro0u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fors55b5zuax55nobro0u.png" alt="Hover over fog cloud to see reflection" width="577" height="532"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkd3we5h3mq1m3npf9q0h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkd3we5h3mq1m3npf9q0h.png" alt="Elemental card generated from reflection" width="512" height="728"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Code&lt;br&gt;
&lt;a href="https://github.com/the-flying-cow/grass-quest" rel="noopener noreferrer"&gt;GitHub link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How I Built It&lt;br&gt;
The frontend is HTML, CSS, and vanilla JavaScript, with Leaflet and OpenStreetMap for the map. A FastAPI backend sends the reflection to a Gradio endpoint in a Hugging Face Space, where Google Gemma 3 4B Instruct runs on GPU and returns one of the four element labels.&lt;/p&gt;

&lt;p&gt;The model is part of the core interaction: its classification shapes the quest result and the color of the completed area on the map.&lt;/p&gt;

&lt;p&gt;Why Does Open Innovation Matter?&lt;br&gt;
Using an open-weight model makes the classifier’s behavior something I can inspect and change—not a black-box API I have to accept as-is. The labels and instructions can be adapted for a different kind of outdoor activity, and the model can be swapped or self-hosted on suitable hardware.&lt;/p&gt;

&lt;p&gt;GrassQuest isn't just open-source in code-it is designed to be completely free to build, deploy, and host for yourself:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Free Single-Service Cloud Hosting: Uses Render’s free tier to serve both the FastAPI backend and static frontend assets out of a single service.&lt;/li&gt;
&lt;li&gt;Zero Database Infrastructure: Eliminates paid cloud storage or managed database costs by storing user exploration state natively in browser localStorage.&lt;/li&gt;
&lt;li&gt;Zero-Cost Open AI Inference: Leverages open-weight Gemma 3 models hosted on Hugging Face Spaces, avoiding expensive commercial API subscriptions.&lt;/li&gt;
&lt;li&gt;Fork &amp;amp; Customize: Anyone can clone the repository, tweak the prompt to fit custom elemental themes (or eco-tours), and launch their own community instance in minutes.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;ul&gt;
&lt;li&gt;Best Use of Render&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>ResumeTuner</title>
      <dc:creator>Anant Singh</dc:creator>
      <pubDate>Mon, 05 Oct 2026 05:26:04 +0000</pubDate>
      <link>https://dev.to/anant_singh_tfc/resumetuner-5h6</link>
      <guid>https://dev.to/anant_singh_tfc/resumetuner-5h6</guid>
      <description>&lt;p&gt;What I Built&lt;br&gt;
I built ResumeTuner for my roommate, as it is our placement season going on and I have been placed already so instead of sitting and watching movies I decided why not build something productive and helpful for your friends.&lt;br&gt;
During placements, one of the repetitive parts of applying for jobs is going through every new job description and comparing it with your resume. A candidate has to check which skills they already have, which requirements are only partly covered, which requirements are completely missing, and what they should prepare before applying or appearing for an interview.&lt;br&gt;
When doing this for many companies, the process becomes time-consuming. It is also easy to overlook a requirement or assume that two similar technologies are the same.&lt;br&gt;
ResumeTuner is a small local AI tool that reduces this manual work. The user provides a resume PDF and a job description PDF, and ResumeTuner compares the two and produces an analysis.&lt;br&gt;
The analysis is divided into five parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Similarity Matches: requirements from the job description that have clear supporting evidence in the resume.&lt;/li&gt;
&lt;li&gt;Differences and Gaps: requirements where the resume has related experience, but does not fully satisfy what the job description asks for.&lt;/li&gt;
&lt;li&gt;Missing Requirements: important requirements for which there is no meaningful evidence in the resume.&lt;/li&gt;
&lt;li&gt;Preparation Priorities: topics the candidate should focus on before applying or interviewing, with HIGH, MEDIUM, and LOW priorities.&lt;/li&gt;
&lt;li&gt;Overall Assessment: a short summary of the candidate's strengths, major gaps, and current readiness for the role.
The goal is not to tell someone whether they will get the job. It is to make the comparison process faster and help them understand where they already fit and where they need to prepare.
For my roommate, this means that instead of manually comparing every new job description with his resume, he can use the same workflow for each role and quickly understand what needs attention.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://github.com/the-flying-cow/ResumeTuner" rel="noopener noreferrer"&gt;GitHub - ResumeTuner&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tools Used&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python: Handles the application logic and connects all the components.&lt;/li&gt;
&lt;li&gt;PyMuPDF: Extracts text from the resume and job description PDFs.&lt;/li&gt;
&lt;li&gt;Ollama: Runs the AI model locally without requiring a cloud API.&lt;/li&gt;
&lt;li&gt;Gemma 3:4B: Compares the resume with the job description and produces the structured analysis.&lt;/li&gt;
&lt;li&gt;Pydantic: Validates the AI-generated JSON before it is used by the application.&lt;/li&gt;
&lt;li&gt;Streamlit: Presents the analysis in a readable browser interface.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why Does Open Innovation Matter?&lt;br&gt;
Open innovation is what made the main idea behind ResumeTuner possible.&lt;br&gt;
A resume is personal information. For a tool like this, sending the resume and job description to a remote AI service is not always desirable. I wanted the core analysis to be something that could run on the user's own computer.&lt;br&gt;
Using Gemma 3:4B through Ollama made that possible.&lt;br&gt;
The AI part of ResumeTuner is not hidden behind a closed API. The model runs locally, the application communicates with it through a local inference layer, and the rest of the pipeline is built with openly available tools.&lt;br&gt;
This also makes the project easier to experiment with. The model can be changed without redesigning the entire application, and the surrounding Python code remains independent of a particular cloud provider.&lt;br&gt;
There is also no need to maintain an API key or pay for every resume analysis. The main requirement is having enough local hardware to run the selected model.&lt;br&gt;
For this particular problem, that matters because the project is about helping someone with a personal task, not building a large cloud service.&lt;br&gt;
Open tools allowed me to take a simple problem from my own surroundings, connect a local AI model to it, and build a useful workflow without needing access to a proprietary AI platform.&lt;/p&gt;

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