This guide will help you get the Job Tracker application running locally in under 10 minutes.
npm installOption A: Using Supabase (Recommended - Already Configured)
-
Get your Supabase database password from:
- Dashboard: https://supabase.com/dashboard/project/yewtpupxbsgfdswjtyxy/settings/database
- Look for "Database password" section
-
Open
.envand replace[YOUR-DB-PASSWORD]with your actual password:
DATABASE_URL="postgresql://postgres.yewtpupxbsgfdswjtyxy:YOUR_ACTUAL_PASSWORD@aws-0-us-east-1.pooler.supabase.com:5432/postgres?pgbouncer=true&connection_limit=1"Option B: Using Local PostgreSQL
-
Install PostgreSQL on your machine:
- Mac:
brew install postgresql@14thenbrew services start postgresql@14 - Windows: Download from https://www.postgresql.org/download/windows/
- Linux:
sudo apt-get install postgresql postgresql-contrib
- Mac:
-
Create a database:
createdb jobtracker- Update
.env:
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/jobtracker?schema=public"# Apply database migrations
npm run prisma:migrate:deploy
# Start the development server
npm run devOpen http://localhost:3000 in your browser!
Option 1: Demo Account (Instant Access)
- Go to http://localhost:3000/signin
- Click "Demo Account" button
- Automatically creates account + sample data
Option 2: Create Your Own Account
- Go to http://localhost:3000/signup
- Enter email + password
- Click "Sign up"
Import Jobs:
- Go to
/jobspage - Click "Import from Remotive"
- See 20+ remote jobs appear
Track a Job:
- Click "Track" on any job
- Go to
/applicationspage - See job in "Interested" column
Move Through Pipeline:
- Drag job card from "Interested" to "Applied"
- Click on the card to see details
- Set a follow-up date
Add Your Skills:
- Go to
/profilepage - Add skills: TypeScript, React, Node.js, etc.
- Go back to
/jobs - Click "Score All Jobs"
- Wait 10-30 seconds → Match scores appear
# Database connection (choose one option above)
DATABASE_URL="postgresql://..."
# Auth.js session security (already generated for you)
AUTH_SECRET="..."
AUTH_URL="http://localhost:3000"
AUTH_TRUST_HOST="true"# Google OAuth (for Gmail integration)
AUTH_GOOGLE_ID="your-google-client-id"
AUTH_GOOGLE_SECRET="your-google-client-secret"
# OpenAI (for AI writing + match scoring)
OPENAI_API_KEY="sk-..."
OPENAI_MODEL="gpt-4o-mini"
# SerpAPI (for broader job search)
SERPAPI_API_KEY="your-serpapi-key"
# Demo mode (enabled by default)
ALLOW_DEV_LOGIN="true"
ALLOW_DEMO_LOGIN="true"Solution:
- Make sure you have Node.js v18.17 or higher:
node --version - Update npm:
npm install -g npm@latest - Delete
node_modulesandpackage-lock.json, then runnpm installagain
Error: P1001: Can't reach database server
Solution:
- Check that your
DATABASE_URLis correct - For Supabase: Verify password is correct
- For local Postgres: Make sure PostgreSQL is running:
# Mac brew services list # Linux sudo systemctl status postgresql
Solution:
# Find process using port 3000
lsof -ti:3000
# Kill the process
kill -9 <PID>
# Or use a different port
PORT=3001 npm run devSolution:
- Sign out and sign back in
- Clear browser cookies for
localhost:3000 - Check that
AUTH_SECRETis set in.env
Solution:
- Make sure
OPENAI_API_KEYis set in.env - Verify key is valid: https://platform.openai.com/api-keys
- Check you have API credits remaining
npm run prisma:studioOpens a web UI at http://localhost:5555 to browse/edit data.
# Warning: This deletes all data!
npx prisma migrate reset
# Then re-run migrations
npm run prisma:migrate:deploy# After changing prisma/schema.prisma
npm run prisma:migrate# Automatically runs on `npm install` and `npm run build`
# To run manually:
npm run prisma:generatenpm run buildnpm start# Use production database URL
DATABASE_URL="postgresql://..."
# Set production URL
AUTH_URL="https://yourdomain.com"
# Generate new secret for production
AUTH_SECRET="$(openssl rand -hex 32)"
# Optional: Set NODE_ENV
NODE_ENV="production"Recommended Platforms:
- Railway (easiest - auto-detects Next.js + Postgres)
- Vercel + Supabase
- Render
- Fly.io
Database Hosting:
- Supabase (already configured)
- Railway Postgres
- Render Postgres
- Neon.tech
- Jobs: Import, filter, score matches
- Applications: Kanban board, follow-up reminders
- Profile: Add skills, set preferences
- Network: Import contacts, track hiring signals
- Outreach: AI-powered email drafts
- Settings: Export/import your data
Google OAuth (Gmail Integration):
- Create OAuth client: https://console.cloud.google.com/apis/credentials
- Add redirect URI:
http://localhost:3000/api/auth/callback/google - Enable Gmail API: https://console.cloud.google.com/apis/library/gmail.googleapis.com
- Add credentials to
.env:AUTH_GOOGLE_ID="your-client-id.apps.googleusercontent.com" AUTH_GOOGLE_SECRET="your-client-secret"
OpenAI (AI Features):
- Create API key: https://platform.openai.com/api-keys
- Add to
.env:OPENAI_API_KEY="sk-..."
SerpAPI (Job Search):
- Create account: https://serpapi.com/
- Get API key from dashboard
- Add to
.env:SERPAPI_API_KEY="your-key"
Check the Audit Report:
- See
AUDIT_FINDINGS.mdfor comprehensive system documentation
Common Issues:
- Database connection: Check
DATABASE_URLformat - Auth issues: Regenerate
AUTH_SECRET - Build errors: Delete
.nextfolder and rebuild
Contact:
- GitHub Issues: (your repo URL)
- Email: (your contact)
Ready to start? Run npm run dev and open http://localhost:3000!