The citation measurement loop
Every Findabl project runs the same pipeline, whether you triggered it manually or the system ran it on its daily schedule:
- Pre-flight. If the project is missing tracked queries or competitors, Findabl calls
generateCitationQuerieson your domain to auto-generate a diverse set of unbranded buyer prompts and suggested competitors. - Site scan. Fetch the primary URL, parse structure, extract AI-readiness signals (word count, FAQ schema, headings, load time, structured data, E-E-A-T markers).
- Citation check. Query all four AI engines in parallel with each tracked prompt. Parse responses for brand mentions, competitor mentions, co-mentions, and source URLs.
- Gap analysis. For each cited competitor, fetch their page, extract their citation-worthy signals, and identify what you lack that they have.
- Persist. Store everything in Firestore under your project: one new document in
citationHistory, updated domain counts inpublisherDomainIndex, a full report inreports, and a gap analysis incitationGapAnalyses.
Why we use unbranded queries
Every tracked prompt is unbranded by design — we never inject your brand name into the question. "Best CRM for early-stage SaaS" is a valid prompt; "Best CRM features Findabl offers" is not.
The reason is measurement integrity. If the prompt already names you, of course the AI is going to talk about you — but that result tells you nothing useful about whether real buyers would encounter you. Unbranded prompts simulate what actually happens when a prospect asks an AI engine a real buying question.
Unbranded queries are a hard architectural rule (ADR-005). The query generator actively filters brand names out of generated prompts, and we reject user-submitted prompts that contain the tracked brand. There is no toggle to turn this off.
How citations are detected
For each AI engine response, Findabl runs three detection passes:
- Brand detection. Does the response mention your brand name, your domain, or a recognized variant? The answer is a boolean
mentioned: true/falsefor that engine × prompt. - Competitor extraction. Parse the response for named brands, URLs, and known competitor domains. This builds the co-mention list that populates the Competitors tab.
- Source URL capture. For engines that list sources (Perplexity, Gemini, ChatGPT with browsing), capture the full URL list. This feeds the Publisher Domain Index so you can see which sites AI engines cite most in your category.
We store the complete raw response text alongside the parsed fields. You can always inspect exactly what ChatGPT said on a specific prompt — no summarization, no interpretation.
How often we scan
Findabl runs a daily scan on every active project. The scheduler is dailyCitationMonitoring, a Cloud Function that fires at 09:00 UTC and enqueues each project for a fresh citation check.
On paid plans, daily cadence can be increased (up to five runs per day on higher tiers). Manual Run Project always works and is not rate-limited within reason.
What we report vs. what we do not
| We report | We do not report |
|---|---|
| Exact AI engine response text | Paid search ad positions |
| Source URLs each engine cited | Organic Google rankings |
| Per-engine citation rate over time | Backlink profiles |
| Co-mentioned competitors | Technical SEO crawl errors |
| Publisher Domain Index (earned media) | Keyword search volume |
| Site readiness signals | Domain authority scores |
Findabl is an AI Citation Intelligence platform. It does not try to be a classic SEO suite. If you need keyword research or backlink analysis, pair Findabl with a dedicated SEO tool — they measure different things.
Where your data lives
Everything Findabl measures is stored in Firestore under your workspace. You own it. Export is built into every project (the Export PDF button on the Overview tab produces a complete, shareable report).
We do not train AI models on your data and we do not share your citation history with third parties. The scan methodology is public, the scoring formula is public, and the raw AI responses are visible to you for every run.