# resumeBuddy > resumeBuddy tailors your resume, cover letter, and job-search outreach to a > specific job posting, using an AI provider you choose and your own API key. > It runs entirely in your browser: there is no backend, no account, and no > analytics. Your resume, your API key, and everything it generates stay in > your browser's local storage and are sent only directly from your browser to > the AI provider you picked. Available as an installable web app (PWA) at > resumebuddy.boringbydesign.com and as a Chrome/Firefox browser extension. ## How it works - You add a "master resume" once (paste it, import a PDF/DOCX, or build one with a guided wizard that has your AI provider assemble an ATS-formatted resume from details you enter). - You give it a job description (paste it into the PWA; on the extension, you select text on a job page and right-click "Tailor with resumeBuddy"). - It first runs a **match-confidence** check (Strong / Good / Moderate / Weak) that honestly flags weak-fit postings before you spend time generating. - Then it generates, grounded only in what's actually in your master resume: tailored resume bullet points, a full tailored resume, a cover letter, and — under "More formats" — a hiring-manager outreach message, a spoken elevator pitch, and a third-person executive bio. - You review and edit every output in place, then copy it or download it as Markdown or a print-ready PDF (via the browser's own print-to-PDF). - Optionally, you track the application: an opt-in tracker saves a snapshot of the match verdict and generated materials, with a status funnel (Applied / Response / Interview / Offer / Rejected), notes, and a plain JSON export. Stored locally like everything else. ## Privacy model (the core design decision) - **No backend, ever.** There is no server component. AI requests go straight from the browser to the provider's API using the user's own key. - The developer never sees the user's resume, job search, or API traffic. - PWA storage is the browser's IndexedDB, scoped to the site's origin. Extension storage is `chrome.storage.local`. Neither syncs to any account. - The PWA requests no special browser permissions. The extension uses minimal permissions only (`storage`, `activeTab`, `contextMenus`, side-panel API) — no host permissions, no ``, no persistent content script. - No analytics or third-party calls of any kind. ## Supported AI providers The user picks one in Settings and can switch anytime; a key is stored per provider. The model list for each is fetched live from that provider's API, never hardcoded. - **Gemini** — free tier, no card required. Default provider. - **Groq** — free tier, no card required. Fastest inference. - **OpenRouter** — free tier; only `:free`-tagged models are listed, to avoid a surprise bill. - **Anthropic (Claude)** — paid; billed separately from a Claude subscription. - **Ollama** — fully local, no key, no network beyond your own machine. Requires setting `OLLAMA_ORIGINS` to the app's origin (`https://resumebuddy.boringbydesign.com`). ## Tech Preact + TypeScript, shared across both surfaces via an npm-workspaces monorepo (`packages/core` for AI clients/prompts/storage schema/parsing, `packages/ui` for shared components). The PWA is plain Vite + `vite-plugin-pwa` (the service worker precaches the app shell only — AI calls always hit the network live and are never cached). The extension is built with WXT for Chrome (MV3) and Firefox (MV2) from one codebase. ## Links - [resumeBuddy web app (PWA)](https://resumebuddy.boringbydesign.com/): the app itself - [Chrome Web Store listing](https://chromewebstore.google.com/detail/nfdfpaiaciddncghfalapdiammheheep): the browser extension for Chrome - [Firefox Add-ons listing](https://addons.mozilla.org/en-US/firefox/addon/resumebuddy/): the browser extension for Firefox - [boring by design](https://boringbydesign.com/): the parent project that hosts and lists resumeBuddy - [README](https://gitea.lalcaraz.klusteroo.com/boringbydesign/resumebuddy/raw/branch/main/README.md): full project overview, provider setup, project structure - [Source repository](https://gitea.lalcaraz.klusteroo.com/boringbydesign/resumebuddy): source code (self-hosted Gitea) ## Provider API-key signup pages - [Google AI Studio (Gemini)](https://aistudio.google.com/apikey) - [Groq](https://console.groq.com/keys) - [OpenRouter](https://openrouter.ai/keys) - [Anthropic](https://console.anthropic.com) - [Ollama](https://ollama.com) ## Contact - Email: contact@boringbydesign.com