Back to Blog
Google Business Profile

How Webserv Schedules Google Business Profile Posts for 100 Profiles With Claude and Posterly

How Webserv schedules Google Business Profile posts across 100 profiles with a Claude agent on Posterly: a compliance gate, real photos and human sign-off.

By ··18 min read

Prefer posterly in Google Search?

Posting to one Google Business Profile is easy. Posting to a hundred of them, twice a week each, with every post on strategy, compliant and carrying a real photo, is a full-time job. Webserv found that the maths did not work by hand for their 100 healthcare profiles. So they built an agent in Claude on top of Posterly to do the heavy lifting, and kept a human in charge of what goes live.

This post walks through exactly how their workflow runs, maps each step to the Posterly tools that make it possible, and then shows you how to build the same thing for your own locations or clients.

We built an agent that took about 200+ hours off our plates each month.

Olivia Birkbeck, Webserv

Olivia Birkbeck, Webserv
View on LinkedIn

“We built an agent that took about 200+ hours off our plates each month... Nothing publishes until a human reads every post and replies "approved,"... So far: 100 profiles+, 1,088 posts scheduled for September and October, ~200 hours a month back.”

TL;DR

  • What Webserv built: a Claude agent on the Posterly MCP that drafts and schedules Google Business Profile posts for 100+ profiles every month. In their words, it is "the job of 1.25 people" and gives them "200+ hours a month we don't spend".
  • How it works: it reads each client's brain doc and the quarter's strategy, turns newly shipped pages into posts, pulls a real photo from each page, runs a compliance check, validates the post in Posterly, schedules the batch and pings an editor in Slack.
  • The part that matters most: nothing publishes until a human reads every post and replies "approved". Anything nobody approves gets paused.
  • What you need to copy it: your Google Business Profile locations connected to Posterly, an MCP client such as Claude, written posting rules for each client, and a clear human sign-off step. The how-to is below.

What Webserv built

Webserv's team did the thinking work first. As Olivia puts it:

We built the parts it thinks with (a brain doc for every client, plus our GBP posting guidance), and then Max Ruscinski built the agent in Claude on top of Posterly, and Katrina Leung runs it with him.

That split is the lesson. The agent is only as good as what it is given to think with. Webserv wrote down each client's context and their own rules for Google Business Profile posts, then let the agent do the repetitive parts: reading, drafting, checking, scheduling and chasing.

The problem: the maths did not work by hand

The carousel that came with the post lays out the problem plainly. Webserv look after 100 healthcare profiles, each posting twice a week. That is 702 posts scheduled in October alone. And, in their words, "we wanted every post on-strategy, compliant and with a real photo."

Doing that by hand means someone opening each profile, writing each post, finding an image, checking it against the rules and scheduling it, hundreds of times a month. The carousel's headline for this slide is short: "The math didn't work by hand."

The results so far

From the post and the results slide (post counts taken from Posterly on 8 October 2026):

WhatWebserv's number
Google Business Profiles actively posting100
Posts scheduled for September and October1,088
Posts already live530
Time back each month200+ hours
Equivalent workload"The job of 1.25 people"

These are Webserv's figures for their own clients, shared publicly. Your numbers will depend on how many locations you run, how often you post and how much review you put in.

How the workflow works, step by step

Olivia's post lists what the agent does every month:

  • reads each client's brain and this quarter's strategy
  • turns the pages we just shipped into posts
  • grabs a real photo off the page (not the logo)
  • runs a compliance check
  • schedules the batch and pings the editor in Slack

The carousel breaks that into five steps. Below, each step is quoted from Webserv, followed by how it maps onto Posterly. Webserv's post does not list the exact tool calls their agent makes, so the Posterly side describes what the public Posterly MCP offers for that step, not a copy of their code.

Step 1: Start with the plan

We feed it the brain doc, this quarter's strategy and the last 30 days of new pages. It checks last month's posts so we never repeat.

What this looks like in Posterly. The brain doc and the strategy live with the agency, not in Posterly. The "never repeat" check is where Posterly comes in. An agent can call list_posts filtered to platform=google_business, one account_id (one location) and a date range to read what already went out for that location last month, then avoid the same angle. For "how many posts does this client have next month?", list_posts with view=counts returns exact totals per day, status and account for a date range, so the agent can spot gaps without paging through every post.

Step 2: Compliance is the hard gate

We also rule out urgency and guarantees, then validate live in Posterly. If one check fails, nothing gets created.

Webserv's compliance slide shows four checks: under 150 words, no phone numbers, no outcome claims and no patient detail. Those are their own rules for a compliance-heavy healthcare niche, and they sit on top of Google's.

