Import career events from Handshake #91

Open
opened 2026-10-03 19:44:46 +00:00 by jalenluorion · 0 comments
Member

Goal
Career fairs, employer info sessions and workshops are a big part of campus life. Showing them next to classes and club events completes the picture.

Current state

  • Monitor: api/scraper/monitors/career_club/handshake.py posts a GraphQL query from monitor_data/handshake_req.dat (loaded by a relative path that only works when run from api/scraper/).
  • It authenticates with HANDSHAKE_AUTH_TOKEN, which is the hss-global cookie copied from someone's browser (api/scraper/set_handshake_token.py). It is declared in secretspec.toml.
  • Only an Excel exporter exists (api/scraper/exporters/handshake_export_to_excel.py), with no Supabase export.

Scope

  • Look for an official source first: a Career and Professional Development Center iCal or feed, or a public Handshake listing. A personal session cookie expires, is tied to one student, and may break Handshake's terms.
  • If the cookie is the only option, get explicit sign-off and document how to rotate it in OpenBao.
  • Fix the relative path; add api/scraper/scripts/export_handshake.py following export_soc.py (dry run, CAREER event type, employer as org or category, regenerate occurrences).
  • Skip events also listed on TartanConnect.
  • Add a fixture test.

Done when

  • Upcoming career events show in Explore under a Career category, refreshed by the weekly job.

Notes
After the Spring launch.

**Goal** Career fairs, employer info sessions and workshops are a big part of campus life. Showing them next to classes and club events completes the picture. **Current state** - Monitor: `api/scraper/monitors/career_club/handshake.py` posts a GraphQL query from `monitor_data/handshake_req.dat` (loaded by a relative path that only works when run from `api/scraper/`). - It authenticates with `HANDSHAKE_AUTH_TOKEN`, which is the `hss-global` cookie copied from someone's browser (`api/scraper/set_handshake_token.py`). It is declared in `secretspec.toml`. - Only an Excel exporter exists (`api/scraper/exporters/handshake_export_to_excel.py`), with no Supabase export. **Scope** - [ ] Look for an official source first: a Career and Professional Development Center iCal or feed, or a public Handshake listing. A personal session cookie expires, is tied to one student, and may break Handshake's terms. - [ ] If the cookie is the only option, get explicit sign-off and document how to rotate it in OpenBao. - [ ] Fix the relative path; add `api/scraper/scripts/export_handshake.py` following `export_soc.py` (dry run, `CAREER` event type, employer as org or category, regenerate occurrences). - [ ] Skip events also listed on TartanConnect. - [ ] Add a fixture test. **Done when** - [ ] Upcoming career events show in Explore under a Career category, refreshed by the weekly job. **Notes** After the Spring launch.
jalenluorion added this to the CMUCal project 2026-10-03 19:45:09 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
ScottyLabs/cal#91
No description provided.