This document provides guidance for developers using Claude Code with the OfferPlus project.
OfferPlus is an AI-powered job offer seeker built with:
- Frontend: React application
- Backend: Python services
- Database: Supabase (PostgreSQL + Storage)
- Auth: Supabase Auth
Key directories for development:
- frontend/: React TypeScript application
- backend/: Python backend services
- supabase/: Database configuration, migrations, and utility scripts
- h1b/: H1B visa data processing
- scripts/: General utility scripts
- Clone the repository
- Create a
.envfile based on.env.examplewith Supabase credentials - Set up frontend:
cd frontend && npm install - Set up backend dependencies as needed
Utility scripts are located in supabase/scripts/:
- test_supabase_storage.py: Verify Supabase Storage connectivity
- upload_to_supabase.py: Upload H1B data to the database
Run scripts from the project root:
python supabase/scripts/test_supabase_storage.py
python supabase/scripts/upload_to_supabase.pyDatabase migrations are stored in supabase/migrations/ and should be applied through Supabase CLI or dashboard.
cd frontend
npm install # Install dependencies
npm run dev # Start dev server
npm run build # Build for productionBackend code is organized by feature with Python services and scripts.
- Access Supabase dashboard: https://app.supabase.com
- Apply migrations through Supabase CLI or SQL editor
- Review schema using
supabase/config.toml
Required environment variables (see .env.example):
VITE_SUPABASE_URL: Supabase project URLVITE_SUPABASE_ANON_KEY: Anonymous API keySUPABASE_SERVICE_ROLE_KEY: Service role key (for admin operations)
- frontend/src/: React components and utilities
- backend/: Python service implementations
- supabase/migrations/: SQL migration files
- supabase/config.toml: Supabase local development config
- README.md: User-facing project documentation
Tests are configured in the project. Check individual directories for test scripts:
- Frontend:
npm test - Backend: Follow backend-specific test instructions
Follow conventional commit messages:
feat:New featurefix:Bug fixdocs:Documentation changesrefactor:Code refactoringtest:Test additions/changeschore:Build/dependency updates
Example: feat: add H1B data filtering
If you encounter connection errors when running Supabase scripts:
- Verify environment variables are set correctly
- Check Supabase project status in dashboard
- Ensure API keys have appropriate permissions
- Run with service role key if needed:
python script.py --service-key
- Frontend communicates with Supabase directly via API keys
- For sensitive operations, use service role key through secure backend endpoints
- Check browser console and backend logs for errors
- Check existing documentation in
docs/directory - Review commit history for similar changes
- Refer to Supabase documentation: https://supabase.com/docs
- Check frontend framework docs (React/Next.js)