DEV Community

Cover image for What Building Two Gemini-Powered Apps Taught Me About AI, Tokens, and Scope Discipline
HarmanPreet-Singh-XYT
HarmanPreet-Singh-XYT

Posted on

What Building Two Gemini-Powered Apps Taught Me About AI, Tokens, and Scope Discipline

From Hackathon to Impact: What I Built with Google Gemini

This is a submission for the Built with Google Gemini: Writing Challenge


What I Built with Google Gemini

I didn't build one thing with Google Gemini — I built two, each solving a completely different human problem. And honestly, that contrast is what made this experience so valuable.


Project 1: SunRes — The Resume That Actually Gets You the Interview

The Problem: Most people apply for jobs the same way — they spray one resume across dozens of listings and wonder why they never hear back. The resume isn't bad. It's just wrong for the job. Mismatched keywords. Missing skills. Sections that ATS systems silently reject before a human ever sees them.

I've felt this personally as a student applying for internships. So I built SunRes.

What it does:

SunRes isn't just a resume generator — it's a mismatch engine. Users build a master profile (all their projects, skills, achievements), then paste in a job description. Gemini then:

  • Parses the uploaded resume to auto-fill their profile
  • Analyzes the job description to extract what the company actually wants
  • Generates a job–profile match score and explains why the user might get rejected
  • Suggests targeted fixes to close those gaps
  • Auto-selects the most relevant projects and achievements for that specific role
  • Generates a tailored resume and cover letter
  • Lets users refine everything through a chatbot interface before downloading

The key insight: one profile, infinite tailored resumes. You never start from scratch again.

Stack: Next.js · FastAPI · PostgreSQL · Google Gemini API

Demo: Watch it in action →


Project 2: NorthStar — A Lifeline for People in Crisis

The Problem: When someone is in a genuine crisis — no food, no shelter, a medical emergency — they don't need a cluttered Google search. They need the nearest food bank, the nearest emergency shelter, the nearest free clinic. Right now. Standard map apps prioritize commercial results. That's not good enough.

NorthStar strips away the noise.

What it does:

Using the browser's Location API, NorthStar instantly surfaces the most relevant community resources nearby — organized into four categories: Health, Shelter, Sustenance, and Support. A custom semantic mapping system on the backend translates simple icon clicks into precise, filtered queries (e.g., "Shelters" → "homeless shelter emergency housing"), cutting through commercial noise to surface the places that actually help.

But finding the resource is only half the battle. Once you see a result — a shelter, a clinic, a food bank — you immediately have follow-up questions. Is it wheelchair accessible? What are the hours? Do they take walk-ins? That's where Gemini comes in. NorthStar has a built-in Gemini-powered chat on each result, so users can ask natural questions about any location and get instant, contextual answers — without leaving the app or opening a new search.

The goal: from crisis moment to actionable resource in under two seconds, with the context you need to actually show up.

Stack: React.js · Python/FastAPI · Google Maps & Places APIs · Google Gemini API · Google Cloud

Demo: Watch it in action →


What I Learned

These two projects taught me different things, and I think that's worth unpacking.

SunRes taught me that AI is most powerful when it explains, not just executes. Early versions just generated a resume. That felt hollow — like magic with no instruction manual. The breakthrough was making Gemini articulate why a profile was a weak match and what specifically needed to change. That transparency turned a tool into a coach. Users didn't just get an output; they understood their problem.

NorthStar taught me that infrastructure is a product feature. We spent real time on IAM permissions, API key restrictions, and quota management in Google Cloud Console. That's not glamorous work, but it's what makes something actually deployable and sustainable. Security isn't a post-launch task — it's part of the build.

Both projects taught me scope discipline. Hackathon timelines are brutal. The features you don't build matter as much as the ones you do. Knowing when to stop is a skill.

And perhaps most unexpectedly: clear storytelling matters as much as clean code. A product that people understand and feel connected to will always outperform a technically superior one that nobody gets.


Google Gemini Feedback

I'll be candid here, because I think honest feedback is more useful than praise.

NorthStar (smooth experience): Gemini plays a direct user-facing role here — once someone finds a resource on the map, they can ask Gemini questions about it right on the page: accessibility, working hours, walk-in availability, and so on. The queries are focused and conversational, the responses are short and practical, and it just... worked. Clean outputs, fast responses, no friction. When the scope of what you're asking Gemini is well-defined and contained, it really shines.

SunRes (where things got real): SunRes pushed Gemini much harder. The pipeline was: parse a resume → extract structured profile data → analyze a job description → cross-reference both → generate scored feedback with reasoning → produce a tailored resume → write a cover letter. That's a lot of tokens per request, and I hit walls.

The honest truth: I misconfigured my max_tokens values. I set them too conservatively early on, and responses were getting truncated mid-output — which broke my structured JSON parsing downstream and caused some ugly cascading failures. Once I understood the actual token budget I needed per stage and set appropriate limits, things stabilized.

Was it a Gemini problem? Not really. It was a me problem — I underestimated what I was asking for. But it did surface something worth noting: when you're building multi-step AI pipelines, token budgeting isn't an afterthought. It's architecture. I'd love better built-in tooling or clearer documentation around estimating token usage for complex, chained prompts.

What worked exceptionally well in Gemini: structured reasoning over ambiguous inputs. Resumes come in wildly different formats. Job descriptions are inconsistently written. Gemini handled both with a reliability I didn't fully expect — extracting structured data from messy, real-world documents without me needing to write elaborate parsing logic. That was genuinely impressive and saved significant development time.


What's Next

SunRes: I want to track application outcomes so the match scoring improves over time with real feedback loops. Interview prep tools based on what's actually on the user's resume. Integration with job boards. Skill-gap learning recommendations. The goal is to take candidates from application → interview → offer — not just hand them a prettier PDF.

NorthStar: More resource categories, community-contributed listings to keep data current, and offline capability for users in areas with poor connectivity. The people who need this most are often the people with the worst internet access. That feels like the right problem to solve next.


Building with Gemini forced me to think about AI not as a black box that produces outputs, but as a reasoning layer that can explain its work, handle messy real-world data, and fit into larger product pipelines. That mental shift — from AI as autocomplete to AI as collaborator — is what I'm taking forward.

Top comments (0)