A Chrome extension that extracts job information from web pages using Ollama AI.
- Extract job information from any webpage
- Uses Ollama for intelligent job data extraction
- Event-based background script architecture
- Clean and modern UI
- Automatic saving to backend server
- Gallery page to view all saved jobs
- Search and filter functionality
- Tag jobs for better organization
- Keyboard shortcut support (Ctrl+Shift+Space / MacCtrl+Shift+Space)
- Context menu integration
Follow these steps in order for the easiest setup:
- Download and install Ollama from: https://ollama.ai
- Pull the required model:
(You can use other models too - see Configuration section)
ollama pull llama3.1:latest
By default, Ollama blocks requests from Chrome extensions. You must configure Ollama to allow them:
Option 1: Allow all Chrome extensions (Easiest)
For macOS/Linux, add to your ~/.zshrc or ~/.bashrc:
export OLLAMA_ORIGINS=chrome-extension://*Then restart your terminal and run:
ollama serveOption 2: Allow specific extension (More secure)
- First, install the extension (see Step 4 below) to get your extension ID
- Go to
chrome://extensions/ - Find "Job Saver Extension" and copy the ID (looks like:
abcdefghijklmnopqrstuvwxyzabcdef) - Add to your
~/.zshrcor~/.bashrc:export OLLAMA_ORIGINS=chrome-extension://YOUR_EXTENSION_ID_HERE - Restart your terminal and run
ollama serve
Important: After setting the environment variable, you must restart Ollama (stop it with Ctrl+C and run ollama serve again) for the changes to take effect.
-
Navigate to the
backenddirectory:cd backend -
Install dependencies:
npm install
-
Start the server:
npm start
The server will run on
http://localhost:3000- Gallery page:
http://localhost:3000 - API endpoint:
http://localhost:3000/api/jobs
Note: Keep this server running while using the extension. For development with auto-reload, use
npm run devinstead. - Gallery page:
- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" (toggle in top right)
- Click "Load unpacked"
- Select the root
job_saver_extensionfolder (the one containingmanifest.json) - The extension should now be installed
Note: If you chose Option 2 in Step 2, you can now get your extension ID from chrome://extensions/ and update your OLLAMA_ORIGINS environment variable.
There are three ways to extract job information:
-
Via Extension Popup:
- Navigate to any job posting webpage
- Click the extension icon in the toolbar
- Click "Extract Job Info" button
- Wait for the extraction to complete
- View the extracted job information
-
Via Keyboard Shortcut:
- Navigate to any job posting webpage
- Press
Ctrl+Shift+Space(Windows/Linux) orMacCtrl+Shift+Space(Mac) - The job will be extracted and saved automatically
- A notification will appear when complete
-
Via Context Menu:
- Right-click on any job posting webpage
- Select "Extract Job Information" from the context menu
- The job will be extracted and saved automatically
After extraction, if it's a new job, a tag modal will automatically open where you can add tags to organize your jobs.
The extension uses llama3.1:latest by default. You can:
- Select a different model from the dropdown in the extension popup
- Make sure the model is installed:
ollama pull <model-name>
If Ollama is running on a different port or host, update the URL in background.js:
const ollamaUrl = 'http://localhost:11434/api/generate';manifest.json- Extension configurationpopup.html- Popup UIpopup.js- Popup script logicpopup.css- Popup stylingcontent.js- Content script for page interactionbackground.js- Background script with event handlers and Ollama integration
backend/server.js- Express server with API endpointsbackend/public/gallery.html- Gallery page to view saved jobsbackend/package.json- Backend dependenciesbackend/jobs.json- Data storage (created automatically)
The background script uses an event handler mapping:
- Events are handled by functions in the
eventHandlersobject - New events can be added by adding entries to this object
- Current event:
extractJobInfo
- 403 Forbidden Error: This means Ollama is blocking Chrome extension requests. You MUST configure
OLLAMA_ORIGINSenvironment variable (see Step 2 in Setup). After setting it, restart Ollama (ollama serve). - Ollama not responding: Make sure Ollama is running (
ollama serve). Check that it's accessible athttp://localhost:11434. - Model not found: Make sure the specified model is installed (
ollama pull llama3.1:latestor your chosen model). - Connection errors:
- Check that Ollama is running and accessible at
http://localhost:11434 - Verify the
OLLAMA_ORIGINSenvironment variable is set correctly - Make sure you restarted Ollama after setting the environment variable
- Check that Ollama is running and accessible at
- Backend connection errors: Make sure the backend server is running (
npm startin thebackenddirectory). - No content extracted: Make sure you're on a page with actual content. Some pages (like Chrome internal pages) cannot be accessed.
- Jobs not saving: Ensure the backend server is running on
http://localhost:3000.