Skip to content

surajsomc/job-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Job App Tracker

A full-stack job application tracker: dashboard to view and manage applications, API to store them, and browser tools (Chrome extension or Tampermonkey script) to record applications from any job site.


What’s in this repo

Part What it does
Backend (backend/) Express API + SQLite. CRUD for applications, metrics, and job listings (e.g. Greenhouse).
Frontend (frontend/) React + Vite dashboard: list applications, metrics, discover companies/roles, add/edit entries.
Extension (extension/) Chrome extension with a popup to record an application and send it to the API.
Scripts (scripts/) Tampermonkey userscript: “Record” button on any page; alternative to the extension.

Prerequisites

  • Node.js 18+ (for backend and frontend)
  • Chrome (for the extension or Tampermonkey)

Quick start

1. Install dependencies

From the project root:

npm install

This installs dependencies for the root workspace and for backend, frontend, and extension.

2. Run backend and frontend

npm run dev

Open http://localhost:5173 in your browser to use the dashboard.

3. (Optional) Record applications from job sites

Choose one:

  • Chrome extensionextension/README.md: load the unpacked extension folder in Chrome.
  • Tampermonkey scriptscripts/README.md: install Tampermonkey, then install scripts/job-app-tracker-tampermonkey.user.js.

Both send new applications to http://localhost:3001 by default (configurable). Keep the backend running while you use them.


Project structure

job-app-tracker/
├── backend/           # Express API, SQLite DB
│   ├── src/
│   │   ├── server.js  # Routes, Greenhouse proxy, etc.
│   │   └── db.js      # SQLite setup
│   └── data/          # applications.db (created on first run)
├── frontend/          # React + Vite dashboard
│   └── src/
│       ├── App.jsx
│       ├── Dashboard.jsx
│       ├── ApplicationList.jsx
│       ├── Metrics.jsx
│       ├── Discover.jsx
│       └── components/
├── extension/         # Chrome extension (popup to record apps)
├── scripts/           # Tampermonkey userscript (Record button)
├── docs/              # Extra docs (e.g. HOW_REQUESTS_WORK.md)
└── package.json      # Workspace root; npm run dev runs backend + frontend

Scripts (from root)

Command Description
npm run dev Start backend + frontend together
npm run dev:backend Start only the API (port 3001)
npm run dev:frontend Start only the dashboard (port 5173)
npm run build Build frontend for production
npm run start Run backend only (no watch)

Dashboard overview

  • Dashboard – Summary metrics, recent applications, “Add application” dialog.
  • Applications – Table or grouped-by-company view; edit/delete; role links to job URL when present.
  • Metrics – Totals, by status, by company, by source.
  • Discover – Curated company lists with career links and (where available) live role lists from Greenhouse; search filters roles across companies.

Theme (light/dark) is stored in the browser and persists across reloads.


API base URL

  • Frontend (dev): uses the Vite proxy, so you don’t set anything; /api goes to the backend.
  • Extension / Tampermonkey: default is http://localhost:3001. You can change it in the extension popup or via the Tampermonkey command “Set Job Tracker API URL”.

For production, run the backend where you want (e.g. port 3001 or behind a reverse proxy) and point the extension/script to that URL.


More detail

About

This is for job tracking

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors