If you've ever filed an I-765 for OPT or STEM OPT, you know the drill: you submit your application, and then... you wait. USCIS gives you a generic "80 days" estimate that's rarely accurate, so you end up doing what thousands of other F-1 students do — refreshing r/f1visa every night, scrolling through comment threads trying to find someone whose "receipt date" matches yours.
I built OPT Pulse to fix that.
The problem: official estimates vs. reality
USCIS's processing time pages tell you a range, but that range is wide, slow to update, and doesn't reflect what's actually happening at your specific service center this week. Meanwhile, the real signal — thousands of applicants posting "Received EAD today, applied on X" — is scattered across Reddit threads that are impossible to search or aggregate by hand.
OPT Pulse turns that scattered, community-reported data into something you can actually query.
What it does
🔮 Decision date predictor
Enter your application date and get an estimated decision window, built from the most recent non-premium cases that match your timeline — not a static USCIS number.
🔍 Case lookup
See exactly how everyone else who applied on your date is doing — approval rate, average processing days, and how your case compares.
⚡ Premium processing calculator
Counts your 30-business-day I-765 premium processing window automatically, skipping weekends and federal holidays, and gives you a refund checklist ready for the day USCIS blows past day 30.
📅 Unemployment day tracker
Log your employment history and get a visual timeline of exactly how many of your 90 (or 150 with STEM) unemployment days you have left. This is the one people forget about until it's almost too late — now you don't have to do the math yourself.
📄 I-983 guide & offer letter generator
A section-by-section walkthrough of Form I-983 (who fills what, common mistakes), plus a generator that spits out a ready-to-use PDF offer letter for your employer.
Why the data is actually trustworthy
Every single case in OPT Pulse is pulled and verified from real applicant reports on r/f1visa — not modeled, not estimated, not scraped from a stale government dataset. Timelines are also tracked separately by service center (NBC, TSC, PSC, VSC), because processing pace can vary wildly between them, and lumping them together would just add noise.
And no, you don't need to sign up for anything. No account, no SEVIS ID, no name. Just look up your date and go.
The stack, for the fellow devs
Since this is dev.to, here's the part you probably care about more than immigration paperwork:
-
Next.js for the app, with a clean
page.tsx(server component, metadata only) +XxxPageClient.tsx(client component, interactivity) split - shadcn/ui + Tailwind for the UI
- next-intl for multilingual support
- A companion Chrome Extension (Manifest V3) that talks to a
/api/predictendpoint, so you can get a prediction without even opening the site
It's the kind of project that started as "I'll just track my own case in a spreadsheet" and turned into a full-blown multilingual web app — a pattern I suspect a lot of indie hackers reading this will recognize.
Try it
If you're currently in OPT/STEM OPT limbo (or know someone who is), give it a shot:
It's free, it's anonymous, and it might save you a few dozen late-night Reddit scrolling sessions. If you have feedback or feature ideas, there's a "suggest a feature" link right on the site — I'm actively building this based on what real applicants ask for.
Have you dealt with the OPT/STEM OPT waiting game? Curious what other "waiting on the government" problems you've turned into side projects — drop them in the comments.




Top comments (0)