What this looks like in Posterly. Two layers:

  1. Your rules, checked by the agent. Word count, banned phrases, no clinical outcomes, no personal details. These belong in the posting guidance you give the agent. Posterly does not know your client's regulator; you do.
  2. Platform rules, checked by Posterly. validate_post checks and normalises a post against the target account without creating anything. It does not create records, use quota or queue anything for publishing. For Google Business Profile, Posterly's platform schema allows three post types (standard, event and offer), up to 1,500 characters and at most one image per post. Event and offer posts take their own settings (event title and dates; offer coupon, redeem link and terms), plus an optional call-to-action button and repeat schedule.

Google adds its own rules. Per Google's Create and manage posts help page, posts with a phone number in the description "might get rejected" if Google cannot verify the number belongs to the business, Google reviews every post after it is published, and regulated industries, including health and medical devices and pharmaceutical products, should not include content about those products. Google also asks owners to avoid "auto-generated or distracting content", which is one more reason Webserv's human read matters.

Step 3: Real photos, never logos

We pull one image per post from the page it links to. Logos, accreditation badges and skinny banners don't make the cut.

What this looks like in Posterly. A Google Business Profile post carries one image, so picking the right one matters. Once the agent has chosen a photo from the page, it can pass the image URL straight into the post (media_url). Posterly copies third-party image URLs into Posterly storage when the post is saved, so a post does not fail later because the source link changed. If the agent wants to upload once and reuse the file, upload_media returns a Posterly URL to use instead.

The judgement call (a real photo of the clinic or team, not the logo or an accreditation badge) is Webserv's rule. It is a good one to steal.

Step 4: A human reads every post

On the 25th the batch lands in Posterly and pings our editor in Slack. They read every single one and reply "approved" by the 28th.

What this looks like in Posterly. create_posts_batch creates between 1 and 25 scheduled posts in one request, each with its own location, caption, image, time and Google Business Profile settings. The Posterly MCP requires the agent to show a preview of every post in the batch and get an explicit yes before it calls the tool, and the result says which items, if any, failed. A month for 100 profiles is therefore many batches, each one confirmed.

Webserv's Slack ping and "approved" reply are their own layer on top. Their editor signs off on the batch before anything is due to publish. If you would rather keep sign-off inside Posterly, see the two ways to gate publishing in the how-to below.

Step 5: Silence means pause

On the 29th the agent checks the thread. Anything nobody approved gets paused and our account manager gets tagged. Nothing we haven't reviewed goes live.

What this looks like in Posterly. A scheduled post can be paused without being deleted. update_post with status=paused holds one post; status=scheduled puts it back in the queue. To hold everything for one client at once, manage_publishing_pause pauses a whole workspace or a single brand: it previews the scope and the number of scheduled posts it would hold, then pauses only after a confirmed second call. When publishing resumes, posts whose time passed while paused stay paused and are listed as missed. Missed posts never publish on their own.

Webserv's recap slide sums up the whole system in five lines:

StepWhat happens
01Read the plan and what we just shipped
02Compliance is our hard gate
03We use real photos, never logos
04We read and approve every batch
05No reply by the 28th means paused

Then it waits. Nothing publishes until a human reads every post and replies "approved," and if nobody does, the batch gets paused. In a compliance-heavy niche, that's honestly the most important part.

posterly

Schedule smarter with AI

AI captions, 18 platforms, plans from $7/mo

How to build your own Google Business Profile posting agent

This is the general version of Webserv's setup. It works for an agency with many clients or one business with many locations. You need a Posterly account, your locations connected, and an MCP client such as Claude.

Step 1: Connect your Google Business Profile locations

Posterly connects to profiles that already exist and are verified in Google. If you still need to create or verify one, start with the Google Business Profile guide.

  1. Sign in to Posterly and open Connect in the sidebar.
  2. Under Add Connection, choose Google Business.
  3. Sign in on Google's own screen with the Google Account that manages your profiles, and approve access.
  4. On Choose Google Business locations to connect, search by name, city or address, tick the locations you want and click Connect selected.

Each connected location uses one account slot on your plan; see account limits by plan. If you are working from an agent, it can call create_connect_session to send you a secure Posterly link, because Google sign-in has to happen in your browser, not in the chat. The agent then checks list_accounts to confirm each location is there.

Step 2: Connect Claude (or another MCP client) to Posterly

Add Posterly as a custom connector in Claude, sign in with Posterly and allow access. The Posterly for Claude page has the server URL and the Claude Code commands, how to use Posterly with Claude walks through the first approved schedule, and the Claude guide for MCP and automation covers Claude Desktop, Claude Code and scheduled runs in depth. The same connection works from ChatGPT with Posterly, Cursor with Posterly and other MCP clients; see AI agents for social media scheduling. New to Posterly? An agent can start your account through agent signup, and you pay in your own browser.

Ask the agent to run whoami first. It confirms the user, the workspace and the key's scopes. On an agency account with a workspace or brand per client, this is the step that stops a post landing on the wrong client's profile.

