How kaithwasaditya/job_alert_telegram works
Alert Bot lets job seekers track company career pages, filter roles, and receive scheduled Telegram alerts. Users sign in, configure subscriptions and preferences in the dashboard, and connect Telegram; scheduled polling normalizes job postings, while dispatch applies filters and records deliveries. Custom company detection and manual polling extend the same workflow. The graph reflects the shown route and service calls; unsampled dashboard actions and webhook behavior are represented only where the index or README supports them.
Main entry points: db.ts Application database · actions.ts Dashboard actions · route.ts Alert dispatcher · page.tsx Dashboard
Components 20
User experience
- Landing page
src/app/page.tsx - Sign in / sign up
src/app/sign-in/[[...sign-in]]/page.tsx - Dashboard
src/app/dashboard/page.tsx - Dashboard controls
src/app/dashboard - Dashboard actions
src/app/dashboard/actions.ts
Job discovery
- Company detection
src/lib/ats.ts - Scheduled poll route
src/app/api/cron/poll/route.ts - Posting poller
src/lib/poller.ts - ATS adapters
src/lib/ats.ts
Alert delivery
- Alert dispatcher
src/app/api/cron/dispatch/route.ts - Filter and schedule
src/lib/matching.ts - Telegram service
src/lib/telegram.ts - Telegram webhook
src/app/api/telegram/webhook/route.ts
Identity and data
- Synced user
src/lib/clerk-user.ts - Application database
src/lib/db.ts
Other components
- Job seeker
- ATS platforms
- Cron scheduler
- Telegram
- Clerk identity
Connections 28
- Job seeker → Landing page: opens
src/app/page.tsx - Job seeker → Sign in / sign up: signs in
README.md - Job seeker → Dashboard: manages alerts
README.md - Dashboard → Dashboard controls: renders
src/app/dashboard/page.tsx - Dashboard controls → Dashboard actions: invokes
src/app/dashboard/add-company-form.tsx - Dashboard → Synced user: requires user
src/app/dashboard/page.tsx - Dashboard → Application database: loads dashboard data
src/app/dashboard/page.tsx - Dashboard actions → Synced user: requires user
src/app/dashboard/actions.ts - Dashboard actions → Application database: updates preferences
src/app/dashboard/actions.ts - Dashboard actions → Company detection: detects company
src/app/dashboard/actions.ts - Dashboard actions → Posting poller: polls company
src/app/dashboard/actions.ts - Synced user → Clerk identity: reads identity
src/lib/clerk-user.ts - Synced user → Application database: syncs user
src/lib/clerk-user.ts - Cron scheduler → Scheduled poll route: triggers
README.md - Scheduled poll route → Application database: selects companies
src/app/api/cron/poll/route.ts - Scheduled poll route → Posting poller: polls company
src/app/api/cron/poll/route.ts - Posting poller → ATS adapters: fetches postings
src/lib/poller.ts - ATS adapters → Application database: normalized postings
src/lib/poller.ts - ATS adapters → ATS platforms: fetches job listings
- Cron scheduler → Alert dispatcher: triggers
README.md - Alert dispatcher → Application database: loads subscriptions and jobs
src/app/api/cron/dispatch/route.ts - Alert dispatcher → Filter and schedule: checks schedule and filters
src/app/api/cron/dispatch/route.ts - Alert dispatcher → Telegram service: sends alerts
src/app/api/cron/dispatch/route.ts - Alert dispatcher → Application database: records delivery
src/app/api/cron/dispatch/route.ts - Telegram service → Telegram: calls Bot API
src/lib/telegram.ts - Job seeker → Telegram: connects bot
README.md - Telegram → Telegram webhook: posts updates
README.md - Telegram webhook → Application database: stores connection data
src/app/api/telegram/webhook/route.ts