Built for local SEO teams and agencies

The visual side of local SEO, done in one studio.

Optimise and geotag every photo. Tune a Google Business Profile with keyword-driven content and rank checks. Turn any website address into a set of on-brand posters. Three tools, one login, one plan, one team workspace.

✓ Image SEO, GBP and posters in one plan ✓ No credit card to start ✓ Use our AI or your own key ✓ Local model support (nothing leaves your machine)
The studio

Three tools that share one brand profile, one team and one bill.

Set a client up once. Every module reads the same profile, draws on the same monthly allowances and keeps its results in the same workspace.

Camera bodies and lenses laid out on a dark desk
Module 1

🖼️ Image SEO

Bulk-optimise photos: AI alt text, titles and captions, EXIF and IPTC geotags, SEO filenames, byte-budget compression and paste-ready markup.

See what it does
A barber shop window lit by neon signs at night
Module 2

📍 GBP Optimizer

Pick the right categories, write the description, services, posts and polls, find citation directories and check where you rank.

See what it does
A wall densely covered in printed posters
Module 3 · new

🎨 Poster Studio

Paste a website address. It reads the brand, writes the copy and designs on-brand posters for social, print and web, ready to post.

See what it does
The job nobody wants

Image SEO is 40 minutes of clicking per client, every week.

Renaming IMG_4821.jpg. Writing alt text that mentions the service and the suburb. Adding GPS so a Google Business Profile photo looks like it was taken at the job site. Resizing so the page still passes Core Web Vitals. Then doing it again for the next 60 photos.

This does all of it in one pass, at 3–8 seconds an image, for a whole folder at a time.

One image in, everything out
Filenamesolar-panel-installation-lahore-gulberg.jpg
Alt textTechnician mounting rooftop solar panels on a home in Gulberg, Lahore
TitleRooftop Solar Installation in Gulberg, Lahore
GPS31.5204, 74.3587 · IPTC City: Lahore
Size4.2 MB → 288 KB WebP 93% smaller
Alsosrcset variants · JSON-LD · upload CSV · <img> snippet
Image SEO

Every photo you publish, optimised, geotagged and captioned, in bulk.

Drop in a folder of photos. Get back SEO filenames, alt text, titles, captions and tags written by a vision model that actually looked at the image, with GPS and IPTC location data embedded, the file compressed to a byte budget, and the <img> markup and upload CSV ready to paste.

Image SEO · how it works

Four steps, then a ZIP.

No installs, no plugins, no Photoshop actions. It runs in the browser and hands you finished files.

Describe the client once

Business, site, target keywords, service areas. Saved as a brand profile you reuse for every batch.

Drop the photos in

Up to 1,000 per job. JPEG, PNG, WebP, AVIF, TIFF, HEIC — straight from the phone the tradesman used.

Pick where they will live

GBP post, service-page hero, product thumbnail, blog featured image. The preset sets pixels, format and byte budget.

Download the deliverables

Optimised images, an upload CSV, ready-to-paste markup with JSON-LD, and a JSON report of the whole run.

What you actually get

Deliverables, not just a smaller file.

📝

Copy that read the image

Title, meta description, GBP post text, alt text, caption and tags — grounded in what is in the photo and the keywords you gave it.

📍

Real geotags

GPS plus IPTC City/State/Country written into EXIF/XMP. Assign a different service-area location to each photo in a batch, randomly or round-robin.

Byte budgets, not guesses

"Under 200 KB" is an input. The encoder searches quality to hit it, in JPEG, WebP or AVIF, with srcset widths generated in the same pass.

🏷️

Filenames that rank

Slugs from the generated title, patterned however you like: {slug}-{section}-{w}x{h}.

🧩

Paste-ready markup

An <img>/<picture> block with srcset, sizes, dimensions and loading hints, plus JSON-LD ImageObject.

🔒

Privacy switch

Strip metadata instead of adding it. GPS opt-out per job, for client photos that must ship clean.

👥

Team + client workspaces

Seats with roles, a workspace per client, shared brand profiles and a full audit trail.

🔌

API and webhooks

REST API with scoped keys, plus a webhook per job for n8n, Make or your own pipeline.

🌍

Any language

Copy in the client's language while the filename slug stays clean ASCII.

GBP Optimizer

A Google Business Profile that is finished, not just filled in.

Start from a profile link or from scratch. Get an audit of what is missing, then generate everything that closes the gap.

🧭

Profile audit

Import a live profile and see a score with the exact gaps: category, description length, photos, phone, website.

🏷️

Categories

Primary and secondary category suggestions grounded in your keywords and location, not a guess.

✍️

Descriptions and services

Descriptions inside Google's 1,500-character limit and a services list written around the searches that matter.

📣

Posts and polls

Google posts and engagement polls in the client's language and tone, ready to paste.

🔗

Backlink and citation directories

Country-specific directory lists by business category, plus your own custom directories.

📈

Rank checker

Live position lookups with a running history, and an always-on profile-completeness score. Export it all to Markdown or CSV.

Poster Studio

From a website address to a set of finished posters.

No design brief, no template hunting. Poster Studio reads the site, decides what to say, picks a layout for each message and renders the files.

Read the brand

Logo, colours, fonts, photos and wording are pulled from the client's own website. Save it once, reuse it for every later set.

Write the message

A creative director picks one of 23 layouts per poster and writes copy that fits it, in your tone, goal and language.

Design and check

Posters are rendered at print quality, then reviewed and touched up by a vision model before they reach you.