Step 3: Write the brain doc and the posting rules

This is the work Webserv did before the agent existed, and it is the part no tool does for you. For each client, write down:

  • Who they are: services, locations, tone of voice, what makes them different.
  • This quarter's strategy: which services or pages to push, seasonal angles, what to avoid.
  • Where new content comes from: for Webserv, the pages they shipped in the last 30 days.
  • Hard rules: a word limit, banned claims, no phone numbers, no personal or patient detail, no urgency or guarantees. Make every rule checkable, so the agent can say pass or fail.
  • Photo rules: where to take images from and what never to use (logos, badges, thin banners).

Posterly also stores brand voice and visual guidelines per brand, which captions drafted in Posterly can follow. The rules that keep a client out of trouble with their regulator should still be written by someone who knows the regulator.

Step 4: Draft and validate every post

Have the agent draft posts per location from the brain doc and new pages, then:

  1. Run your own checks on each draft (rules from Step 3). If any check fails, the post is not created. Webserv's words: "If one check fails, nothing gets created."
  2. Call list_platforms with view=schema and the location's account_id to read what Google Business Profile accepts on that connection.
  3. Call validate_post for each post to catch platform problems before anything exists in your queue. The Posterly MCP tool reference lists every parameter.
  4. Use find_available_slot if you want Posterly to suggest open times, or set times yourself per client timezone.

Step 5: Create the batch

Show the full batch (location, caption, image, time and post type for every post) and confirm it. Then the agent calls create_posts_batch with up to 25 posts per request. Posts land in the Posterly calendar as scheduled, next to the rest of the client's social posts.

If you are not using an agent at all, the dashboard's bulk upload schedules up to 30 posts at once from a CSV or a batch of images, with a preview before anything is scheduled. See Google Business Profile scheduling and management in Posterly for the dashboard side.

Step 6: Add a human sign-off step

There are two ways to make sure a person reads every post before it goes live.

Option A: your own sign-off, like Webserv. The agent posts the batch for review wherever your team works (Webserv use a Slack thread) and waits for an explicit "approved". On the deadline it checks for approval and pauses anything without it (update_post with status=paused, or manage_publishing_pause for a whole brand), then tags an owner.

Option B: Posterly's built-in client approvals. Send scheduled posts to a client or reviewer for sign-off from the composer, a content plan or an agent (update_post with approval_action=request, which only a workspace owner or admin can do). Reviewers sign in with just their email, see live platform previews, and approve, request changes or comment. Posts sent for approval cannot publish until approved, and editing an approved post sends it back for fresh sign-off. An agent can track the queue with list_posts and approval_status=pending_client. See client approvals for agencies for how it works and which Posterly plans include client approvals.

Either way, the rule is the same one Webserv live by: silence is not a yes.

Step 7: Pause what nobody approved

Decide the deadline before the month starts (Webserv: approve by the 28th, pause on the 29th, posts go live on the 1st). On the deadline, the agent lists the posts still waiting and pauses them with a preview and a confirmed call. Paused posts stay in Posterly and can be fixed, approved and rescheduled.

Step 8: Check what went live

Google reviews each post after it is published. Posterly shows Pending Google review until Google approves it and Rejected by Google if it does not. At the end of the month, list_posts with status=published (or view=counts) tells you what actually went out per location, and list_analytics reads Google Business Profile performance, such as profile views, calls, website clicks and direction requests, where Google provides it.

Google Business Profile post compliance checklist

Use this as a starting point for your own rules. The left column says where each rule comes from.

RuleSourceWho checks it
Under 150 wordsWebserv's own ruleYour agent, from your posting guidance
No phone numbers in the post textWebserv's rule; Google may reject posts with unverified numbersYour agent; Google on review
No outcome claims, urgency or guaranteesWebserv's ruleYour agent; a human editor
No patient or personal detailWebserv's ruleYour agent; a human editor
Up to 1,500 characters and one imagePosterly's Google Business Profile schemavalidate_post
Event: title and dates; offer: coupon, link and terms as neededGoogle and Posterly's schemavalidate_post
No content about regulated products (for example health and medical devices, pharmaceuticals)Google's posts guidanceYour agent; a human editor
A real photo from the linked page, never a logo or badgeWebserv's own ruleYour agent; a human editor
Every post read and approved by a personWebserv's own ruleYour editor or client

Agent, bulk upload or composer: which should you use?

