Aha StudioAI workers
Guides

Local Content Pages

BETA

Bulk content posts for a local business: a genuinely useful article for every service in every place it serves, with its own calls to action (click to call, text, WhatsApp, book, quote, directions and more), every fact checked against what you typed, linked to each other and published to your site a few a day. Or the same engine as an affiliate site, with your affiliate link in every post.

8 min read16 stepsUpdated November 2, 2026

Before you start

  • The businessIts name, its type, its services (one a line) and the cities, towns or neighbourhoods it serves (one a line). Optional: front and end modifiers, a few lines about the business, its website and hours, and your own images.
  • Its calls to actionThe phone number, the booking or quote link, the address, whatever the calls to action you pick need. One with nothing filled in is left out and the run says so.
  • Somewhere to publishYour WordPress site connected under Your account, Publishing (the Aha Studio Connector adds the meta descriptions), or Netlify, GitHub Pages, Cloudflare Pages or cloud storage. Or download a ZIP.
  • Your Aha Studio accountMembers run 5 campaigns a month of up to 100 posts each. Visitors get a free demo of 2 posts. Unlimited with your own AI key after your first 14 days.
Nothing is made up. The AI may add local context only as general guidance the reader can check (what to ask, what to look for, the seasonal timing). A number, name, date or claim (licensed, insured, years in business, an award, a review) that is not in what you typed is refused in code, rewritten once and dropped if it still fails. Phone numbers, links and addresses are never written by the AI: the calls to action are built from your own details.
PART 01

Write a campaign

0 of 8 done
  1. Open Local Content PagesAt localcontent.ahastudio.net, or press Start something new on your account page and choose Local content posts (or Affiliate content posts).
  2. Pick Local business or Affiliate siteA local business gets its calls to action; an affiliate site gets your affiliate link instead (see Affiliate mode below).
  3. Fill in the businessBusiness name, Business type, Services (one a line) and Places (one a line). For picks a client profile and Persona the voice the posts are written in. The about box, the website and the hours are the only facts the posts may state about the business.
  4. Add modifiers if you likeFront modifiers go before the service (residential, commercial) and End modifiers after the place (near me, for landlords). Suggest with AI offers ten of each for the business type, with every claim about the business taken out (no licensed, free, best, 24/7, emergency): tick only what is true.
  5. Choose the language, tone and titles15 languages: English (US), English (UK), Spanish, French, German, Italian, Portuguese, Dutch, Swedish, Norwegian, Danish, Finnish, Polish, Czech, Russian. Titles: from the templates (English, each post different, the service and the place once each) or written by the AI (kept only when it names the place once and stays under 70 characters).
  6. Pick the calls to actionOne primary and up to two more. The defaults for the business type are filled in; change them freely (table below). Fill in what each needs.
  7. Choose How many postsEvery combination of service x place x modifiers, up to your cap. The estimate shows the AI cost before anything runs. Press Write the posts.
  8. Watch it workPlan, write and check tick off, the posts counting up. Close the page if you like: the queue keeps writing. A post that fails says why, with the AI model named; press Retry and only the failed posts are written again.
PART 02

The calls to action

0 of 3 done

Each call to action is a plain WordPress button block, placed after the intro and again at the end of every post, with the phone number written out as text too. It works in any theme, needs no plugin and does not stick to the screen. The AI never writes one.

  1. The typesClick to call (needs the phone number); Text (SMS) (needs the number that takes texts); WhatsApp (needs the WhatsApp number); Book an appointment (needs the booking link); Request a quote (needs the quote page link); Free consultation (needs the consultation booking link); Get directions (needs the business address); Email (needs the email address); Custom link (needs the custom link and its button text). Click to call opens tel:, Text opens sms:, WhatsApp opens wa.me with the full international number, Get directions opens Google Maps for the address, Email opens mailto:. The booking link can be Calendly, a Google Calendar booking page, Square, Acuity, Fresha or any https link.
  2. Defaults by business typeFilled in when you pick the business type; edit them as you like.
    Plumber, Electrician, HVAC (heating and cooling), Roofer, Cleaner, Landscaper or gardener, Pest control, Auto repair, Moving company, Home builderClick to call, then Request a quote, then Text (SMS)
    Dentist, Doctor or clinic, Med spa, Salon or barber, Gym or personal trainer, Vet, Real estate agent, Photographer, Wedding or eventsBook an appointment, then Click to call
    Lawyer, AccountantFree consultation, then Click to call
    Restaurant or cafeGet directions, then Book an appointment, then Click to call
    OtherClick to call, then Custom link
  3. A call to action with nothing filled inIs never rendered. The run lists each one left out and what it needs, so you can add it and write the campaign again.
