---
title: "PANoodle: AI operations platform | Nathan Gamache"
description: "PANoodle, the AI operations platform I invented and lead, connects the team’s Claude or ChatGPT to 1,300+ tools over MCP, with a memory for every site."
url: https://www.nathangamache.com/projects/panoodle/
---

# PANoodle

PANoodle is the AI operations platform I invented and built for Perfect Afternoon in 2026, and I am its lead developer. The team connects Claude or ChatGPT to it, and through it works with more than 1,300 tools, tied to the agency’s own client and website records. It scopes and runs the monthly maintenance tickets on its own, with a person approving anything that touches a live site.

[All projects](https://www.nathangamache.com/projects/)

- Role: **Inventor and lead developer**
- Built at: **Perfect Afternoon**
- First version: **June 2026**
- Live: **July 2026**
- Tools: **1,300+, 13 loaded up front**
- Connections: **200+ across 20+ providers**
- Tests: **17,370, on real Postgres**
- Stack: **MCP · Claude · AI agents · Postgres**

![PANoodle’s Connections screen: 197 connected accounts, all healthy, none needing attention and none paused](https://www.nathangamache.com/assets/img/projects/panoodle.webp)

The Connections screen in September 2026.

## What it is

PANoodle is an internal platform for the agency. The team connects Claude or ChatGPT to it over MCP, and through it can work across the agency’s project management, CRM, WordPress, Google, source control, hosting and SEO tools: more than 1,300 tools in all.

All of it hangs off the agency’s own client and website records, so every connection, memory and automation belongs to a client or a site.

Every client and website also has its own memory and knowledge base, kept current as work happens, so an assistant starts on a site already knowing its history.

A bot in ClickUp scopes, estimates and runs the monthly maintenance and audit tickets end to end, and anything that would change a live site waits for a person to approve it. In its first 90 days it took on 181 tickets and finished 134 of them.

I invented it and built it, and I have made 736 of its 779 commits. Another developer joined in late September and has worked on security hardening, approvals from Slack, a cookie-consent scan and a Screaming Frog crawler. The agency’s designer gave it a redesign in September 2026, which I applied. It grew out of the agency’s plan to automate its monthly backups and site audits, which a colleague researched in early 2026. I became Perfect Afternoon’s lead developer in March 2026, and PANoodle is the biggest part of the work I have led since then: taking manual work off the team.

Timeline

## How it came to be

### Backups and audits

Where it started, Early 2026

The agency set out to automate its monthly WordPress backups and site audits, and a colleague researched how. In May and June I took over the prototype and rebuilt it around a WordPress site management service and a central dashboard. It checks backups, updates plugins, pulls vulnerability reports, runs Screaming Frog crawls and GTmetrix and PageSpeed reports, tests forms, and posts the results to ClickUp.

### An AI analytics app

The first version, June 2026

The day after a meeting with agency leadership and the marketing team about using Claude, I built an AI Analytics app for the team to test, connected it to Google Analytics and Search Console, and wrote the scope for what it would become. By the end of June it had about 30 connectors, a chat that could draw charts, and a settings dashboard of 16 pages.

### PANoodle goes live

Went live on July 1, July 2026

The app went live as PANoodle. That month its own WordPress plugin went onto its first six sites; many more tools per connector (SEMrush went from 2 to 26); one address for connecting an AI client; approvals across Claude, the app and Slack; a visual builder for automation flows; and a rebuilt memory that writes a recap after each conversation and keeps knowledge for every client and website.

### Built for the team

What the PMs and sales asked for, August 2026

The WordPress plugin rolled out across the agency’s sites, with more than 50 connected in two days. Monthly audit findings now become ClickUp tasks by themselves, with duplicates skipped, and developer agents scope the fixes and propose them for approval. Reports are written from ClickUp data, and PANoodle posts a morning summary of anything urgent. I also audited PANoodle’s own interface: 343 screenshots at four screen sizes, written up as 298 issues with about 14 root causes, including 2,398 instances of low-contrast text, and then worked through the causes with a shared component layer.

### The ClickUp bot

Monthly maintenance, end to end, September 2026

A PANoodle bot in ClickUp now runs the monthly maintenance and audit tickets end to end, in multi-stage runs, and staff can give it plain instructions on any task. A flow can stop for approval, and a reviewer can edit a draft, such as a client email, before it goes out. The in-app chat was retired on September 15: the team now works through the connector in their own Claude or ChatGPT. Tool search replaced loading every tool at once: an AI client now loads 13 tools on connect and finds the rest when it needs them. Runs killed by a deploy now resume by themselves, an AI step the provider refuses falls back to another model, and I applied the designer’s redesign to every screen.

### Checks on every site, and a quality overhaul

Through October 18, October 2026

The bot now estimates in the team’s format, sends each estimate to the developer who knows the site, and calibrates against the time actually logged. Seven checks run weekly on every live homepage: speed, accessibility, cookies, SSL and domain, tech stack, redirects and a Screaming Frog crawl. An accessibility and PDF fixer proves each repair against the original with veraPDF. Memory notes now replace older notes on the same topic and compile into a brief per site, client and agency, so memory stays the same size as it grows. Then a quality pass: every server file type-checked, the tests moved onto real Postgres, silent errors logged and held by a ratchet, about 19,700 comment lines cut, and the dashboard split into one module per page.

Capabilities

## What it does

01 · Memory

### A memory for every client and site

Each client and website has its own memory and knowledge base. It was seeded from the agency’s ClickUp history and now keeps itself up to date as work happens. A newer note on a topic replaces the older one, a second model call checks each replacement, and the notes compile into a brief for each site, client and the agency.

02 · Tools

### More than 1,300 tools

Across more than 200 connections and 20 providers, from WordPress and the agency’s servers to its CRM and SEO tools. An AI client loads 13 tools up front and finds the rest by search, ranked with BM25 and embeddings. A 245-case tool-choice eval checks that the right tool still comes up when the tools or their descriptions change.

03 · ClickUp

### A bot in ClickUp

Assign the bot a task and it writes a scope with an estimate, routes it to the right developer, does the work, and posts the results in the team’s own format, down to the attached GTmetrix and PageSpeed reports. In 90 days it ran 48 monthly maintenance tickets and 27 monthly audits.

04 · Approvals

### A person signs off

Anything that would change a live site waits in an approval queue with a deadline and a readable diff, and what was reviewed is exactly what runs. Each approval runs once, an agent cannot approve its own, and approvals can be decided in bulk.

05 · Automations

### Flows that run on their own

A visual builder for automation flows, and scheduled flows such as a weekly client report that goes to the account manager for approval, then to the client.

06 · WordPress

### A plugin for the sites

A companion plugin gives PANoodle the content, plugins, users and health of the sites it is installed on, plus first-party visitor analytics such as JavaScript errors, form abandonment and Core Web Vitals. Nothing is sent until the visitor consents.

![PANoodle’s Approvals screen, which says nothing there ever ran without a human approving it first, with tabs for awaiting you, approved, running, done, rejected, failed and canceled, and an empty queue awaiting approval](https://www.nathangamache.com/assets/img/projects/panoodle-approvals.webp)

The Approvals screen. Nothing on it runs until a person approves it.

Growth

## PANoodle helped build itself

As PANoodle grew, it kept growing itself. Working through its own code box, it wrote changes to its own code, and while it worked it noticed what it was missing and recommended how to improve itself. Those recommendations go into a developer queue of its own, where I review and build them.

- **A queue it files into.** Since August 19 its agents have filed 54 requests for new tools and fixes, and 52 of them are done.
- **Gaps closed the same day.** When it needed to read a branch’s history, it asked for read-only git ancestry tools, and they shipped about an hour later. A request for a tool that gathers a month of the team’s time shipped the same afternoon.
- **Fixes it found itself.** It flagged that its own estimates ran three to ten times too high, which led to calibrating them against the time actually logged, and it traced a runaway helper that froze a shared server to its cause.
- **What to automate next.** It groups what the team asks the bot for and marks the strongest candidates for automation; monthly backups and WordPress updates were first.

That is how it went from about 30 connectors at the end of June to more than 1,300 tools in October.

Outcome

## What it has taken off the team

- A month of the team’s logged time, which takes about 700 calls to gather by hand, now comes back in one call.
- A database cleanup that would have taken a loop of about 2,450 calls, any one of which could drop a row, now runs as one guarded tool call.
- Seven site checks that used to be run by hand, site by site, now run every week on every live homepage.
- An SEO pass on a client’s site, planned with PANoodle’s site records and carried out partly through its WordPress connector, pointed about 11,000 internal link occurrences that went through redirects straight at their live pages.

Architecture

## How it is built

- **One tool registry behind every surface.** MCP, the dashboard, the ClickUp bot, Slack and workflows all call tools through the same place, so permissions and the audit trail are enforced once.
- **Reads and writes kept apart.** They go through separate callers, so an AI client’s “always allow” on reads can never cover a write.
- **A hosted Node app** with a Postgres database, background jobs on system cron, and runs that resume from the step that failed.
- **Security.** OAuth 2.1 with PKCE for AI clients, credentials encrypted at rest with rotatable keys, permissions checked before anything is retrieved, and requests to client sites pinned to public addresses.
- **Models by job.** Claude Haiku for quick work such as triage and memory, Sonnet for the bot, workflows and reports, and Opus only where a workflow step asks for it, with a daily token limit per organization.
- **Tested on every commit.** 17,370 tests on real Postgres plus 283 checks that run the WordPress plugin’s real PHP, a type check of every server file, and a smoke boot. Nothing merges unless all of that passes.

Next on the roadmap is moving the ClickUp bot onto the Claude Agent SDK, on a worker of its own.

![A drawing of PANoodle: the team’s own Claude connects over MCP to PANoodle, which holds a memory for each client and site, approvals, automation flows and a ClickUp bot, and reaches connectors such as ClickUp, HubSpot, WordPress, Google, Slack, Gmail, GitHub, Bitbucket, Cloudflare, the servers, SEMrush and Ahrefs](https://www.nathangamache.com/assets/img/p-panoodle.svg)

A drawing of how the pieces fit together.

## Related projects

### [SJD Taxi Booking Platform](https://www.nathangamache.com/projects/sjd-taxi/)

Another hub: a booking system that four sites connect to, with every booking flowing into HubSpot.

Technologies: WordPress, PHP, TypeScript, React, Stripe

[Read the case study: SJD Taxi Booking Platform](https://www.nathangamache.com/projects/sjd-taxi/)

### [Security, Performance & Site Health](https://www.nathangamache.com/projects/security-stack/)

The kind of site health work PANoodle now helps with: Wordfence, a Content-Security-Policy at Cloudflare, and console errors traced to their cause.

Technologies: Security, Performance, Analytics, Cloudflare

[View project: Security, Performance & Site Health](https://www.nathangamache.com/projects/security-stack/)

[View all 16 projects](https://www.nathangamache.com/projects/)

## Want to hear more about PANoodle?

I am happy to talk about how it works. [nathanpaulgamache@gmail.com](mailto:nathanpaulgamache@gmail.com)

[Ask me about it](https://www.nathangamache.com/contact/)

---

Nathan Gamache · [nathanpaulgamache@gmail.com](mailto:nathanpaulgamache@gmail.com) · [GitHub](https://github.com/nathangamache) · [LinkedIn](https://www.linkedin.com/in/nathan-p-gamache/) · [nathangamache.com](https://www.nathangamache.com/)
