A browser extension that uses AI to tailor your resume and cover letter based on job descriptions. This tool helps you create customized application content for job applications on platforms like Workday, Greenhouse, and Lever.
- Upload and parse your resume (PDF or TXT)
- Extract job descriptions from job posting websites
- Generate personalized application content:
- Professional summary
- Experience bullets
- Education details
- Skills section
- Awards/achievements
- Projects
- Cover letter
- Auto-fill application forms on supported job platforms
- Support for multiple AI providers:
- OpenAI API (GPT-3.5, GPT-4, GPT-4o)
- Google Gemini API (Gemini 1.5 Pro, Gemini 1.5 Flash)
- Local Ollama models
-
Clone this repository:
git clone https://github.com/yourusername/resumeai-tailor.git cd resumeai-tailor
-
Install dependencies:
npm install
-
Run the extension in development mode:
npm run dev
-
Build the extension:
npm run build
-
Open Chrome and navigate to
chrome://extensions/
-
Enable "Developer mode" (top-right corner)
-
Click "Load unpacked" and select the
web-ext-artifacts
directory
- Click on the extension icon in your browser toolbar
- Upload your resume in the "Resume" tab
- Navigate to a job posting and use "Extract from Current Page" in the "Job Description" tab
- Go to the "Generate" tab and select the content you want to generate
- Click "Generate Content" to create personalized application materials
- Use "Autofill Application" to automatically fill out application forms
Here are some screenshots showcasing the ResumeAI Tailor extension:
Resume Upload - Upload your resume in PDF or TXT format to be parsed by the extension
Job Description Extraction - Extract job details from the current page or paste them manually
Content Generation - Select what content you want to generate for your application
Generated Professional Summary - Example of a tailored professional summary based on your resume and the job description
Experience Bullets - AI-generated experience bullets highlighting relevant skills for the job
Cover Letter - Generate a personalized cover letter tailored to the job
Settings - Configure your AI provider preferences and API keys
Auto-fill Feature - The extension automatically filling job application forms
In the "Settings" tab:
- Choose your AI provider:
- OpenAI API: Enter your OpenAI API key and select from models like GPT-3.5, GPT-4, or GPT-4o
- Google Gemini API: Enter your Gemini API key (available from Google AI Studio)
- Local Ollama: Configure Ollama server URL for local model usage
- Select the AI model to use for content generation
- Models are automatically fetched from the API providers when possible
ResumeAI Tailor is built as a browser extension following Chrome's Extension Manifest V3 architecture. The extension is structured with a modular design to ensure maintainability, performance, and security.
resumeai-tailor/
├── manifest.json # Extension manifest
├── package.json # Project dependencies and scripts
├── .gitignore # Git ignore configuration
├── assets/ # Icons and other static assets
├── popup/ # Popup UI
│ ├── popup.html # Main popup HTML structure
│ ├── popup.js # Main popup entry point (imports modules)
│ └── modules/ # Modular popup components
│ ├── tabs.js # Tab navigation functionality
│ ├── resume.js # Resume upload handling
│ ├── job-description.js # Job description handling
│ ├── content-generator.js # Content generation
│ ├── settings.js # Settings management
│ └── ui-helpers.js # UI utility functions
├── content/ # Content scripts
│ ├── jobfill-functions.js # Functions to interact with job sites
│ └── jobfill-styles.css # Styles for content script interfaces
├── background/ # Background scripts
│ └── background.js # Background service worker
├── utils/ # Utility modules
│ ├── storage.js # Chrome storage operations
│ └── pdf-loader.js # PDF parsing functionality
├── styles/ # CSS files
│ └── popup.css # Styles for popup UI
└── lib/ # External libraries
└── pdf.js # PDF parsing library
- Purpose: Provides the main interface for users to interact with the extension
- Key Files:
popup/popup.html
,popup/popup.js
- Features:
- Tab-based interface for different functionalities
- Resume upload and parsing
- Job description extraction and editing
- Content generation with AI
- Settings configuration
- Purpose: Interact with job posting websites to extract data and auto-fill forms
- Key Files:
content/jobfill-functions.js
- Features:
- Extract job descriptions from various job platforms
- Identify form fields for auto-filling
- Apply generated content to job application forms
- Handle platform-specific DOM manipulation
- Purpose: Orchestrate communication and perform operations in the background
- Key Files:
background/background.js
- Features:
- Manage communication between popup and content scripts
- Handle API calls to AI providers (OpenAI/Gemini/Ollama)
- Process data and construct AI prompts
- Parse and structure AI responses
- Purpose: Provide reusable functionality across the extension
- Key Files:
utils/storage.js
,utils/pdf-loader.js
- Features:
- Chrome storage operations
- PDF parsing and text extraction
- Data formatting and validation
-
Resume Processing:
- User uploads resume → PDF processing → Text extraction → Storage
-
Job Description Extraction:
- User visits job site → Content script extracts job description → Data sent to popup → User can edit if needed
-
Content Generation:
- User requests content generation → Resume and job data sent to background script → AI prompt constructed → API call made → Structured response parsed → Formatted content displayed to user
-
Application Auto-fill:
- User initiates auto-fill → Generated content sent to content script → Form fields identified → Data mapped to appropriate fields → Forms filled
The extension supports three AI backends:
-
OpenAI API:
- Uses models like GPT-3.5-turbo, GPT-4, GPT-4o
- Requires user's API key
- Offers high-quality content generation
-
Google Gemini API:
- Uses models like Gemini 1.5 Pro, Gemini 1.5 Flash
- Requires user's Gemini API key from Google AI Studio
- Provides competitive quality content generation
-
Ollama (Local):
- Runs locally using models like Llama 2
- Privacy-focused option with no data leaving the user's computer
- Requires local Ollama installation
- Resume and job data stored locally in Chrome storage
- API keys securely managed with appropriate permissions
- No unnecessary data transmission outside the extension
- Content scripts limited to specific job platforms
npm run dev
: Run the extension in development modenpm run build
: Build the extension for productionnpm run lint
: Lint the codebasenpm run test
: Run tests
-
Adding New Job Platforms:
- Create a new extraction function in
content/jobfill-functions.js
- Add the domain to the
matches
property inmanifest.json
- Create a new extraction function in
-
Supporting New AI Providers:
- Add provider configuration in
popup/modules/settings.js
- Implement the API integration in
background/background.js
- Add provider configuration in
-
Enhancing the UI:
- Modify
popup/popup.html
andstyles/popup.css
- Add new UI components in
popup/modules/
- Modify
MIT