Adelaide Hills Pantry
Events platform & multi-agent publishing system
See it live · adelaidehillspantry.com.au
What it is
An events platform and multi-agent publishing system for a digital media business.
Adelaide Hills Pantry is a digital media business for the Adelaide Hills, built around a newsletter, social channels and an events catalogue. I built the system that ties these together with Claude Code, from the events pipeline through to the storefront and the editorial guides. The agents do the work; the owner and their virtual assistant keep control through review and a publishing lock.
The problem
The starting point was an attempt to run the business on agentic workflows, but they were not working. The agents were messy and unreliable, they broke down constantly, and they created more chaos than help. There was no clear structure for people or agents to follow, so nothing held together as a system.
How it works
Orchestrated with Claude Code, connecting to each platform through its own tools and APIs. Every tool keeps the job it is already good at.
I build the process and the system first, get it reliable, then hand the repetitive parts to agents. The people keep the judgement.How I approach a build
Multiple agents with a messy structure, running wild and breaking things. No clear system or workflow for people and agents to follow.
Notion is the single connecting point for people and agents. Every workflow is fixed, documented and in one place, so both can refer to it.
The scraping agent had no clear steps and tried to do everything in one run. It broke constantly, missed information and had no field criteria. Event images did not display and the information was inconsistent. It did not work.
A four-stage scraping agent, with clear criteria for every field shown on the site. Reliable execution, and 244+ events now listed.
The events listing sat in a Shopify HTML block capped at 250KB, so it could not hold more than about 100 events. Images lived in Google Drive and were slow to load.
Rebuilt on Shopify metaobjects, with every image on the client's own CDN. Fast and reliable, and no longer dependent on anyone else's site.
No newsletter page and nowhere for a new subscriber to land. An off-brand shop with an unclear pre-order state and no delivery information. Guides were raw newsletter dumps with duplicate headings, stripped links and unverified images.
In 48 hours, a consistent theme across every page, plus new pages that did not exist before, turning the website into the hub and a key source of information.
Five agents. Each has one job, its own success criteria and its own place in the sequence, and each one waits for a person to approve the result before anything goes out.
Events scraping agent
Keeps the events catalogue accurate, current and worth reading. Four subagents, each with its own criteria, in place of one run that tried to do everything at once.
- Fetch the source and pull the raw event.
- Extract every field the site displays, to a defined standard.
- Enrich with images, venue and contact details.
- Curate, deduplicate and check relevance before publishing.
Sponsorship proposal agent
Writes proposals that match what the client actually asked for. It reads the meeting notes and the goals they stated, then makes the case for alignment instead of a generic pitch.
- Read the meeting notes and the client record.
- Set out the client's goals in their own terms.
- Draft the proposal on brand, ready for review.
Client and CRM management agent
Runs the client relationships day to day. It keeps the records current, plans the activity due, reports on where each client stands, and handles content scheduling, production and approval.
- Keep the client record and stage current in Notion.
- Plan and schedule the activity each client is owed.
- Route the work for approval, then report on what went out.
Newsletter planning agent
Plans the newsletter around what is on. The season, the activities underway, the sponsorship and product promotions due, and the festivals and special events happening in the region.
- Read the season and the regional calendar.
- Pull the sponsorship and product promotions due.
- Hand a structured plan to production.
Sponsorship placement agent
Finds the right slot for each sponsor, based on what the contract commits to and how the theme fits. It keeps competing sponsors apart and holds the agreed cadence.
- Read the contract and what it commits to.
- Match the sponsor to a theme that fits.
- Check for conflicts, then hold the cadence across the schedule.
Clear processes are the key. Every task, whether a person or an agent runs it, needs a defined process.
Define the outcome first. A clear picture of what success looks like, and the criteria for it, is the most critical part of getting there.
Stay in control of the logic. Watching how the AI reasons and executes prevents most troubleshooting later.
Set boundaries and goals early. It saves hours of reworking.
It is easier to build it right from the start than to fix it later.
No agent is ever finished. Even a well-designed one needs polishing, review and sometimes a rebuild as the task evolves.
How I built it
The process behind the system
The thinking
A build starts with the business, not with the tools.
I do not begin by writing agents. I begin by working out what the business needs to happen, what already works, and what is quietly failing. Only then does anything get built. The order matters more than the technology.
Review what exists
I go through what has already been built and run it as it stands, on real inputs, before forming a view about any of it.
Analyse what works and what does not
Every part is sorted into what holds up under real use and what breaks, and the reason it breaks is written down rather than guessed at.
Break the work into steps
The job is split into discrete steps, each small enough that one agent or one person can complete it and be checked on it.
Define success criteria and guardrails
Every step gets its own definition of done and its own boundaries. What the step must produce, what it is not allowed to touch, and what happens when it cannot finish.
Sequence the steps
The steps are put in order, so each one receives what it needs from the one before it and hands on something the next one can use.
Reconnect the tools and APIs
Only now do the platforms come back in. Every API and tool is reconnected against the sequence that already exists, so each one serves a defined step.
Then the workflow
With the sequence settled, I set up the workflow itself. When each agent fires, what triggers it, what it hands over, and how it reports. Success and failure are both reported into Slack and Notion, so a run that fails is visible the same day.
Then it runs
The system is then left to run for two weeks under observation. Two weeks is long enough for the edge cases to surface and for the difference between a one-off fault and a design fault to become obvious. What the reports show in that period decides what gets rebuilt.
Define the outcome, then the steps, then the guardrails. The tools come last, and only where a step needs them.The order I work in
What is next
In the pipeline
Automated social media management
Publishing and channel management handled end to end by agents, on the same review-and-approve pattern that already runs the events pipeline.
Gmail account handling
Agent-managed inbox. Incoming mail read, sorted and drafted against defined rules, with the owner approving anything that goes out.
Sponsor and partner outreach
A full outreach system for potential sponsors and partners, moving a lead through defined stages rather than a single blast.
The outreach system
Four stages, each with its own criteria, so a lead is only promoted when it has earned the next step.
- Identify the leads worth approaching, against a defined fit profile.
- Research each one, so the approach is based on the business rather than a template.
- Create the outreach, written to what the research found and to the brand voice.
- Promote the lead from cold to warm as it responds, with the stage recorded in the CRM.
One last thing
Thank you for reading this far. I had a lot of fun putting the page together, and it was a good excuse to go back over what the sprint actually produced.
I am enjoying the process, and I am excited to see what else I can build together with Claude Code and Fable, which made a real difference to both the speed and the quality of the output.
Marina Ritchie