A Supabase-native opportunity board for jobs, featured opportunities, and coding contests with magic-link login, email source alerts, and contest reminders.
- Frontend: Vite React app in
apps/web, deployed as a static site. - Backend: Supabase Postgres, PostgREST, Auth, Edge Functions,
pg_cron, andpg_net. - Scrapers: one Supabase Edge Function per source under
supabase/functions. - Scheduler: Supabase
pg_croninvokes Edge Functions. No always-on Node server is required.
This repo is linked to the Supabase project wpifsnuqzbjqbadrnhtm (Opportunity Departures).
Apply migrations:
D:\Tools\supabase-cli\supabase.exe db pushDeploy functions:
D:\Tools\supabase-cli\supabase.exe functions deploy unstop mycareernet hackerearth_jobs hackerearth_challenges codeforces leetcode codechef atcoder unstop_featured send-contest-remindersRequired Edge Function secrets:
RESEND_API_KEYRESEND_FROM_EMAIL- optional connector overrides such as
UNSTOP_USER_AGENT,MYCAREERNET_JOBS_URL, etc.
Cron expects Supabase Vault secrets named:
project_urlanon_key
Deploy apps/web to Vercel, Netlify, or Cloudflare Pages.
Required frontend environment variables:
VITE_SUPABASE_URL=https://wpifsnuqzbjqbadrnhtm.supabase.co
VITE_SUPABASE_ANON_KEY=your-supabase-anon-keyBuild command:
pnpm --filter @unstop-agent/web buildOutput directory:
apps/web/distCreate an untracked apps/web/.env.local:
VITE_SUPABASE_URL=https://wpifsnuqzbjqbadrnhtm.supabase.co
VITE_SUPABASE_ANON_KEY=your-supabase-anon-keyThen run:
pnpm install
pnpm --filter @unstop-agent/web dev- Unstop jobs use the public search API.
- Unstop Featured uses the public homepage featured endpoint.
- MyCareerNet uses the tenant-config plus anonymous bearer-token contest flow, with optional job JSON via
MYCAREERNET_JOBS_URL. - HackerEarth Jobs uses India-scoped public community jobs endpoints.
- HackerEarth Challenges uses the public challenges feed.
- Codeforces uses the official public API.
- LeetCode uses LeetCode GraphQL.
- CodeChef uses CodeChef's public contests JSON endpoint.
- AtCoder uses the public contests page parser.
The old Fastify/Prisma API has been removed. Production data access goes through Supabase directly.