pocket-resume

PocketResume

AI-powered Chrome extension that generates tailored resumes and cover letters from any job description. Paste your master profile once — PocketResume rewrites it for every application.

License: MIT Manifest V3 Chrome Extension

Features

What’s New in v7.9

Installation

Not on the Chrome Web Store — load unpacked:

git clone https://github.com/Isaac-1555/pocket-resume.git
cd pocket-resume
npm install
  1. Open chrome://extensions
  2. Enable Developer mode
  3. Click Load unpacked → select the PocketResume directory

Setup

  1. Click the extension icon → gear icon (Settings)
  2. Select AI provider → paste API key → “Set as Active Provider”
    • For Custom / Local: pick a preset (Ollama, LM Studio, NVIDIA NIM) or enter any OpenAI-compatible Base URL, optional API key, and model → “Test Connection” → “Save Endpoint” → “Set as Active Provider”
  3. Paste your master resume into the profile text area → Save
  4. (Optional) Enable Cover Letter toggle
  5. (Optional) Unlock PocketResume Pro — Settings → PocketResume Pro → Sign In → subscribe. One plan covers resume cloud sync and the full Job Tracker

Usage

  1. Navigate to any job posting (LinkedIn, Indeed, company pages)
  2. Click PocketResume icon → choose resume style
  3. Click Generate Resume
  4. PDF downloads automatically
  5. Hit an application form with essay questions? Click Fill Form — PocketResume answers using your resume, then you review and submit

If generation fails, the popup stays red — click the ? button (top right) to see a readable error message with the option to copy the full raw details. The error clears when you close the popup or click Generate Resume again.

Configuration

Resume generation works out of the box and is fully local. Two optional integrations require your own credentials:

Analytics backend (Convex)

Usage analytics go to your own Convex deployment (convex/analytics.ts):

  1. Copy .env.example to .env.local
  2. Fill in your Convex values from convex.dev:
    • CONVEX_URL — deployment URL
    • CONVEX_DEPLOYMENT — local deployment name
  3. For backend work: npx convex dev from the repo root

PocketResume Pro (Clerk + Convex)

One paid plan (“PocketResume Pro”) gates resume cloud sync, plan gating, and the full Job Tracker. Sign-in, plan checks, and the embedded pricing table run through Clerk; synced resumes are stored in your own Convex deployment (convex/resumes.ts):

  1. Fill in CLERK_PUBLISHABLE_KEY, CLERK_FRONTEND_API_URL, and CONVEX_URL in .env.local
  2. Run npm run build:clerk to bundle src/cloud-sync.jscloud-sync.js with your env vars injected
  3. Push/restore resumes from Settings → PocketResume Pro; changes auto-push while signed in

.env.local is gitignored. Never commit cloud-sync.js (it’s a build artifact) or convex/_generated/ (regenerated by the Convex CLI).

Tech Stack

Development

# Install deps
npm ci

# Rebuild cloud-sync.js after editing src/cloud-sync.js
npm run build:clerk

# Update vendored jsPDF
npm install jspdf@latest
cp node_modules/jspdf/dist/jspdf.umd.min.js libs/jspdf.umd.min.js

Edit source files directly, reload the extension in chrome://extensions.

Debug targets:

For the full architecture map, file layout, and prompt/JSON schema reference, see AGENTS.md.

Contributing

Contributions welcome! See CONTRIBUTING.md for the workflow, CODE_OF_CONDUCT.md for community rules, and open an issue for bugs or features.

Security

Report vulnerabilities privately via GitHub Security Advisories. See SECURITY.md.

Acknowledgments

License

MIT © 2026 Isaac Daniel