AI-powered Chrome extension for automating job applications on jobs.lever.co. It analyzes job descriptions against your CV using any OpenAI-compatible API (e.g. DeepSeek, Sumopod, OpenRouter, OpenAI) and auto-fills application forms.
On any Lever.co job posting page, a floating panel automatically displays how well your CV matches the job across 6 weighted dimensions:
| Dimension | Weight | What It Evaluates |
|---|---|---|
| Skills Match | 35% | Technical skills, tools, methodologies |
| Experience Level | 25% | Years, seniority, scope |
| Domain Knowledge | 15% | Industry-specific relevance |
| Cultural Fit Signs | 10% | Communication style, values |
| Growth Potential | 10% | Learning trajectory, adaptability |
| Background Alignment | 5% | Education, certifications |
Each dimension shows a score (0-100) with a rationale bar. An overall score with color coding (green β₯80, yellow 60-79, red <60) and an AI summary help you decide whether to apply.
On the /apply page, click "Auto-Fill with AI" to:
- Fill standard fields (name, email, phone, location, company) from your profile
- Fill link fields (LinkedIn, GitHub, Portfolio) from your profile
- Handle select dropdowns, checkboxes, and radio buttons intelligently
- Generate professional answers for open-ended questions using AI (based on your CV)
- Every filled field gets a badge:
[Profile]or[AI]so you know the source
- Google Chrome 88+
- An API key from any OpenAI-compatible provider (e.g. Sumopod, OpenRouter, DeepSeek, OpenAI)
- Clone or download this repository
- Open Chrome and go to
chrome://extensions - Enable Developer mode (toggle in top-right)
- Click Load unpacked and select the project folder
- The extension icon should appear in your toolbar
Right-click the extension icon β Settings (or Options) and configure:
| Field | Description |
|---|---|
| Base URL | Your provider's OpenAI-compatible endpoint (e.g. https://api.sumopod.com/v1 for Sumopod, https://api.deepseek.com/v1 for DeepSeek, https://openrouter.ai/api/v1 for OpenRouter) |
| API Key | Your API key from the provider |
| Model | Any model available on your provider (e.g. gpt-4o-mini, claude-3-haiku, deepseek-chat β depends on your budget) |
Upload or paste a single Markdown (.md) file containing your CV and any reference information. A template is available at sample-cv-reference.md. Sections include:
- Personal profile (name, email, phone, links)
- Professional summary
- Core competencies & skills
- Work experience
- Education & certifications
- Additional reference material (career narrative, projects, salary expectations, availability)
Your basic info for form auto-fill: name, email, phone, location, company, and profile URLs.
Predefined responses for common screening questions (work authorization, salary expectations, start date, holidays).
- Browse jobs.lever.co normally
- On any job posting page, a match score panel appears automatically
- When you click "Apply for this Job", the extension adds a "Auto-Fill with AI" button
- Click it to fill the form β you can review and edit before submitting
βββ manifest.json # Extension manifest (MV3)
βββ config.example.js # Configuration reference
βββ sample-cv-reference.md # CV template (excluded from git)
βββ .clinerules # Project AI rules
βββ .gitignore # Ignores private documents
βββ memory-bank/ # Project context documentation
β βββ projectbrief.md
β βββ productContext.md
β βββ systemPatterns.md
β βββ techContext.md
β βββ activeContext.md
βββ background/
β βββ service-worker.js # DeepSeek API calls, storage
βββ content/
β βββ content.js # Main orchestrator
β βββ jd-extractor.js # Job description parser
β βββ match-scorer.js # Score panel UI
β βββ form-filler.js # Form field detection & fill
β βββ styles.css # All injected styles
βββ options/
β βββ options.html # Settings page
β βββ options.css
β βββ options.js
βββ popup/
β βββ popup.html # Quick controls
β βββ popup.css
β βββ popup.js
βββ lib/
β βββ storage.js # Chrome storage wrapper
βββ icons/ # Extension icons (add your own)
- Manifest V3: Modern Chrome extension architecture
- Zero external dependencies: Pure vanilla JavaScript
- API compatibility: Works with any OpenAI-compatible API (DeepSeek, OpenAI, Groq, etc.)
- Privacy: All data stored locally in
chrome.storage.local. CV content never leaves your browser except when sent to your configured API endpoint. - Service worker: Background script may go idle after ~30s; all state is in storage
The scoring prompt is in background/service-worker.js. You can modify:
- The system prompt (analysis instructions)
- The dimensions and weights (Skills 35%, Experience 25%, etc.)
- The JSON response format (must match what
match-scorer.jsexpects)
Contributions are welcome! This project is open-source under the MIT license, and everyone is encouraged to participate.
- Fork the repository and clone it locally
- Create a feature branch:
git checkout -b feat/your-feature-name - Make your changes following the existing code style (vanilla JS, no external dependencies)
- Test your changes by loading the extension unpacked in Chrome
- Commit with clear messages describing what and why
- Push to your fork and open a Pull Request
- Code style: Use vanilla JavaScript only (no frameworks, no build tools). Keep it lightweight.
- File organization: Follow the existing structure. Content scripts in
/content/, background in/background/, etc. - DOM queries: Use Lever.co's known class structure (
.posting-description,#application-form, etc.). If Lever changes their markup, update selectors accordingly. - API compatibility: The extension supports any OpenAI-compatible API. New AI providers should work without code changes if they follow the same chat completions format.
- Error handling: Always provide user-friendly error messages. Failed API calls, missing CV content, or configuration issues should show helpful guidance rather than breaking silently.
- Privacy: Never send user data anywhere except the user's configured API endpoint. All data stays in
chrome.storage.local.
This project is built and maintained using Cline, an AI-powered coding assistant. The repository includes Cline-specific files that guide AI contributions:
The root-level .clinerules file defines project conventions, architecture, prompt templates, and DOM structure references. AI assistants use this as their primary context when working on the codebase.
When you contribute, if your changes affect:
- Architecture β Update the Architecture section in
.clinerules - New features/prompts β Add prompt templates to the Prompt Templates section
- DOM selectors β Update the Lever.co DOM Structure section
- Tech stack or key rules β Modify the relevant sections accordingly
The memory-bank/ directory contains structured project context that helps both humans and AI assistants understand the project holistically:
| File | Purpose | When to Update |
|---|---|---|
projectbrief.md |
Core requirements and goals | When scope or requirements change |
productContext.md |
Why the project exists, user experience goals | When adding new features or changing UX |
systemPatterns.md |
Architecture, message flows, UI patterns | When changing architecture or adding new components |
techContext.md |
Tech stack, storage schema, constraints | When adding dependencies or changing storage |
activeContext.md |
Current status, recent changes, open questions | After every significant change β update status and completed items |
Contribution workflow for Cline files:
- When you submit a PR that changes functionality, include updates to relevant
memory-bank/files - If you introduce new patterns (e.g., a new message type between content and background scripts), document them in
systemPatterns.md - If you change the storage schema, update
techContext.md - After merging, update
activeContext.mdto reflect the new status
- Testing on different Lever.co pages - Different companies may customize their application forms. Report any field types that aren't detected.
- Additional AI providers - Documentation for using with OpenAI, Anthropic, Groq, etc.
- i18n - Internationalization for the extension UI
- Accessibility - Improve ARIA labels, keyboard navigation, and screen reader support
- Theme support - Dark mode for the floating panel and popup
Open an issue with:
- Browser version and OS
- URL of the page where the issue occurs
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable (exclude any personal information)
MIT License - see LICENSE for details.
Copyright (c) 2026 Khafidh Tri Ramdhani
Permission is granted to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software. This project is open for everyone to join, learn from, and contribute to.