Back to Library
Stage 02 / Setup

Zoom Automation Hub.

Full programmatic control of your Zoom account from the terminal. Create a Server-to-Server OAuth app, hand Claude Code three credentials, and your agent can schedule meetings, pull recordings and transcripts, and read reports without opening the dashboard. S2S OAuth is the simplest auth flow there is: no redirect URLs, no consent screens, no browser popups.

What you'll have
  • One Zoom account, fully scriptable through Server-to-Server OAuth, so Claude Code can drive meetings, recordings, and reports from plain-English requests.
  • Recordings and transcripts on tap list cloud recordings, download transcripts only or everything, and feed them straight to your agent for summaries.
  • A reusable SaaS-control pattern the same three-credential, token-caching CLI shape you can copy for the next tool that holds your data.
4D Setup
Build time ~15-20 min
Track 4D required, 8D extensible
Touches zoom-cli, Meetings, Recordings, Transcripts, Reports
Source blueprints/zoom-automation-hub/
One-click start

Connect it with Claude.

Paste this into Claude Code. Claude reads the local blueprint, walks you through creating the Zoom app and pasting your credentials, then runs an auth test before touching anything live.

How this fits in the OS.

Depends on

Python, a Zoom account that can create a Server-to-Server OAuth app, a browser for the one-time app setup, and the blueprints/zoom-automation-hub/ files in your local workshop repo.

Uses

A small Python CLI, zoom-cli, that talks to the Zoom API with a cached, auto-refreshed token. This is a CLI path, not an MCP path. The agent calls it through Bash.

Unlocks

Your agent can schedule meetings, pull recordings and transcripts, and read reports, all from plain-English requests it can inspect and rerun.

What changes for you.

Your Zoom account is sitting there with years of meeting data, transcripts, and usage history, all locked behind a dashboard you have to click through. This hands the API to your agent.

  • You stop clicking through Zoom. Scheduling, recording downloads, and reports become one-line requests.
  • You get transcripts your agent can use. Pull the transcript after a call, summarize it, and file the action items, without opening a browser.
  • You learn a pattern you will reuse. The three-credential S2S OAuth shape here works for almost every SaaS tool that holds your data. Zoom is just the first domino.

Before you start.

Three things specific to this build

  • A Zoom account with permission to create a Server-to-Server OAuth app (Pro or higher for most API features).
  • Python 3.9 or newer on your machine.
  • 1Password or Infisical ready for the three Zoom credentials. You will never paste them into Claude chat.
Why Server-to-Server OAuth

S2S OAuth is the simplest Zoom auth flow: present three credentials, get a token, call the API. No redirect URLs, no consent screens, no browser popups. That is exactly what makes it safe for scripts and agents.

The build.

Five checkpoints. Stop after each one long enough to see what happened. The agent can run the commands, but you create the Zoom app and type any real credential values yourself.

Step 01

Create the Zoom app

8 min

In the Zoom Marketplace, create a Server-to-Server OAuth app:

Do in browser

Go to marketplace.zoom.us, then Develop, then Build App. Choose Server-to-Server OAuth, name it, and copy the Account ID, Client ID, and Client Secret.

No Build App option? Your account may not have developer permissions. Ask your Zoom admin, or use an account where you can create apps.
Step 02

Add scopes and activate

4 min

Under the Scopes tab, add the read and write scopes the blueprint lists, then activate the app:

Scopes to add meeting:read, meeting:write recording:read user:read report:read

Add only what you need. You can always come back and add more later.

Step 03

Install the CLI

3 min

Let Claude install the CLI and store your three credentials where it expects them:

Paste into Claude Code

Read blueprints/zoom-automation-hub/ and set up the zoom-cli for me. Install it, then tell me exactly where to put my Account ID, Client ID, and Client Secret. I will paste those values myself, never into this chat.

Claude offers to enter your secret? Say no. Credentials go into an env var, a config file, or 1Password/Infisical, typed by you.
Step 04

Run the auth test

2 min

Confirm the token flow works before anything else:

Run in terminal zoom-cli auth test

A clean result means your credentials are valid and the CLI can reach the Zoom API.

Step 05

Do one safe read

3 min

List your recent meetings so you can see it working before anything writes:

Ask Claude

"List my Zoom meetings from the last week." Then try "Download the transcript from my most recent recording."

If the auth test passes and a read command returns your real meetings, your Zoom Automation Hub is connected.

When it works.

You know this connection is real when four things happen in order:

  1. zoom-cli auth test passes. Your three credentials are valid and a token is cached.
  2. A list command returns your meetings. The CLI can read your account.
  3. A recording or transcript downloads. Large files stream to disk without eating memory.
  4. Claude can act on a plain-English request. "Schedule a 30-minute call tomorrow at 2pm" creates the meeting and hands you the link.

If you get stuck.

Common failure modes, ranked by how often they waste time:

  • Auth fails after setup. Recheck all three credentials and confirm the app is activated in the Marketplace.
  • A command says scope missing. Add the scope the error names under the app's Scopes tab, then reactivate.
  • Recording query returns nothing. Zoom limits recording queries to 30-day windows. Ask Claude to chunk the date range.
  • Credentials in git. Stop. Move them to an env var or 1Password/Infisical, then re-run git status --short.

Where to go next.

Once Zoom is connected, these are the natural next moves.

Back to the Library