A Chrome extension that streamlines job application tracking by automatically extracting job details from job boards and filling out Google Forms, reducing the manual process from ~40 seconds to just 4 seconds.
Before: ~5 roundtrips taking ~40 seconds
After: 2 clicks taking ~4 seconds
Improvement: 90% time savings (36 seconds saved per job application)
The extension follows a message-passing architecture where different components communicate through Chrome's runtime messaging system. Since content scripts cannot communicate directly with each other, the background script acts as a central message router.
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ Job Board โ โ Background โ โ Google Forms โ
โ Pages โโโโโบโ Script โโโโโบโ Page โ
โ (LinkedIn, etc.)โ โ (Message Hub) โ โ(Job Tracking) โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
- User right-clicks on any page
- Background script creates context menu: "Log job details"
- When clicked, sends message to content script on current tab
- Content script receives "getJobDetails" message
- Identifies job board type (LinkedIn, Xing, StepStone, etc.)
- Extracts job information:
- Job Title
- Company Name
- Recruiter (if available)
- Job URL
- Opens modal for user confirmation/editing
- Sends extracted data to background script
- Receives job details from job board page
- Finds open Google Forms tab
- Forwards job details to Google Forms page
- Receives job details from background script
- Automatically fills form fields
- Submits form (optional)
- Sends confirmation back
- Role: Central communication hub and context menu manager
- Responsibilities:
- Creates right-click context menu
-
- Listens for messages from content scripts
-
- Routes messages between job boards and Google Forms
-
- Manages tab communication
- Role: Handles Google Forms page operations
- Responsibilities:
- Listens for job details messages
- Auto-fills form fields
- Handles form submission
- Manages email pre-filling
- Role: Extracts job information from various job boards
- Supported Platforms:
- StepStone
- Join.com
- Greenhouse
- Responsibilities:
- Detects job board type
- Extracts job details using DOM selectors
- Creates job details modal
- Sends data to background script
- Role: Provides user interface for job details confirmation
- Responsibilities:
- Displays extracted job information
- Allows user editing
- Handles save/cancel actions
- Manages modal lifecycle
// From background to job board
{ action: "getJobDetails" }
// From job board to background
{
action: "fillJobDetails",
content: {
jobTitle: "...",
companyName: "...",
recruiter: "...",
url: "..."
}
}
// From background to Google Forms
{
action: "fillJobDetails",
content: { ... }
}The extension injects different content scripts based on the page:
- Job Board Pages:
job-boards/index.js,job-details-modal.js - Google Forms:
imagine-job-tracking-page.js
- Uses
styles/css-injector.jsto inject custom styles - Ensures consistent UI across different job boards
| Platform | URL Pattern | Status |
|---|---|---|
*.linkedin.com/jobs/* |
โ Full Support | |
*.xing.com/jobs/* |
โ Full Support | |
| StepStone | *.stepstone.de/* |
โ Full Support |
| Join.com | *.join.com/* |
โ Full Support |
| Greenhouse | *.greenhouse.io/* |
โ Full Support |
- Hardcoded Email: Username is currently hardcoded in the Google Forms handler
- Content Script Isolation: Cannot communicate directly between job board pages and Google Forms
- Tab Dependency: Requires Google Forms tab to be open
- Dynamic Username Storage: Save username in extension storage instead of hardcoding
- Auto-open Forms: Automatically open Google Forms if not already open
- Error Handling: Better error handling for failed extractions
- More Job Boards: Add support for Indeed, Glassdoor, Monster, etc.
- Data Validation: Validate extracted data before form submission
- Custom Fields: Allow users to configure which fields to extract
- Export Options: Export job data to CSV/JSON
- Analytics: Track application success rates
- Reminders: Set follow-up reminders for applications
- Clone the repository
- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" (toggle in top right)
- Click "Load unpacked" and select the extension directory
- The extension will appear in your extensions list
- Clone the repository
- Open Firefox and navigate to
about:debugging - Click "This Firefox" in the left sidebar
- Click "Load Temporary Add-on..."
- Select the
manifest.jsonfile from your extension directory - The extension will load temporarily (will be removed on browser restart)
- Note: Firefox requires Manifest V3 for production, but V2 works for development/testing
- Navigate to a job posting on any supported job board
- Right-click anywhere on the page
- Select "Log job details" from the context menu
- Review and edit the extracted information in the modal
- Click "Save" to automatically fill your Google Forms tracking sheet
- Ensure Google Forms tab is open for the extension to work
Contributions are welcome! Areas for improvement:
- Adding support for new job boards
- Improving data extraction accuracy
- Enhancing the user interface
- Adding new features
This project is open source and available under the MIT License.
Built with โค๏ธ to make job hunting more efficient