App: ReadyTalk — an AI customer-service & appointment-booking chatbot for small businesses (salons, clinics, academies). It auto-replies to customer inquiries on KakaoTalk/Instagram and syncs bookings with the owner’s Google Calendar. Sensitive scope: calendar.events (plus calendar.freebusy, calendar.calendarlist.readonly, userinfo.email). Project ID: readytalk.
Problem: Brand verification is repeatedly rejected with “Your home page does not explain the purpose of your app,” even though the configured homepage (https://ready.talk/overview) is a static, server-rendered page that explicitly contains:
- a plain statement of what the app does and its key features,
- a dedicated “How ReadyTalk uses Google user data” section with a per-scope justification and the Limited Use disclosure,
- visible Privacy Policy / Terms of Service links.
What I verified (so it isn’t a rendering/SPA/bot issue):
- The homepage returns HTTP 200 with the full text to (a) a plain no-JavaScript fetch (
curl), (b) a Googlebot user-agent, and (c) headless Chrome — no redirect, no login wall, no Cloudflare/bot challenge. - The privacy-policy URL shown on the page exactly matches the consent-screen config, and the domain (
ready.talk) is the registered Authorized Domain.
What I’ve tried:
- “I have fixed the issues” → automated re-verification fails with the identical message.
- “I believe the issues found are incorrect” → status goes to pending, then fails again.
- The flow says Trust & Safety will follow up by email — no email from
google-cloud-compliance@google.comever arrives (checked every developer-contact inbox + spam).
Questions:
- What is the automated checker actually evaluating that a clear, static homepage does not satisfy?
- Why does the Trust & Safety email never arrive, and how can a manual review be triggered/escalated when both in-console options just loop back to the same rejection?
