Building Rise AI for the Google Chrome Built On-Device AI Challenge 2025

ChromeGoogleChrome ExtenstionAiPrompt APIResumeJobs

If there’s a single through-line in the Google Chrome Built-in AI Challenge 2025, it’s that privacy and performance no longer need to be trade-offs. The brief is simple on paper: ship something meaningful that runs with on-device AI; but the subtext is louder: prove that the browser can be a safe place for ambitious AI. The challenge itself is fully online, with Chrome’s developers sharing docs, and hanging out in community channels so builders across time zones can collaborate. That remote format landed right in the middle of my own frustration with job applications, so Rise AI was born out of equal parts curiosity and desperation.

Why This Challenge Mattered

It was the perfect backdrop for building something career-focused because job searches are intimate. If I was going to nudge someone’s resume into shape, it had to happen on their machine, not mine.

My own job hunt story set the tone. A career coach named Dan kept preaching that tailored resumes win interviews. He was right, but 2 a.m. rewrites before every application were wearing me down. I wanted that effort distilled into a button inside Chrome so the people who need opportunity most aren’t stuck in formatting purgatory.

What Rise AI Actually Does

Resume in Seconds (Rise AI) lives as a Chrome extension that floats quietly at the bottom of any job listing. Tap it once and you get a friendly panel that remembers your professional profile: experience, projects, skills, education, even certification blurbs. Paste a job description, hit generate, and Gemini Nano assembles a new resume or cover letter that leans into what the role is asking for while staying faithful to your own story. Everything happens locally. Nothing leaves your device. There are no surprise API bills or “trust us” privacy statements because there’s no server to talk to.

The real power isn’t in spitting back text; it’s in the tailoring. Rise AI emphasizes achievements that match the job description, trims sections that don’t matter for this role, and keeps the tone professional without sounding like AI word salad. You can tweak anything inside a block-based editor powered by EditorJS, then grab a clean PDF through jsPDF when you’re happy. I built it for the person who wants to feel seen in their application without rewriting their life story every time.

Tools That Made It Work

Gemini Nano does the reasoning, but it’s the Chrome Prompt API that makes it approachable. Because content scripts can’t touch window.ai, I wired a three-layer architecture: the content script handles the UI, a service worker orchestrates messaging, and an offscreen document hosts the actual Prompt API calls. IndexedDB stores every profile snapshot and generation so the extension boots instantly and survives a browser restart. Session creation happens per generation, no caching, no stale parameters and so nano stays stable even when you hammer it with experiments.

Content Script (UI Layer)
        |
        |  chrome.runtime.sendMessage
        v
Service Worker (Orchestrator)
        |
        |  chrome.offscreen.createDocument()
        v
Offscreen Document (Prompt Runner)
        |
        |  Prompt API  ->  window.ai.languageModel
        v
Gemini Nano (On-device LLM)

Prompt engineering turned into the quiet craft of the project. The system prompt reads like a pep talk, but it’s firm about never inventing accomplishments or copying from the job description.

I learned that Gemini Nano loves structured, flat JSON schemas and hates deep nesting, so the generation engine keeps the schema shallow and converts the response into EditorJS blocks right after parsing. There’s no streaming output yet; I wait for the full response to avoid malformed JSON.

Building With People in Mind

Every design decision came back to trust. Storing data locally means users feel safe loading in promotions they haven’t told their boss about yet. The panel only appears when you ask for it so the rest of the browsing experience stays untouched. Even the retry logic between layers is there to keep the assistant reliable when Chrome throttles background tasks. I kept a running log of every pain point from first install to final PDF and tuned the extension so the hardest work happens before the user ever clicks generate.

What’s Next

One of the things that have crossed my mind is DOM editing, allowing for rise to fill in forms on behalf of the user. It feels like a natural next step and something I probably will get to next.

Thanks for following along. Here is a video of how it works so you can see the full flow; from saving your profile to watching Gemini Nano craft a tailored resume in seconds. I hope it gives you a feel for what on-device AI can mean when it’s pointed at something as personal as your next job.


Blog post by Bright @2025