Open, self-hostable, AI-powered job search assistant.
Website: https://openapply.app
- AI resume reviews and tailored cover letters
- Job application tracking
- Interview / contact management
- One click link-based or CSV job import
- Resume storage
- Node.js v20+
- pnpm v10.16.1+
- Firebase CLI:
npm install -g firebase-tools - Firebase account with project created
git clone https://github.com/SergeyKhval/OpenApply.git
cd openapply
pnpm installCreate a Firebase project and enable:
- Authentication (Email/Password)
- Firestore Database
- Storage
Get your config from Firebase Console → Project Settings → Your apps → Web app.
cp spa/.env.example spa/.env.localUpdate spa/.env.local:
VITE_BASE_URL=/app
VITE_FIREBASE_API_KEY=your-api-key
VITE_FIREBASE_AUTH_DOMAIN=your-auth-domain
VITE_FIREBASE_PROJECT_ID=your-project-id
VITE_FIREBASE_STORAGE_BUCKET=your-storage-bucket
VITE_FIREBASE_MESSAGING_SENDER_ID=your-sender-id
VITE_FIREBASE_APP_ID=your-app-id
# Optional - leave empty to disable
VITE_POSTHOG_KEY=
VITE_POSTHOG_HOST=Create .firebaserc:
{
"projects": {
"default": "your-firebase-project-id"
}
}firebase loginfirebase init emulators # Select: Firestore, Auth, Storage, Functions
firebase emulators:startcd spa && pnpm dev # http://localhost:5173cd astro && pnpm dev # http://localhost:4321For AI features, add Gemini API key:
cd functions
cp .env.example .env
# Add GEMINI_API_KEY=AIza... to .env
# optionally add Stripe and Resend keys
firebase emulators:start --only functionscd spa
pnpm dev # Development server
pnpm type-check # Type checking
pnpm build # Production build
pnpm preview # Preview buildcd astro
pnpm dev # Development server
pnpm build # Production build
pnpm preview # Preview buildMIT