Smart Chrome Extension for Job Seekers — Analyze job postings against your resume using AI, get match scores, auto-fill applications, generate cover letters, rewrite resume bullets, and track every job you apply to.
JobMatch AI open on a LinkedIn Easy Apply form — showing match score 85, matching skills, and the AutoFill Application button. Teal "Autofilled by JobMatch AI" badges appear next to each filled field.
Upload your resume (PDF or DOCX) and let AI parse it into a structured profile. When you visit any job posting, click Analyze Job to get:
- Match Score (0–100) with color-coded indicator
- Matching Skills — what you already have
- Missing Skills — gaps to address
- Recommendations — actionable advice to improve your fit
- ATS Keywords — key terms to include in your application
Recommendations panel — personalized suggestions on how to strengthen your application. Teal badges next to filled fields confirm what JobMatch AI auto-completed.
Click AutoFill Application and the extension scans the form, sends fields to AI, and fills everything instantly — using your resume profile and pre-configured Q&A answers. Works with:
- Text inputs and textareas
- Native
<select>dropdowns - Custom dropdowns (React, Angular, etc.)
- Radio buttons and checkboxes
Every filled field gets a "✦ Autofilled by JobMatch AI" teal badge so you know exactly what was touched before you submit.
Generate a tailored cover letter from the job description and your resume profile in one click.
Cover letter generated from your resume and the job description — ready to copy and paste.
Improve your experience bullets to better match the job's language and missing skills.
Improved Resume Bullets — AI rewrites your experience descriptions to highlight the skills and keywords the job is looking for.
Store up to 3 different resumes and switch between them with one click — useful for applying to different types of roles (e.g. backend, data engineering, management).
Profile page — three resume slots at the top, parsed resume data (name, contact info, location, LinkedIn, GitHub, professional summary) automatically extracted from your uploaded PDF or DOCX.
Pre-fill answers to hundreds of common application questions so AutoFill can complete them instantly. Includes full EEO/demographic dropdown support.
Q&A Answers tab — pre-configure responses for work authorization, availability, salary, demographics (EEO), and more. Filter by category to quickly find and edit any answer.
Mark jobs as "Applied" directly from the side panel. Review all your applications in one place.
Applied Jobs tab — every tracked application with match score, job title (linked to original posting), company, location, salary, and date applied.
See an overview of your job search progress — total jobs analyzed, applied, average match score, score distribution, and a ranked list of skills to add to your resume.
Stats tab — job search analytics at a glance: jobs analyzed, applied, average match score, score distribution, and the top skills missing from your resume across all analyzed jobs.
Analysis results are cached per URL with deterministic AI settings (temperature=0), so you get the same score every time for the same job. Click Re-Analyze to force a fresh evaluation.
-
Clone this repository:
git clone https://github.com/wadekarg/JobMatchAI.git
-
Open Chrome (or any Chromium browser) and go to
chrome://extensions -
Enable Developer mode (toggle in the top-right corner)
-
Click Load unpacked and select the
JobMatchAIfolder -
Pin the extension from the puzzle icon in Chrome's toolbar for easy access
JobMatch AI uses generative AI to analyze resumes and job postings. You'll need a free or paid API key from any supported provider.
| Provider | Free Tier | Get API Key |
|---|---|---|
| Cerebras | Yes | cloud.cerebras.ai |
| Groq | Yes | console.groq.com |
| Google Gemini | Yes | aistudio.google.com/apikey |
| OpenRouter | Yes | openrouter.ai |
| Mistral AI | Yes | console.mistral.ai |
| Together AI | Yes | api.together.ai |
| Cohere | Yes | dashboard.cohere.com |
| Anthropic (Claude) | No | console.anthropic.com |
| OpenAI | No | platform.openai.com/api-keys |
| DeepSeek | No | platform.deepseek.com |
- Go to cloud.cerebras.ai and sign up (Google or GitHub login works)
- Once logged in, go to API Keys in the dashboard
- Click Create API Key, give it a name, and copy the key (starts with
csk-...) - Paste it into JobMatch AI's AI Settings page — done!
The same process applies to all providers: sign up → find API Keys in dashboard → create key → copy and paste into the extension.
Tip: Cerebras, Groq, and Google Gemini offer the most generous free tiers. OpenRouter gives access to multiple free models through a single key.
AI Settings — select your provider, paste your API key, pick a model, adjust temperature, and hit Test Connection to verify before saving.
Click the extension icon → AI Settings tab (or open the side panel → Settings link).
- Select your AI provider
- Enter your API key
- Choose a model
- Click Test Connection to verify
- Click Save Settings
Go to the Profile tab, select a resume slot (Resume 1, 2, or 3), then drag & drop your resume (PDF or DOCX). AI will parse it into structured fields you can review and edit.
Go to the Q&A Answers tab and click Load Common US Job Application Questions to pre-fill answers for work authorization, availability, salary expectations, demographics (EEO), and more.
- Navigate to any job posting (LinkedIn, Indeed, Greenhouse, Lever, etc.)
- Click the ★ button (bottom-right corner of the page) to open the side panel
- Click Analyze Job
- Review your match score, skill gaps, recommendations, and ATS keywords
- Click Save Job to bookmark it, or Mark as Applied to track it
- Navigate to a job application form
- Open the side panel and click AutoFill Application
- The extension scans the form, sends fields to AI, and fills everything instantly
- Teal "Autofilled by JobMatch AI" badges appear next to each filled field
- Always review the filled fields before submitting
After analyzing a job, click Cover Letter in the side panel. A tailored cover letter is generated from your resume and the job description. Click Copy to copy it to your clipboard.
After analyzing a job, click Improve Resume Bullets in the side panel. The AI rewrites your experience bullets to better match the job's language and fill skill gaps.
- After analyzing a job, click Mark as Applied in the side panel
- Open Profile → Applied Jobs tab to see all your applications
- Each entry shows match score, job title (linked to posting), company, location, salary, and date
- Click Delete to remove any entry
| Site | JD Extraction | Salary | Location | Auto-Fill |
|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | |
| Indeed | ✓ | ✓ | ✓ | ✓ |
| Glassdoor | ✓ | ✓ | ✓ | ✓ |
| Greenhouse | ✓ | ✓ | ✓ | ✓ |
| Lever | ✓ | ✓ | ✓ | ✓ |
| Workday | ✓ | ✓ | ✓ | ✓ |
| Generic sites | ✓* | ✓* | ✓* | ✓ |
* Uses generic selectors and regex fallbacks for sites without dedicated support.
JobMatchAI/
├── manifest.json # Chrome MV3 manifest
├── background.js # Service worker: message routing, AI calls, storage
├── content.js # Side panel UI, job scraping, autofill, badges
├── aiService.js # AI provider abstraction (API calls, prompt builders)
├── deterministicMatcher.js # Rule-based dropdown matching (no AI needed)
├── popup.html / popup.js # Extension toolbar popup
├── profile.html / profile.js # Profile, Q&A, Applied Jobs, Stats, Settings page
├── styles.css # Content script base styles
├── icons/ # Extension icons (16, 48, 128px)
├── libs/ # pdf.js & mammoth.js for client-side resume parsing
└── screenshots/ # README images
- Your resume data and API keys are stored locally in Chrome's storage — nothing is sent to any server except the AI provider you configure.
- Job analysis is performed via direct API calls to your chosen AI provider.
- No analytics, no tracking, no data collection.
JobMatch AI is free and open source — built to help job seekers spend less time on repetitive tasks and more time landing the right role. Contributions are welcome.
- Fork the repo
- Create a feature branch (
git checkout -b feature/my-improvement) - Commit your changes
- Push to the branch and open a Pull Request
If you have ideas but aren't sure where to start, open an issue.
MIT








