Overview
Automated Zoom web client workflows for shared virtual “common rooms,” presence awareness, and hands‑off meeting participation at a time when official APIs were insufficient or unavailable.
Problem
Before the pandemic, I loved campus libraries because I could choose spaces where friends or familiar faces were around—it’s simply easier to work alongside others. When everything moved online, I wanted that same ambient accountability, so I built a schoolwide Zoom “library/community workspace”. As a member of the Harvard Undergraduate Council’s social and residential life committee, I was able to use my position to share it to a community of hundreds of undergraduates. It let people see who was in a room (and how many) before joining.
As I learned more about Zoom’s web client, I realized I could tackle a second problem I frequently faced: I’d often miss breakout room prompts or get called out when I’d dozed off in Zoom class. I built an automation layer that audibly warns when breakout rooms open, monitors captions for name mentions, and automatically exits meetings once attendance drops.
Key Features
- Scraped live participant presence from the Zoom web client.
- Join notifications for shared virtual common rooms.
- Automated meeting join + rejoin with session state checks.
- Breakout room detection and auto‑entry.
- Participant name monitoring and activity-based exit conditions.
Technical Approach
- Selenium-driven browser automation with headless execution.
- DOM change resilience for dynamic Zoom UI updates.
- SMTP alerts for join/leave notifications.
Architecture & Guardrails
- Handled reCAPTCHA prompts and dynamic DOM changes.
- Watched breakout room events and caption cues for name mentions.
- No recording or message capture—presence only.
Challenges
- Anti‑bot measures, reCAPTCHA triggers, and dynamic DOM churn.
- Unstable selectors and frequent UI refactors.
- No official presence API, requiring browser‑level scraping.
Outcome
Enabled reliable virtual presence tracking and unattended participation, making shared study spaces and online classes tolerable during fully remote periods.
Note: Zoom’s web interface changes frequently, and this project may be deprecated without ongoing maintenance. With more time, I’d harden the automation layer further.