A private, local-first job tracking board. No account required. Your data never leaves your device. Built for everyone - any role, any field, any stage of your journey.
- Kanban board with drag-and-drop (keyboard accessible)
- Table view - sortable spreadsheet of all jobs
- Stats dashboard - pipeline funnel, industry breakdown, timeline, interview stages
- AI autofill - paste a job URL and Gemini/Openrouter models extracts the details automatically
- Interview sub-stages - Phone Screen, Technical, Panel, Final Round, etc.
- Application requirements - multiselect chips (Resume, Portfolio, References, etc.)
- Custom columns - add, rename, reorder your own pipeline stages
- Color palette presets + light/dark mode
- Export/import JSON - full data backup and restore, no account needed
- localStorage persistence - auto-saves in browser
- Job tracker for any industry and role (not just tech)
- HTML
- CSS
- JavaScript
- React 19
- Vite 8
- @dnd-kit/core 6
- localStorage + JSON export
- Vercel
- Jina Reader - URL & job data fetching (r.jina.ai)
- Gemini/Openrouter models - AI autofill feature (optional; input user API key)
# clone repository
git clone https://github.com/wong-ja/sprout.git- Node.js 20.19+ or 22.12+
- npm 9+
# install dependencies
npm install
# start dev server
npm run devOpens at: http://localhost:3000
The autofill feature calls the Gemini and/or OpenRouter API. To enable it:
- Get an API key from Google AI Studio
- Create an
.envfile in the project root with your API key:
VITE_GEMINI_API_KEY=your_key
OR
- Get an API key from OpenRouter
- Create an
.envfile in the project root with your API key:
VITE_OPENROUTER_API_KEY=your_key
- All job data is stored in your browser's
localStorage - Nothing is sent to any server (except the Gemini/OpenRouter API call for autofill, if enabled)
- Export a backup anytime via Settings → Export backup
- Import a backup via Settings → Import backup or the Import button in the header
- Clearing browser data will erase your jobs - always keep a backup if needed
sprout/
├── package.json
├── vite.config.js
├── vercel.json
├── .env
├── index.html
├── api/
├── autofill.js
└── src/
├── main.jsx
├── App.jsx
├── theme.css
├── store.js # localStorage, export/import, defaults
└── components/
├── Board.jsx # Kanban board (dnd-kit)
├── Table.jsx # Table view
├── JobModal.jsx # Add/Edit/View job
├── Stats.jsx # Stats/Viz Dashboard
├── FilterBar.jsx # Board/Table/Stats - filter, sort, group by
└── Settings.jsx # options, palettes, themes, columns, etc.