A minimalist Flutter web application for tracking job applications with AI-powered cover letter generation.
- 🔐 Authentication: Secure sign-in with Supabase Auth
- 🚀 Guest Mode: Try the app with limited features (1 job, 1 AI generation)
- 📋 Kanban board for job tracking
- 🎨 Minimalist design with dark/light mode
- 📄 Resume upload to Supabase Storage
- 🤖 AI-powered cover letter generation (OpenAI)
- 🖱️ Drag-and-drop job cards between status columns
- 📋 Copy cover letters to clipboard
- Flutter SDK (3.24.5 or later)
- Supabase account
- OpenAI API key
- Clone the repository:
git clone https://github.com/YOUR_USERNAME/get-a-job.git
cd get-a-job/get_a_job- Install dependencies:
flutter pub get-
Configure Supabase:
- Copy
lib/core/constants.dart.templatetolib/core/constants.dart - Update with your Supabase URL and anon key
- Run the SQL schema:
supabase_schema.sqlin your Supabase SQL editor - (Optional) Run
migrate_jobs.sqlto migrate existing data to a user account - Create a storage bucket named
resumes(make it public or configure RLS)
- Copy
-
Deploy Supabase Edge Function:
cd supabase
supabase login
supabase link --project-ref YOUR_PROJECT_REF
supabase secrets set OPENAI_API_KEY=your-openai-key
supabase functions deploy generate-cover-letter- Run the app:
flutter run -d chromeflutter build web --releasefirebase deploy --only hostingvercel --prod- ✅ Supabase credentials are safe to expose (protected by RLS)
- ✅ OpenAI API key is stored securely in Supabase Edge Functions
- ✅
lib/core/constants.dartis gitignored to prevent accidental commits
- Frontend: Flutter Web/iOS/Android/macOS/Windows
- Backend: Supabase (PostgreSQL + Storage)
- AI: OpenAI API (via Supabase Edge Functions)
- State Management: BLoC Pattern
- Theme: Custom minimalist design with Inter font
MIT