Last updated: April 14, 2026
Developer: Koushik
Extension name: JobSnap — Auto-Save Job Listings with AI
JobSnap helps users save and organize job listings during their job search. All saved job data is stored locally on the user’s device. The only data transmitted externally is the visible text of a job listing page, sent to our processing server for structured data extraction when the user explicitly triggers a save action.
JobSnap collects data only when the user performs one of these actions:
When triggered, the following data is collected:
| Data | How it’s used | Where it’s stored |
|---|---|---|
| Visible page text (up to 10,000 characters) | Sent to our server for AI extraction of job details. Not stored on the server — processed in real-time and discarded. | Temporarily in server memory during processing only |
| Extracted job details (title, company, location, salary, job type, description, requirements, deadlines) | Displayed in the user’s job dashboard | Locally on the user’s device (browser IndexedDB) |
| Page URL | Used to prevent duplicate saves and link back to the original listing | Locally on the user’s device |
| Resume filename | If the user uploads a file during an application, the filename (not the file contents) is captured | Locally on the user’s device |
| User-entered notes and status | Notes and application status (saved, applied, interview, etc.) entered by the user in the dashboard | Locally on the user’s device |
The content script runs on all pages to detect Apply/Submit buttons, but it does not read, collect, or transmit any page content unless the user explicitly clicks an Apply button or the Save button. On pages where no such action occurs, zero data leaves the browser.
All job data is stored locally on the user’s device using the browser’s IndexedDB storage. No job data is stored on our servers or in any cloud service.
| Storage location | What’s stored | Retention |
|---|---|---|
| Browser IndexedDB (local) | All saved job data, notes, statuses, resume filenames | Until the user deletes the job or uninstalls the extension |
| Browser chrome.storage.local | Notification preferences and deadline reminder state | Until the user uninstalls the extension |
| Our server | Nothing — page text is processed in real-time and discarded immediately | Zero retention |
When a save is triggered, the visible page text is sent via HTTPS to our processing server. This server:
The server does not store, log, or retain any page text or extracted data after the response is sent.
| Service | What it receives | Why | Their privacy policy |
|---|---|---|---|
| Google Gemini API (via our server-side proxy) | Visible page text from job listing pages only | To extract structured job data (title, company, salary, etc.) using AI | Google Privacy Policy |
No data is shared with any other third party. We do not use advertising networks, analytics services, or data brokers.
JobSnap requires broad host permissions because job listings appear across thousands of different websites:
It is not feasible to enumerate every domain where a job listing might appear. The content script loads on all pages but is passive — it only listens for Apply/Submit button clicks. No page content is read, collected, or transmitted unless the user explicitly triggers a save action.
| Permission | Purpose |
|---|---|
storage |
Store deadline notification state locally on the device |
sidePanel |
Display the job management dashboard in Chrome’s side panel |
alarms |
Run hourly checks for approaching application deadlines |
activeTab |
Read the current page’s text when the user clicks “Save This Job” in the popup |
scripting |
Execute a script to read page text for manual saves triggered by the user |
notifications |
Send deadline reminder notifications (7 days and 24 hours before expiry) |
JobSnap is not directed at children under the age of 13 and does not knowingly collect any data from children.
We may update this privacy policy from time to time. Changes will be reflected in the “Last updated” date at the top of this document. Continued use of the extension after changes constitutes acceptance of the updated policy.
For questions, concerns, or data deletion requests, please contact us at: