Opportunity feed
OE
YOUR WORKSPACE, YOUR RULES

Settings & integrations

Connect the services that power opportunity discovery and AI-assisted imports.

Keep your keys server-side

Configure credentials in your local .env.local file and Vercel Project Settings → Environment Variables. Never expose service-role keys or bot tokens to the browser.

Supabase

Server configuration

PostgreSQL database and authentication

NEXT_PUBLIC_SUPABASE_URL · NEXT_PUBLIC_SUPABASE_ANON_KEY · SUPABASE_SERVICE_ROLE_KEY
Configure

Google Gemini

AI provider

Extract opportunity details and generate fit insights

GEMINI_API_KEY · GEMINI_MODEL
Configure

Firecrawl

Web ingestion

Fetch readable content from public opportunity pages

FIRECRAWL_API_KEY
Configure

Telegram bot

Bot integration

Send a hackathon or internship URL to import it

TELEGRAM_BOT_TOKEN · TELEGRAM_WEBHOOK_SECRET · TELEGRAM_ALLOWED_CHAT_IDS
Configure
✈

Telegram link importer

Once deployed, register the Telegram webhook using the setup endpoint. Add your Telegram numeric chat ID to the allowlist to restrict who can submit links.

POST /api/telegram/setup

Requires TELEGRAM_BOT_TOKEN, TELEGRAM_WEBHOOK_SECRET, CRON_SECRET (optional), and APP_BASE_URL set to your deployed HTTPS URL.

Opportunity ingestion flow

How the data moves from a public page to your dashboard.

01Submit a URLTelegram message or import API
02Fetch the pageFirecrawl extracts readable content
03Extract detailsGemini returns structured JSON
04Save & displaySupabase persists the listing
Explore current feed →