PART 03

What every post has

A titleDifferent on every post, never stuffed: the service and the place appear once each.
The bodyAn intro, three to five sections of useful, local guidance, and three or four questions people ask, written for the search "service in place".
The fact checkEvery sentence checked in code. The refused ones are listed on each post with why, and whether the rewrite passed or the sentence was dropped.
Internal linksEach post links to the same service in other places (its service hub) and the other services in the same place (its place hub). On a static site the hubs are pages of their own.
Meta and structured dataA meta title and description, an Article, and in local mode a LocalBusiness built only from your real details: name, type, phone, address, website, hours and the places served. Never a rating, a review or a price.
A featured imageOnly your own: paste image addresses and they rotate across the posts, or leave it empty for none.
PART 04

Affiliate mode

Press Affiliate site for the same bulk engine with the same checks, built for an affiliate offer instead of a local business.

The offerProduct or offer replaces the business name, with a line about the offer and your Affiliate link (a full https:// address) and its button text.
The keywordsTopics replace the services and Use cases or audiences replace the places, so "email software" x "coaches" becomes a post on email software for coaches.
The linkEvery post has the button to your affiliate link after the intro and at the end, marked rel="sponsored nofollow" with "(affiliate link)" beside it, and a disclosure at the top that the post contains affiliate links.
No local detailsNo calls to action, no LocalBusiness block: only the Article.
PART 05

Publishing

0 of 5 done
  1. Pick whereUnder Publish, choose one of your connections: WordPress, Netlify, GitHub Pages, Cloudflare Pages or cloud storage. Connect them under Your account, Publishing.
  2. Pick howAll at once, or A few a day (up to 50 a day, spread over the day: the queue sends each when its time comes, for days if need be). On WordPress, choose Drafts or Published.
  3. WordPressEach post goes in as a post through your site's own REST API. Sending again updates the same post and never changes its status; a post you already have at the same address is left untouched. Once all are live, each is saved once more with every sibling link.
  4. The other hostsOne site for the campaign: a home page, a page per post, a page per service and per place, the sitemap. A drip adds posts to the same site.
  5. Download ZIPEvery written post as that static site, any time, to upload anywhere.
PART 06

Your limits

ON YOUR PLAN5 campaigns a monthUp to 100 posts per campaign. Unlimited with your own AI key after your first 14 days.
FIRST 14 DAYS1 campaignOf up to 20 posts. See the refund policy.
FREE DEMO2 postsOnce a day, with no publishing.

Your plan also includes a monthly amount of AI work, shared by all your AI workers. When this month's is used, the AI work carries on with your own AI key: the provider and model you choose on your account page under Keys and connections, Text and reports. Without a key, it resumes on the 1st.

PART 07

Local Content Pages vs Neighborhood Pages

Neighborhood Pages builds landing pages: one page per service per area, made to turn a visitor into a call or an enquiry, with its own lead form.

Local Content Pages writes articles: useful posts that answer what people in each place search for, link to each other and send readers to your calls to action.

Use both: the landing pages to convert, the posts to bring readers in and link them to the landing pages.

PART 08

If something looks wrong

Still stuck? Email support@anthonyhayes.me or open the help desk.
Ready to build?Type the business, its services and the places it serves, pick its calls to action, and press Write the posts. The queue keeps writing with the page closed.Open Local Content Pages