Indeed Application Date Tracker
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
This script tracks your Indeed job applications and displays a color-coded badge showing when you applied and how many days have passed. When you view your "My Jobs" page or application history, the script extracts the application date for each job and displays a badge next to the job title showing the date and days since applying (e.g., "Jan 15, 2024 (7d) - Follow up soon"). The badge is color-coded: green for recent applications (less than 7 days), yellow for 7-14 days, orange for 14-30 days, and red for 30+ days. A reminder notification is triggered when an application reaches your configured follow-up threshold, helping you stay on top of follow-ups. The script updates dynamically as you navigate between pages.
WHERE IT RUNS
The script runs on all Indeed pages (*.indeed.com). It works on the "My Jobs" page, applications page, and job detail pages. It supports both desktop and mobile views.
HOW TO USE
After installation, the settings panel appears on the left side of the screen with the gear emoji (⚙️). Open the panel to configure the script:
- The "Enable date tracker" toggle enables or disables the script.
- Set the "Follow-up reminder threshold" (days) to control when you receive a notification.
- Click "Refresh applications" to manually re-scan the current page.
- Click "Clear notifications" to reset the notification history.
The badges appear automatically on your applications. A notification is shown when an application reaches the threshold.
TECHNICAL SECTION — REAL MECHANISM
The script detects Indeed pages by checking the URL for indeed.com and identifies application-related pages by looking for /myjobs, /applications, or /applied. It finds job items using selectors like .job-card, .job-card-container, .job-item, .application-item, and .applied-job. The application date is extracted by searching for date elements with selectors like .applied-date, .application-date, .date-applied, and .date, and by scanning the text for date patterns like "Jan 15, 2024" or "MM/DD/YYYY." The date is parsed into a JavaScript Date object. The days since applying are calculated by comparing the application date to the current date. The badge is created using style properties and textContent (never innerHTML) and inserted next to the job title. The color is determined by the age of the application. A WeakSet tracks processed jobs to avoid duplicate work. A MutationObserver watches for DOM changes and processes new jobs as they load.
THE PANEL
The settings panel is built with BotGentz's BGPanel component. It is draggable via its header, allowing you to reposition it anywhere on the screen. The panel snaps to the left edge by default but can be moved freely. Click the gear emoji to collapse the panel into a small bubble, and click the bubble to expand it again. The panel remembers its position per page session. Press the Escape key to quickly close or minimize the panel. The panel includes a status flash bar that provides visual feedback when settings are changed or actions are performed. All settings save automatically via GM_setValue.
PLEASE NOTE
This script requires the free BotGentz browser extension to run. It does not function as a standalone Chrome extension and does not use chrome.* APIs. Indeed frequently updates its interface, which may affect the selectors used to find job items and application dates. If the badges stop appearing, please check for script updates. The script relies on the presence of application dates on the page—if Indeed does not display the date, the script cannot track it. The reminder notifications are triggered once per job per session. The script stores only your preferences via GM_setValue. No data is sent externally—all data is stored locally in your browser. The script never reads or writes password fields, hidden inputs, or file inputs. All DOM operations use safe methods (style properties, textContent, appendChild) and never use innerHTML.