Automating HBS · Jamie Friedman

A project from my first year at Harvard Business School

I automated the admin of business school. Then I taught my classmates to.

Life gets busy at HBS. To make the most of my time, I automated as many of my tasks as possible, handing the small, recurring admin to AI agents: filing class materials, prepping for cases, tracking recruiting, triaging two inboxes.

Friends kept asking how, so I built a website that teaches them a few of the most helpful tasks, from a simple daily study run anyone can set up to the full Chief of Staff I use every day.

Why: the admin is spread across six systems

An HBS first year runs six courses with a case almost every day while recruiting for a summer internship. What you need to plan a single day lives in six places across school, personal life and recruiting. None of them talk to each other, and two sit behind university sign-on with no API a student can use.

School resources

CanvasCases, problem sets and deadlines for six courses
HBS OutlookClass schedule, section and club mail

Personal life

GmailPersonal mail and newsletters
Google CalendarEverything outside class

Recruiting & career

12TwentyRecruiting events and registrations
LinkedInJob alerts, roles and contacts

The website

Tips & tricks to automate your HBS experience

The site opens with a choice of two things to automate. Each comes with step-by-step instructions written for someone who has never used a terminal, and a tip for letting Claude in Chrome read the page and do the clicking.

The student website's home page: 'Tips & Tricks to Automate Your HBS Experience', with two choices, a daily study bot and a Chief of Staff web app.
Click any screenshot to see it full size. The home page of the website I built for classmates.

The easy one

A daily study bot, set up in about 90 minutes

No codeOne scheduled runClaude desktop app + Claude in Chrome

The low-hanging fruit: one scheduled task on your laptop that runs every weekday after class. It needs no website and no code, just a folder structure, a context file and a starter prompt the site gives you to copy.

  • Files Canvas. Downloads what professors posted into a folder per course and case, with every post-class deck in one place for midterms.
  • Writes study notes. For tomorrow's cases: the questions word for word, key figures with the exhibit cited, the arithmetic worked step by step, and the strongest argument on each side.
  • Logs participation. Asks in one line what you said in class, logs quiet classes too, and names where to speak tomorrow.
  • Scans recruiting. Flags new 12Twenty events that match your focus. It never registers you.

It's framed as a study partner, not a substitute: read the case and form your own view first, then use the notes to check it. It never writes anything that gets submitted, and each course's AI policy comes first.

The study bot page of the student website: a tip to let Claude in Chrome do the setup, the 'study partner, not a substitute' principles, and what the bot does each weekday.
The study bot section of the website. Further down: the folder structure, the tracker, the context file and the starter prompt.

The full system

An AI Chief of Staff: one page that runs my day

CalendarTo-do listRecruiting trackerTwo inboxesNewsParticipationAI agent

Everything from the six systems in one page I check from my phone between classes, with an agent that handles the routine work and never does anything I can't undo without my say-so. Below is the template version, running on made-up sample data.

View 1 · planning the day

Top of the console on sample data: the date, the next class (LEAD, in 15 minutes) with the number of classes since I last spoke in it, the agent chat box, a Monday-to-Sunday calendar with weekday classes, club and recruiting events and weekend plans, new 12Twenty events and priority email tagged HBS or Gmail.
  1. Tracking class participationWe're expected to participate as much as possible, but in many courses not every class, so others get a chance. Before each class it shows how many sessions since I last spoke there.
  2. An agent at the top“Add a to-do to email my CPD advisor before Thursday” or “block two hours tomorrow for the case”, and it does it.
  3. One calendarDay, week and month views merged from HBS Outlook and Google, color-coded by course.
  4. Recruiting eventsNew 12Twenty events matched to my targets, with one-tap sign-up that the laptop carries out.
  5. Priority email from both inboxesMail that wants a reply from HBS Outlook and Gmail, tagged by source, one tap to turn into a to-do.

View 2 · getting it done

The to-do list on sample data: tasks grouped by day, with FRC and STRAT case prep items carrying Prep, case, exhibits and Canvas links, alongside a 12Twenty sign-up, a problem set, an admin task and a coffee chat.
  1. Every Canvas assignment in one to-do listGrouped by the day it's due, with a horizon so tonight's reading isn't buried under next month's.
  2. Cases pulled into each class to-doThe case, exhibit files, the Canvas page and my prep notes are attached right on the task, so tomorrow's prep is one click.
  3. School, recruiting and life in one list12Twenty sign-ups, coffee chats and admin sit beside class prep, each tagged so I can filter to one kind.

Also on the page

Recruiting trackerNew roles from job boards and LinkedIn alerts, sent to an internship tracker with statuses, deadlines and who I've spoken to.
Worth readingHeadlines from the newsletters already in my inbox, matched to my interests and rebuilt twice a day.
Participation by courseSessions spoken in and since I last spoke, per course, from the class log the daily run keeps.
Recruiting deadlinesSign-ups and applications due in the next ten days, flagged when they're inside 48 hours.

Two ways classmates can build it

Option 1 · about 15 minutes

No code, inside Claude

A page that runs on each student's own Claude account and reads their Google Calendar and Gmail, with Canvas and Outlook arriving as calendar feeds. The agent, to-do list, news and role tracker all work.

Option 2 · two to three hours

Build your own, guided in Claude Code

Copy a scrubbed public template and build the full console step by step: your own website, database, laptop worker and agent. A first coding project with a useful result.

How the Chief of Staff works

The hard constraint was that two sources only exist behind a signed-in browser. So the system is split in two: workers that do the reaching, and a website that only ever reads a database.

Approvals travel the other way: I tap “Sign me up” on my phone, the website queues it, and the laptop worker, the only machine with a 12Twenty session, carries it out within a minute. University credentials never leave the laptop; the website holds nothing that could impersonate me.

Product decisions

Most of the work was deciding what the system should not do. Each of these came from something that went wrong first.

  1. One scheduled run, not seven

    My first version had seven daily automations, and I switched them all off because each one opened a new conversation every day. The fix was one run with one notification. Every new feature now has to fit inside it.

  2. Nothing irreversible without a tap

    The system registers me for an event only when I ask for that specific event, and a standing “just sign me up” never carries over. It never sends email: outreach notes are drafted for me to send myself.

  3. Stale data has to announce itself

    Every source shows when it last synced, and the page says when the laptop worker is offline. A quiet calendar should mean a quiet day, never a broken sync.

  4. Respect the platforms

    No LinkedIn scraping: roles arrive through LinkedIn's own alert emails. 12Twenty is visited gently, because repeated visits trigger a block that lasts more than a day.

  5. A study partner, not a substitute

    The case notes quote the assignment, cite every figure and show the arithmetic, so I can check my own reading. They never write anything that gets submitted, and each course's AI policy comes first.

  6. Defaults that can't be mistaken for data loss

    The to-do list once defaulted to “through the next class day” and hid ninety of a hundred assignments, which looked like Canvas had stopped syncing. It now defaults to a week and says how many items are further out.

Built with

Next.js 15React 19TypeScriptNeon PostgresVercelNode.jsPlaywrightGitHub ActionsClaude API (tool use)Canvas APIGoogle Calendar APIGmail APIClaude CodeClaude in Chrome