MCP agent (Webserv's route)Bulk uploadComposer
Best forMany locations, recurring monthly batches, posts built from your own contentA ready-made month of posts in a spreadsheetA handful of posts or a one-off offer or event
Who writes the postsThe agent drafts from your brain doc and pages; a human approvesYou, or AI captions on uploadYou, with optional AI caption help
Batch sizeUp to 25 posts per confirmed request, as many requests as you needUp to 30 posts at onceOne post, to one or more locations
Compliance checksYour rules in the agent, plus validate_postYour own review before schedulingYour own review
Human sign-offConfirmed preview for every batch, plus your own gate or Posterly client approvalsPreview before schedulingSend for client approval from the composer
Setup effortHighest: brain docs, rules and an MCP clientLowNone

If you run fewer than a few dozen posts a month, the composer or bulk upload is enough. The agent route pays off when the volume looks like Webserv's.

Where the rest of your Google Business Profile work fits

Posting is one part of keeping a profile alive. Posterly also handles reviews (alerts, AI-drafted replies posted to Google after you approve), review requests with links and QR codes, the profile's photo and video gallery, and a profile audit that scores completeness out of 100 with recommendations. For the full tour, see Google Business Profile management with Posterly and the Google Business Profile MCP connector page for the full tool list.

If you manage many sites for one business rather than many clients, Posterly for multi-location businesses shows the same tools from that angle, and Posterly for agencies covers client workspaces.

Common mistakes when automating Google Business Profile posts

  • Letting the agent publish without a person reading. Google asks owners to avoid auto-generated content, and in regulated niches one bad claim costs more than a month of saved hours. Keep a human gate.
  • Treating "no reply" as approval. Webserv's rule is the opposite: silence means pause.
  • Using the logo as the post image. The post gets one image. Make it a real photo of the place, people or service.
  • Phone numbers in the post text. Google may reject them. Let the profile's own phone number and a call-to-action button do that job.
  • Posting the same angle every month. Have the agent read last month's posts per location before it drafts.
  • Wrong client, wrong location. Run whoami and list_accounts before any batch, and keep one workspace or brand per client.
  • Skipping validation. validate_post is free of side effects. Run it on every post before you ask for a yes.

FAQ

Can you schedule Google Business Profile posts for multiple locations at once?

Yes. In Posterly you can select several Google Business Profile locations in the composer, bulk upload up to 30 posts at once, or have an MCP agent create up to 25 posts per confirmed request with create_posts_batch. Each post publishes per location. Google also lets you share a post to several profiles from its own editor.

Can Claude post to Google Business Profile?

Yes, through an MCP connection. Connect Posterly to Claude as a custom connector and Claude can draft, validate and schedule Google Business Profile updates, events and offers, read reviews and draft replies. Writes only happen after you confirm a preview. Start with the Claude connector setup.

How did Webserv save 200+ hours a month?

Per Olivia Birkbeck's LinkedIn post, an agent Max Ruscinski built in Claude on top of Posterly reads each client's brain doc and quarterly strategy, turns newly shipped pages into posts, pulls a real photo from each page, runs a compliance check and schedules the batch. A human still reads and approves every post before it goes live.

Do posts publish automatically once the agent schedules them?

Scheduled posts publish at their scheduled time unless they are paused or waiting on approval. That is why Webserv pause anything not approved by their deadline. With Posterly's client approvals, posts sent for approval cannot publish until they are approved.

What can a Google Business Profile post include?

Per Posterly's schema for Google Business Profile: a standard update, an event or an offer; up to 1,500 characters; at most one image; an optional call-to-action button; and, for events and offers, an optional repeat schedule. Events need a title and dates, and offers can carry a coupon code, redeem link and terms.

Why was my Google Business Profile post rejected?

Google reviews every post after it is published and can mark it Not approved if it breaks the posts content policy. Common causes include phone numbers Google cannot link to the business and content about regulated products. Posterly shows Rejected by Google on the post when this happens. See Google's post status and content rules.

How often should you post on Google Business Profile?

Webserv post twice a week per profile. Google does not set a required frequency. Pick a cadence you can keep on strategy and compliant, and note that Google archives posts older than six months unless they have a date range.

Is this the same as Posterly's Google Business Profile audit?

No. The audit scores a profile's completeness and lists fixes; it does not post anything. Posting is covered here. The audit, reviews and gallery are covered in how to set up and rank a Google Business Profile and on the Google Business Profile reviews, audit and media page.

Keep reading

Thanks to Olivia Birkbeck, Max Ruscinski and Katrina Leung at Webserv for sharing how they built it. The original post, with the full carousel, is on LinkedIn.

posterly

Schedule smarter with AI

AI captions, 18 platforms, plans from $7/mo

Founder newsletter

Launch with Alex

Building companies from Dubai. Field notes from running more than one, and the decisions that paid off.

Join the list (opens in a new tab)
google-business-profilegbp-postsschedule-google-business-profile-postsmulti-locationagenciesai-agentsclaudemcpcustomer-story

See more of posterly in Google

Add us as a preferred source. Google can show more of our articles in your Top Stories and a Preferred badge in AI Overviews.

Related Articles