REPOCITYAI FOR EVERYONE

RepoCity RadarAuditor

RadarAuditor measures how visible a business is on Google, on the map, in directories and in AI assistants — and what is missing.

For roofers, dentists, kitchen studios and every business whose customers come from nearby. The first audit runs from the outside and needs no access to your accounts.

The app on a phone: audit of the sample business Dachdeckerei Muster GmbH with 63 out of 100 points and the first areas in traffic-light colours. The app is in German.

What the customer gets

Three things, all from measurements of the business itself and of two or three competitors in the same town.

A score from 0 to 100, with a traffic light per area

Green from 75, amber from 50, red below. At a glance it is clear whether the Google profile, the website or the reviews hold the business back.

Area list in the app: one bar per area with points in green, amber or red, for example directories and data consistency at 43 points in red. The app is in German.

Findings in plain language, with a ready fix

Each finding says what was measured, what it costs and what to do. When the fix is a text or a piece of code, it comes ready to copy.

A finding in the app: Google and AI assistants find no machine-readable company data on the home page, followed by the ready code and a copy button. The app is in German.

A forecast as a range, explicitly an estimate

How many more enquiries are possible is shown as a range from low to high, with every assumption listed underneath. It is not a promise.

The images show the app with sample data.

How an audit runs

A job goes round once. Scoring follows fixed rules; writing happens only at the end. Depending on the size of the website it takes a few minutes to half an hour.

How an audit runsThe app on the phone puts a job into the Supabase queue. The collector container fetches data from the website, load time, Google profile, search, directories and AI assistants. Scoring checks it against 104 checks. Claude Code on the PC writes findings and texts. The result is a PDF report that goes back into the app. back into the app Website Load time Google profile Search Directories AI assistants 1 App on the phone start a remote audit 2 Supabase queue and file storage 3 Collector container fetches data from the web 4 Scoring 104 checks, fixed rules 5 Claude Code on the PC writes findings and texts 6 Report as PDF print-ready file How an audit runsThe app on the phone puts a job into the Supabase queue. The collector container fetches data from the website, load time, Google profile, search, directories and AI assistants. Scoring checks it against 104 checks. Claude Code on the PC writes findings and texts. The result is a PDF report that goes back into the app. back into the app 1 App on the phone start a remote audit 2 Supabase queue and file storage 3 Collector container fetches data from the web Website Load time Google profile Search Directories AI assistants 4 Scoring 104 checks, fixed rules 5 Claude Code on the PC writes findings and texts 6 Report as PDF print-ready file
  1. App on the phoneThe operator enters the business with its location, two or three competitors and the search terms it earns money with, then starts the remote audit.
  2. SupabaseThe job lands in the database queue. If a step fails, it is retried up to three times.
  3. Collector containerFetches the website, load time, Google profile, positions in Google and Bing search, directories and the answers of ChatGPT, Gemini and Perplexity.
  4. ScoringEach of the 104 checks is passed, partly passed, failed or not measurable. Code computes the points, not a language model.
  5. Claude Code on the PCReads the raw data and check results and writes one finding with a fix per open point, plus the report texts. Before anything is uploaded, the collector validates the result against a fixed data format.
  6. Report as PDFThe collector assembles the report as a print-ready file. It appears in the app and can be walked through with the customer on a tablet.

Twelve areas, one number

The score is a weighted average of twelve areas. Weights, checks and thresholds live in a single check catalogue; the weights add up to 100.

  • Technical foundation of the websiteWeight 10
  • Page structure and meta informationWeight 10
  • Content and demand coverageWeight 12
  • Company data on the websiteWeight 6
  • Structured dataWeight 8
  • Google Business ProfileWeight 14

    “Do you have your Google profile in your own hands?”

  • ReviewsWeight 8
  • Directories and data consistencyWeight 7

    “Can people find you on the iPhone in Apple Maps?”

  • Links and authorityWeight 6
  • Rankings and visibility in searchWeight 10
  • Visibility in AI assistantsWeight 5

    “Does ChatGPT name you when someone asks for a business like yours?”

  • Law and trust in GermanyWeight 4

A thirteenth area, impact with customer access (calls, clicks and enquiries via Google), is only measured with access and does not count towards the number. The questions are translated from the German check catalogue.

What is measured, and what is not

A lot can be measured from the outside, but not everything. What is missing appears in the report as “not measurable” and does not count towards the points, instead of being guessed.

Measurable from the outside, no access needed

  • Encryption, load time on phone and PC, layout on the phone
  • Page titles, headings, texts, broken links
  • Name, address and phone on the website compared with Google, Apple Maps, Bing and business directories
  • Machine-readable company data for Google and AI assistants
  • Google profile: categories, opening hours, photos, number and average of reviews
  • Positions in Google and Bing search and on the map, compared with the competitors
  • Whether ChatGPT, Gemini and Perplexity name the business, and whether what they say is correct
  • Legal notice and privacy policy

Only with customer access or paid data

  • Calls, route requests, clicks: figures from the Google profile, Search Console and Analytics are only available with access.
  • Replies to reviews: the public interface does not deliver them; an audit with access reads them from the profile.
  • New reviews per month: Google only returns the five newest publicly, so the figure is an estimate.
  • Description, services, products, posts, questions and answers, service areas and attributes of the Google profile: no interface; the operator checks them by eye.
  • Visibility around the location, links from other sites, search volume: only with a paid data service, which is switched off today.
  • Positions in Google search: searching in the browser can hit a block page; then positions are missing for that audit.

Built as a product, not as a demo

Technical facts about RadarAuditor
Python tests983 passing
App tests81 passing
Check catalogue104 checks in one file, the single source for weights and thresholds
AppInstallable web app for phone, tablet and PC
CollectorDocker container, runs on the PC and later unchanged in the cloud
DataSupabase: database, sign-in, file storage and queue, hosted in Frankfurt
DeliveryCloudflare Pages
TextsClaude Code on the subscription, no usage-based costs
InvoicesMandatory details under section 14 of the German Value Added Tax Act (Umsatzsteuergesetz), gapless numbers, unchangeable once issued
TaxYear folder with DATEV export for the tax office

Status: built; the first run against a real business is still to come.

Who it is for

Businesses

The remote audit needs nothing from you: no access, no password, no appointment. For ongoing care you grant access to your Google profile once and, if you use it, to Search Console. Following the guide this takes about five minutes, and your password stays with you. After that a report arrives every month showing what has changed.

Companies and recruiters

One check catalogue is the single source for checks, weights and thresholds; code, app and texts derive from it. Code computes the points by fixed rules; the language model only writes the texts and takes every number from the measured data. The hand-off to Claude Code is validated against the data model, and invalid results stay behind. Issued invoices are protected against changes in the database.

Built by Daniel Hütte, AI engineer from Münster, looking for a position as AI Agent Engineer.