Find and track internships without the chaos. → searchtern.ksaif.dev
Most CS students end up sending 500+ applications across a dozen job boards with no real system for tracking any of it. SearchTern pulls the latest internships automatically every hour and gives you a single place to browse, search, and manage your pipeline.
- Scraper — APScheduler pulls from the Simplify repo and additional sources hourly, using bulk upserts to keep the database fresh without downtime
- Backend — FastAPI serves the data with rate limiting and input validation, hosted on Render
- Frontend — React/TypeScript dashboard with live search, sorting, and a drag-and-drop Kanban tracker
- AI Agents — Claude Code, opencode, or Hermes authenticate with a per-user key generated under Settings → AI Agents. Agents can search internships, read your synced resume and tracker, and propose tracker changes you approve in the overlay
- Infrastructure — Backend hosted on Render, frontend on Vercel, database on Supabase PostgreSQL, with Supabase Auth + Storage for user accounts and resume cloud sync
| Job Board | Thousands of internships, refreshed hourly |
| Search & Filter | Filter by company, role, or location |
| Application Tracker | Drag-and-drop Kanban across Saved → Applied → Interview → Offer → Rejected |
| Analytics | Reply rate, offer count, rejection breakdown |
| Saved Jobs | Bookmark from the board, sync to your tracker |
| CSV Export | Export your full pipeline, Excel-compatible |
| User Accounts | Sign in with Supabase; agent keys and cloud-synced resumes are tied to your account |
| AI Agents | Per-user keys for CLI agents — search, read your tracker + resume, propose tracker edits you approve |
| Resume Cloud Sync | Keep your resume in your account so your agents can reference it |
Coming soon: AI resume grader, resource hub
| Scraper | Python, BeautifulSoup4, APScheduler, psycopg2 |
| Database | PostgreSQL (Supabase) |
| Backend | FastAPI, Uvicorn, SlowAPI |
| Frontend | React, TypeScript, Vite, Mantine UI, @dnd-kit |
| Auth & Storage | Supabase Auth (accounts), Supabase Storage (resume sync), RLS-protected tracker |
| Agent Bridge | FastAPI `/agent/*` endpoints, per-user agent keys, proposal review |
| Infrastructure | Render (backend), Vercel (frontend), Supabase (database), Cloudflare (DNS) |
Developers: For setup, build, and local development instructions, please see dev.md.