seekOS

Partway through this cycle's internship search I got tired of manually re-reading my own inbox to figure out where things stood — which companies had replied, which had gone quiet, which had actually moved to a next round. I was already forwarding application emails into two Gmail labels out of habit. It seemed natural to have something read those labels and just tell me the state of my search, instead of me reconstructing it by hand every few days.

seekOS is a personal dashboard that tracks my internship and new-grad applications automatically. A scheduled agent reads the two labeled Gmail folders, classifies each new email (application confirmation, OA invite, recruiter call, interview, offer, rejection, or just noise), matches it to the right application, and updates the tracker — no manual data entry, no spreadsheet.

What it actually does:

  • Two boards: separate Internships and New Grad views, each showing company, role, applied date, and current stage (Applied → OA → Recruiter Call → Interview → Offer, or Rejected)
  • Auto-updates from Gmail: a scheduled Claude Code routine classifies new mail with real judgment (not keyword matching) and writes the result straight to the database
  • Notifications: flags anything worth a second look, like an application that just moved to a callback stage
  • Analytics: a GitHub-style contribution heatmap of applications over the past year, plus callback rate, in-process count, and rejection breakdown
  • There are already hundreds of job-tracking tools out there, and this isn't an attempt to make a better general-purpose one — I wasn't trying to build a product for everyone. It's scoped tightly to exactly how I run my own search: two Gmail labels, two tracks, one allow-listed sign-in. If it's useful to someone else who works the same way, the code's open and the README walks through self-hosting it, but that's a nice side effect, not the goal.

    What I liked most about building it was how fast it went from idea to something I actually rely on. Instead of hand-rolling a cron worker with its own Gmail OAuth scopes, it uses a Claude Code scheduled routine — a cloud agent that reads Gmail through Anthropic's Gmail connector, classifies each email, and calls back into the app's API to log the result. No polling infrastructure, no standing service to babysit. That's the part that made this feel less like a weekend toy and more like a real demonstration of what AI-assisted development makes possible now: a rough idea turned into a small piece of working infrastructure in my actual life, not just a demo.

    See it running (sample data, no sign-in needed) at seek-os.vercel.app/demo, or clone the repo and run your own copy — github.com/navinbhat12/seek-os

    July 2026

    Landing page for signed-out visitors
    Landing page for signed-out visitors
    Internships board (demo data)
    Internships board (demo data)
    Analytics — contribution heatmap and callback stats
    Analytics — contribution heatmap and callback stats