What does this mean?
Value-First Studios · HubSpot Academy Bootcamp
The AI-Augmented HubSpot Stack
Everything we shared in the course, in one place.
You don’t need to be a developer. Get good at asking for the help you need, when you need it — and decide whether that help is a tool or a teammate. Treat it like a teammate and coach it; just never stop being the one who checks the work.
AI, in plain language
The vocabulary the course assumes, in plain English. See the term, recall what it means, then flip to check yourself — and each answer names where it showed up in the bootcamp. Shuffle any time.
1 / 25
tap the card to reveal
Your self-check stays on your device — it is your own read on what landed, never a score kept on you.
BResources
ungatedShowHide
Your CLAUDE.md, section by section
A real CLAUDE.md for a HubSpot enrichment service — every section with the do-this / not-that, closing on the teammate-not-tool mindset.
Open the guideThe CLAUDE.md starter
A blank, fill-in CLAUDE.md — six short sections with a one-line reminder each. Paste it, swap the blanks for your own project, and you have a working file in a couple of minutes.
Copy the starterThe gold prompt
The clean, specific ask we built the endpoint from. Notice what it names: framework, path, method, what “done” means, and the miss case.
“Add a POST route at /api/enrich that takes a contact email, looks up company context from HubSpot, and returns company name, size, and a one-line enrichment summary. If no company is found, return status: no_match and do not write anything back.”
The enrichment endpoint
The /api/enrich pattern we built live — reads company context, returns a structured summary, handles no-match cleanly. Yours to adapt for your own portal.
See how it is builtWhich model for which job
Don’t default to the biggest model. Haiku for simple lookups, Sonnet for real enrichment, and save the top tier for the problems that actually need it.
In the session recordingThe Language of Value
A different deck from the AI terms above: the vocabulary we build and coach with — words that name value instead of the inherited business jargon most tools ship with. Browse the full gallery and drill those too.
Browse the Value VocabularyInstall the vocabulary in your own Claude
A downloadable Agent Skill — the always-on reflex plus the full glossary — that teaches your own agent to speak in value by default. Copy it, or drop the folder straight into Claude Code. Open the Teach your agent tab.
Install the Agent SkillThe AI Orchestrator job description
The job description for the role you’re growing into — the person who coordinates AI and humans and owns the handoffs, not just the machines. Fill in your context and export a finished, hireable JD as text or a Word doc.
Build the job descriptionSlides & session recordings
The full decks and every session recording live in your HubSpot Academy bootcamp resource center — managed by HubSpot, open to enrolled participants.
Build it yourself, from scratch
Want to recreate the Session 2 build on your own machine? Here’s the whole thing from an empty folder. The mock version runs with no API keys at all — the AI here is Claude Code writing the endpoint, not a key inside it.
Blank slate
mkdir hubspot-enrich && cd hubspot-enrich
Scaffold the minimal Next.js app
Pinning @14 keeps you on the course’s Node 18+ floor.
npx create-next-app@14 . --ts --app --no-src-dir --no-tailwind --no-eslint --import-alias "@/*" --use-npm
Open Claude Code
claude
Write a CLAUDE.md first (optional)
Say to Claude Code
Create a short CLAUDE.md: Next.js App Router, TypeScript, Node 18+; one job — a HubSpot workflow calls this and it enriches a contact. Never guess a property; read it back; sandbox before production.
The prompt (mock-first — no keys)
Say to Claude Code
Add a POST route at /api/enrich that takes a contact email, looks up company context, and returns company name, size, and a one-line enrichment summary. If no company is found, return status: no_match. For now, resolve the company from a small local fixture keyed by the email domain — no external API yet. Then run it and show me it works.
Run it locally
npm run dev # -> http://localhost:3000Test the round trip
Match an email domain to one of the fixtures Claude Code created (it’ll list them), and use any unknown domain for the miss case.
curl -X POST http://localhost:3000/api/enrich \ -H "content-type: application/json" \ -d '{"email":"you@<a-fixture-domain>"}' # -> {"companyName": ... ,"status":"matched"} curl -X POST http://localhost:3000/api/enrich \ -H "content-type: application/json" \ -d '{"email":"you@unknown-domain.com"}' # -> {"status":"no_match"}Point it at your real HubSpot
Say to Claude Code
Now add a real mode: when HUBSPOT_TOKEN is set, look the company up live from HubSpot by the email’s domain instead of the fixture.
Use a private-app token — a Service key from the auth section below — scoped to companies read.
echo 'HUBSPOT_TOKEN=pat-…' > .env.local # restart dev, then curl a real contact's email
That’s the whole thing — no code you wrote by hand, just the ask. The CLAUDE.md guide shows how to make it repeatable.
HubSpot auth, decoded
Six ways to authenticate to HubSpot, and they get mixed up constantly — it’s the “which key?” question that stalled the room in Session 1. Here’s what each one actually is, and when to reach for it.
Legacy app tokens (API key)
The old account-level API key — one key, full access, no scoping. HubSpot deprecated it on Nov 30, 2022.
Use for: nothing new — migrate to a private app.
Personal Access Key
Authenticates you — your user, carrying your own permissions. Never share it.
Use for: the HubSpot CLI and local development. Caveat: only sees what your user can — some objects need a private app.
Developer API Key
Authenticates your app developer account — not a customer portal’s data.
Use for: managing app definitions, webhooks, and testing in a developer account. Not for production CRM data.
Service keys (Private App token)
A scoped, static token for a single account — no user, no refresh, you choose the scopes. The modern replacement for the legacy key.
Use for: server code that reads or writes one portal — like the endpoint we build. Token format pat-…
MCP Auth Apps
Connects an AI assistant (Claude, ChatGPT, Cursor) to HubSpot through the remote MCP server. Create one under Development > MCP Auth Apps; scopes are assigned automatically.
Use for: wiring an AI client to HubSpot with no code. There’s also a one-click Claude Connector.
HubSpot CLI (hs)
The command-line tool for local work — themes, modules, projects, serverless functions. It’s the tool, not the credential.
Authenticates via: a Personal Access Key (or OAuth). Use for: fetch/upload and build from the terminal.
For this course, reach for…
- Build the Session 2 endpoint (server reads a portal) → a Private App token / Service key, scoped to what you read.
- Follow along in Claude Code / the CLI → a Personal Access Key.
- Wire Claude straight to HubSpot, no code → an MCP Auth App or the one-click Claude Connector.
- A legacy API key → don’t. It’s retired — use a private app.
The elephant we named on stage
Should you humanize your AI?
We name our agents. We talk to them like teammates. Some of that feels like a lot — so here’s why we do it on purpose. Treat an AI as a tool and you poke it for one-off answers. Treat it as a teammate you coach — give it your context, hold it to a standard — and the relationship compounds, exactly like a real hire. That’s all an agent is: a CLAUDE.md that spells out who to be, plus a name. Go all-in on working with it.
Humanize the collaboration
Coach the teammate. Brief it well, correct it kindly, let it get better at your work over time.
Never your judgment
Read the record back. Keep your hands on anything that writes to production. You decide what ships.
The three sessions
Where agents fit
Native HubSpot AI vs. workflows vs. agents, and the first live Claude Connector build inside HubSpot.
Building with Claude Code
From plain English to a real HubSpot integration, and the CLAUDE.md that makes it repeatable.
Productionizing and scaling
Failure modes, monitoring, human-in-the-loop, and governance so the system outlasts the person who built it. Ends with your Production Audit.
Want to keep building?
There is nothing to sign up for yet — no date, no price, no curriculum. If you want a next thing, tell us what would actually help and we will tell you when it is real.
The AI-Augmented HubSpot Stack — co-led with Nico Lafakis (opens in a new tab).