Download the set

Individual PNGs or one ZIP with an HTML report. Or get a webhook when a run finishes.

🎛️

Real art direction

10 looks, voices, fonts, grain and layout shortlists. Let it vary across a set or lock the style down.

📐

Every size you post at

Instagram, Stories, LinkedIn, X, Facebook, YouTube, Pinterest, email headers, web heroes and A3 to A5 print. Or type your own.

📅

Content calendars

Paste or upload a calendar and get one poster per row, each for its own offer, up to 24 in a run.

📸

Photos and hero images

Uses the brand's own photography, optional stock photos and, when you ask, generated hero images.

🔁

Make more, faster

Reuse a saved brand to skip the website fetch, in a second ratio or for a new campaign.

🔌

API and webhooks

Start runs and collect results from n8n, Make or your own code, with the same API keys as everything else.

In practice

Two ways teams use it on day one.

Illustrative scenarios, not customer results.

A furniture showroom interior lit with warm lamps
Poster Studio

A month of posts for a showroom, from its own website

An agency has a furniture showroom's site and a three-line content calendar: an autumn sale, a new range, an open day. They paste the address, load the calendar and pick the 4:5 portrait size.

  • The logo, colours, fonts and photography come from the showroom's own site.
  • One poster per calendar row, each with its own layout and copy.
  • Next month they press Make more from this brand, with no second website fetch, and download the lot as a ZIP.
An installer fitting a solar panel onto a roof
GBP Optimizer

A half-empty Google profile brought up to standard

A local solar installer has a Google Business Profile with one category, a two-line description and few photos. They import the profile link and read the audit.

  • The audit lists exactly what is missing and scores the profile.
  • They generate secondary categories, a full description, a services list and their first post.
  • One click on Design posters gives them matching visuals, and each finished poster links back to Write the GBP post.
Your AI or ours

Three ways to power it — pick the one that fits your margin.

☁️ Managed AI

We supply the vision model and pay for every call. Nothing to configure, no API bill to reconcile. Your plan's monthly image allowance is the only number to watch.

Best for: anyone who wants it to just work.

🔑 Bring your own key

Paste a Google Gemini or OpenRouter key. Your key, your model choice, your (usually pennies) AI bill — encrypted at rest with AES-256-GCM and never shown again.

Best for: agencies at volume, and anyone with free Gemini quota.

💻 Your own machine

Install the local runner and jobs are processed by your own Ollama model on your own hardware. Client photos never touch a third-party AI provider.

Best for: NDA work, government and healthcare clients, privacy-first shops.

Pricing

Simple monthly plans. Hard limits, no surprise bills.

Paid plans include all three tools. What changes is the monthly allowance for images, GBP generations and poster credits, how many seats you get, and whether we pay for the AI.

Prices in USD, exclusive of local tax where applicable. Cancel any time — your files stay downloadable to the end of the period.

Cost per image, compared

What an agency actually pays

ApproachTime per 100 photosCost per 100 photosConsistency
By hand (VA at $6/hr)~4 hours~$24 + reworkVaries by person and by mood
Generic bulk compressor5 minutes~$2No copy, no geotags, no filenames
Ember Studio (Solo)~8 minutes, unattended$2.90Same rules on every image, every time
Ember Studio (Agency)~8 minutes, unattended$1.33Plus white-label reports and client workspaces
Questions

The ones everybody asks

Does geotagging photos actually help a Google Business Profile?

Google has never confirmed that it reads EXIF GPS from GBP uploads, and anyone who tells you it is a guaranteed ranking factor is selling something. What geotagging does reliably do: it makes your image assets internally consistent, it feeds the location fields that image search, CMSs, DAMs and social platforms read, and it stops photos from silently carrying the location of the office they were edited in. The parts of this tool with undisputed SEO value are the filenames, alt text, captions, structured data and the page-speed win.

What is a poster credit?

One credit is one finished poster. AI review and touch-up adds one credit per poster, generated hero images add two, and exporting a second ratio doubles the cost. The whole run is held up front and whatever it did not deliver is given back, so a stopped or failed run costs only the posters that were made.

Do the posters use my client's real logo and photos?

Yes. Poster Studio reads the logo, colours, fonts and photography from the client's own site and only adds stock or generated images if you switch them on. A poster is not shipped without a legible logo lockup.

Which AI model writes the copy?

On managed plans, Google Gemini Flash by default — fast, cheap and strong at reading photographs. On bring-your-own-key you choose: any Gemini model, or anything vision-capable on OpenRouter including GPT-4o and Claude. On the local runner, whatever vision model you have pulled in Ollama.

What happens when I hit my monthly image limit?

New jobs pause and we tell you at 80% and again at 100%. There is no automatic overage charge — you either upgrade (the bigger allowance applies immediately) or switch the workspace to your own API key and carry on.

Do you keep my clients' photos?

Originals are deleted as soon as a job completes. Deliverables stay downloadable for the retention window on your plan (7 to 60 days), then they are deleted too. On the local runner, images are processed on your hardware and only the finished files come back.

Can I white-label this for my clients?

On Agency: reports and share links carry your branding. For a full white-label instance on your own domain, that is the Enterprise self-hosted licence — talk to us.

Is there an API?

Yes, on Pro and above. Create a job, upload images, queue it, poll or receive a webhook. Read the API docs.

Try it on your worst folder of photos.

The free plan does 30 images a month with no card. If the alt text is not better than what you would have written, close the tab.

Create a free account