A privacy-first campus recruiting workspace for applications, deadlines, interview links, office locations, commute research, and hiring progress.
Live product · Try the no-login demo · 中文说明
HyperGrad turns a fragmented campus recruiting season into one focused workflow. It combines an application pipeline, confirmed schedule, role analytics, city-level opportunity map, office-level research, route planning, and privacy-trimmed friend locations in a single dashboard.
The public demo is an isolated in-memory sandbox: it does not require an account, write to Supabase, overwrite browser data, or publish friend locations.
Campus recruiting information is usually split across spreadsheets, calendar reminders, recruitment portals, map searches, chat messages, and interview links. The hard part is not storing another row—it is keeping the next deadline visible while comparing role fit, progress, location, and commute trade-offs.
HyperGrad is designed around that decision loop:
- Capture a job from a public recruitment link or pasted JD.
- Confirm the role direction, Base city, office candidate, and application stage.
- Record only objective schedule nodes such as assessments, interviews, submissions, and Offer deadlines.
- Review pipeline and role signals on the overview.
- Open Map Research when office location or commute becomes part of the decision.
- Application workspace — track stages, role directions, preferences, priorities, JD snapshots, and objective schedule nodes.
- Agent capture queue — newly captured roles enter a dedicated screening stage before they join the manual application pipeline.
- JD Capture — extract company, role, Base, direction, and deadline from supported public recruitment pages; every result is reviewed before saving.
- Schedule — combine assessments, interviews, material deadlines, meeting links, and Offer response dates.
- Role signals — compare direction distribution, interview conversion, and response-time signals.
- Map Research — city clusters, precise office points, friend aliases, transit itineraries, and driving routes.
- Privacy-aware sharing — friends see an alias, city, and point only; company, role, stage, building, and schedule remain private.
- Invite-gated cloud accounts — Supabase Auth, PostgreSQL, Row Level Security, and administrator-managed invite codes.
- No-login demo — a disposable sandbox with representative data for reviewers and contributors.
flowchart LR
Browser["Static web app\nVercel or local server"]
Maps["MapLibre + Leaflet\nOpenStreetMap / AMap"]
Auth["Supabase Auth"]
DB["PostgreSQL + RLS\nJobs, events, invites, sharing"]
Edge["Edge Function\nJD Capture adapters"]
Browser --> Maps
Browser --> Auth
Browser --> DB
Browser --> Edge
Auth --> DB
Edge --> PublicPages["Public recruitment pages"]
The frontend is framework-free JavaScript and CSS. Cloud features are optional: without Supabase configuration, the app remains usable as a local workspace.
Requirements: Python 3.10+ for the local static server, or Node.js 20+ for the production build.
git clone https://github.com/dufunn/hypergrad.git
cd hypergrad
python3 server.py --openOpen http://127.0.0.1:4175. No API key is required for the no-login demo and basic local workflow.
Optional local integrations:
cp amap-config.example.js amap-config.local.js
cp supabase-config.example.js supabase-config.local.jsUse only a browser-safe Supabase publishable/anon key. Never place a service_role key in frontend configuration.
npm run checkThe check builds the deployable dist/ directory and runs provider/parser regression tests for JD Capture.
The reference deployment uses Vercel for static hosting and Supabase for Auth, PostgreSQL, RLS, and Edge Functions. See DEPLOY.md for the complete setup, including:
- database schema and migrations;
- the first platform administrator;
- the registration hook for invite codes;
- JD Capture Edge Function deployment;
- Vercel environment variables;
- AMap domain restrictions.
- User jobs and schedules are protected by PostgreSQL Row Level Security.
- The browser never receives a Supabase
service_rolekey. - Friend sharing returns a deliberately reduced point payload.
- JD Capture requires an authenticated request, supports an origin allowlist and best-effort per-instance rate limit, limits source size and redirects, and blocks common local/private hosts.
- Imported recruitment data is always treated as a suggestion and confirmed by the user.
Please report vulnerabilities through GitHub private vulnerability reporting as described in SECURITY.md.
HyperGrad is a working product and an actively evolving portfolio project. Near-term engineering work includes splitting the current frontend into domain modules, expanding browser-level tests, and adding more recruitment-provider adapters without turning JD Capture into a bulk scraper.
Issues and focused pull requests are welcome. Read CONTRIBUTING.md, CODE_OF_CONDUCT.md, and THIRD_PARTY_NOTICES.md first.
The original HyperGrad source code is released under the MIT License. Third-party datasets, map tiles, fonts, APIs, and media keep their own terms and are listed separately in THIRD_PARTY_NOTICES.md.
