The Idea
I'm a registered nurse. Every aspiring nurse fights the same battle before touching a patient: 40+ California BSN/ABSN programs, each with its own application window, its own portal (Cal State Apply? NursingCAS? Both?), and its own habit of moving dates silently. Miss one deadline and you lose an entire admission cycle.
Schools are unreliable publishers of their own deadlines: they leave expired dates up, extend deadlines by banner, and restructure pages until the "deadline" you find belongs to a different degree. Aggregators scrape once and go stale.
Nursing School Navigator is a deadline calendar that is continuously verified against each school's own page — and honest about what it doesn't know.
How It Works
Students get a free, crawlable calendar at nursingschoolnavigator.com — 45 programs, each with its next deadline and a link to the exact source page. Verified depth (all cycles, the verbatim quote, reminders) sits behind a one-time unlock.

Behind it, a fleet of AI agents keeps the data true:
- A change-detection lane fetches every deadline page daily and hashes a "deadline signal" — which tracked dates still appear on the page. Widget churn doesn't move it; a vanished deadline does.
- A verification lane re-proves stored deadlines on a confidence-tiered cadence: live source URL + verbatim quote + a deterministic Python verifier pass before anything reaches High confidence. The scraper caps at Medium — software can't promote what it can't prove.
- An expiry audit catches deadlines that simply passed while still posted — invisible to both other lanes, because the date is still on the page.
- Anything ambiguous lands in a human review queue. The system may say "needs review"; it may not guess.

Main Features
- 45 California BSN/ABSN programs, next deadlines + source links, free and SEO-crawlable
- Every verified date backed by a verbatim quote from the school's own page
- Daily drift detection, weekly re-verification, daily expiry audit
- Dual-portal awareness (Cal State Apply vs NursingCAS)
- One-time unlock, no subscription; a human review console for contested changes
Technology Stack
- Python (stdlib only): deterministic deadline verifier + change detector, with embedded self-tests
- Claude agents on HyperAgent: seven specialized agents, hub-and-spoke, human-in-the-loop gates on anything destructive
- Airtable (canonical datastore, strict per-field governance) + GitHub (operating manual, state card, append-only ops log the agents read before acting)
- Static HTML on Netlify (public layer, server-rendered) + Softr (authenticated app); Gmail/Calendar for ops and reminders
On paper I built this solo; in practice my "team" is the agent fleet. They run operations, I make the judgment calls.
Challenges
- Bot walls that punish honesty: one university firewall allowlists curl but 403s a self-identifying bot; Python's robotparser fabricates "all disallowed" when robots.txt itself 403s, and evaluates first-match where the RFC wants longest-match. We fetch and evaluate robots.txt ourselves now.
- Deadlines that lie by omission: a page still showing last cycle's date passes change detection AND quote verification — that failure class forced the expiry audit.
- Year rolls: "March 1, 2026" becoming "March 1, 2027" is invisible to month/day signals; only verbatim re-verification catches it.
- Misattributed dates: one school mixes a master's-program deadline into its BSN section, so we verify which program a quote belongs to.
Real catches so far: a Dec 1 that quietly became Nov 30, a Sep 2 that became Sep 7, a dropped Spring intake, and one deadline extended twice by banner.
What We Learned
Every detection method has a structural blind spot — you need overlapping lanes plus a human gate. An AI agent finds a deadline; a boring, testable verifier decides whether it's proven.
Intended Audience
Pre-nursing students applying to California BSN/ABSN programs. Built to scale nationwide.
What's Next
Deadline-reminder emails, prerequisite-to-program matching, and more states — same verification discipline..
Log in or sign up for Devpost to join the conversation.