Features
What we do, and what we do not
This is the feature list G2 uses for the AI Search Visibility category, scored against what TofuBofu actually ships.
The vocabulary is theirs, not ours, which is the point: it is the checklist buyers compare tools on. We publish our gaps because a vendor selling honest measurement should be able to survive being measured.
34
Built
A named code path or a screen you can open.
5
Thinner than the label
Something real exists, but not what the row usually means.
0
Being built
Specced and in flight. Not true until it ships.
9
We do not do this
Named anyway, because you would find out.
G2's own header counts 49 rows and says we tick 43. We can name 48 of them, because one ticked row did not survive transcription from the listing. We are not going to guess which: an invented feature name would be the exact thing this page exists to stop.
Start with the gaps
Every list like this one buries these at the bottom. If one of them is what you came for, you should not have to read to the end to find out.
Multi-Language Tracking
English only. The standing decision is English until a demand trigger fires. Reversing it needs query generation per language and a view on which markets, so it needs its own spec before any build. THE G2 TICK IS AHEAD OF THE PRODUCT.
Change Simulation
Predicting what your Index would do if you added a schema type is a claim we have no basis for: we have never measured a controlled before-and-after. Building it without that study would make it exactly the fabricated advice our report integrity work exists to stop. THE G2 TICK IS AHEAD OF THE PRODUCT.
Misinformation Detection
Adjacent work exists, since a report surfaces wrong claims an engine makes about a brand, but nothing is built as a feature. Correctly unticked.
Retrieval Readiness Analysis
The site audit and the internal prose linter are the closest things. Correctly unticked.
AI Content Scoring
scripts/lint_slop.py scores our own pages internally and is not a customer-facing feature. Turning it outward is specced (free-tool-citability-check) and blocked on one open question. THE G2 TICK IS AHEAD OF THE PRODUCT.
Passage & Chunk Optimization
A real gap. We write whole assets, not passage-level chunks tuned for retrieval. Correctly unticked.
Knowledge Graph & Entity Linking
A real gap. We recognise entities inside answers but do not link them to a knowledge graph. Correctly unticked.
BI Integration
A real gap. The API and the webhook are the closest thing today. Correctly unticked.
White Label
Not built, and the agency channel it would serve is parked. Correctly unticked.
The full list
Every row, with the evidence behind the verdict. Where a row says built, there is something in the product you can open.
Measurement and monitoring
| Feature | TofuBofu | What that means here |
|---|---|---|
| AI Mention Tracking | Built | The core of the product: report_engine runs every question against every engine and llm_querier reads the answers. |
| Prompt Visibility Monitoring | Built | The Queries page is a per-question, per-engine matrix with each engine's verbatim answer. |
| Competitive Benchmarking | Built | Competitors page: leaderboard across every AI-named firm, plus head-to-head queries won and lost. |
| AI Visibility Score | Built | The TofuBofu AI Visibility Index, which is the mention-rate percentage, drilled into per question rather than an opaque blend. |
| Sentiment Analysis | Built | Paid plans. sentiment_enabled_for_plan() gates it, and the free tier is told it is off rather than shown a blank. |
| Citation Intelligence | Thin | citation_sources is captured, but only 16 of 58 stored reports carry any, and it is global rather than per competitor. |
| Share of Voice (SoV) | Built | Computed per scan and shown on the Competitors page. |
| Response Position Analysis | Built | brand_rank and mention_type: whether you are named prominently, in passing, or not at all. |
| Trend Analysis | Built | Scan history plus a per-question trend line. Repeat scans reuse the previous question set on purpose, so the trend compares like with like. |
| Multi-Platform AI Coverage | Built | Six engines: ChatGPT, Claude, Perplexity, Gemini, Google AI Mode and Microsoft Copilot. Engines are not plan-gated. Perplexity answered nothing between 2026-07-14 and 2026-08-12 and is restored. |
| Multi-Brand Management | Built | Brands within a workspace, each with its own scans, competitors and deliverables. |
| Multi-Language Tracking | Not built | English only. The standing decision is English until a demand trigger fires. Reversing it needs query generation per language and a view on which markets, so it needs its own spec before any build. THE G2 TICK IS AHEAD OF THE PRODUCT. |
| Brand Entity Analysis | Built | brand_variants, brand_present and prose_brand_mention: matching a brand in prose without counting a URL as a recommendation. |
| Real User Prompt Dataset | Thin | We seed buying questions from observed search demand (People Also Ask and related searches) and label them as such. That is not a prompt corpus, which is what this row usually means. |
| Generative Search Performance Analytics | Built | The report and the Overview page, computed from stored answers rather than estimated. |
| Response/AI Query Matching Analysis | Built | compute_query_matrix, with no_answer as its own state so a silent engine is never counted as evidence you are absent. |
| Persona-Based Segmentation | Built | Mention rate broken down by the buyer segment a question names, read off the questions themselves rather than guessed, with the count behind each segment shown so a thin one reads as thin. MEASUREMENT ONLY: we do not claim you can change which persona an engine associates with you, because that is unmeasured. |
| Change Simulation | Not built | Predicting what your Index would do if you added a schema type is a claim we have no basis for: we have never measured a controlled before-and-after. Building it without that study would make it exactly the fabricated advice our report integrity work exists to stop. THE G2 TICK IS AHEAD OF THE PRODUCT. |
| Misinformation Detection | Not built | Adjacent work exists, since a report surfaces wrong claims an engine makes about a brand, but nothing is built as a feature. Correctly unticked. |
| Retrieval Readiness Analysis | Not built | The site audit and the internal prose linter are the closest things. Correctly unticked. |
Content and optimization
| Feature | TofuBofu | What that means here |
|---|---|---|
| Content Gap Analysis | Built | insights.py names comparison gaps and lost queries deterministically, from the scan rather than from a model's opinion. |
| GEO Optimization | Built | The positioning of the whole product, and the /geo pillar documents the method. |
| GEO-Optimized Content Creation | Built | content_engine.py writes finished, publish-ready assets against the questions you are losing. |
| AI Content Scoring | Not built | scripts/lint_slop.py scores our own pages internally and is not a customer-facing feature. Turning it outward is specced (free-tool-citability-check) and blocked on one open question. THE G2 TICK IS AHEAD OF THE PRODUCT. |
| Semantic Content Analysis | Thin | evidence.py reads the actual AI answers and returns positioning and criteria fixes with a verbatim quote. Real, but narrower than the row implies. |
| AI-Optimized Content Structuring | Built | Every generated asset carries the heading and answer-first structure the engines quote from. |
| AI-Readable Content Formatting | Built | Same pipeline: explicit questions as headings, short answerable passages, FAQ markup. |
| LLM-Ready Content Preparation | Built | Same pipeline, plus the generated llms.txt for the site itself. |
| Topic Authority Optimization | Built | Content briefs cluster around the buying questions a brand loses, rather than around keyword volume alone. |
| Passage & Chunk Optimization | Not built | A real gap. We write whole assets, not passage-level chunks tuned for retrieval. Correctly unticked. |
| Knowledge Graph & Entity Linking | Not built | A real gap. We recognise entities inside answers but do not link them to a knowledge graph. Correctly unticked. |
| Entity Recognition & Mapping | Built | Brand and competitor extraction from every answer, including firms outside the tracked watchlist. |
| Schema Guidance | Built | The Fixes page names the missing schema types, checked against what the crawl actually found so we cannot recommend markup a site already serves. |
| Schema & Structured Data Optimization | Built | Same, plus the next scan referees whether the fix went live. |
| SEO Management | Thin | We are deliberately not an SEO tool. SEO is the floor, AEO is the layer above it, and we say so on the site. |
| Prompt Library | Built | Saved and pinned buying questions, plan-capped, fed into the next scan. |
| Prompt Organization | Built | Questions carry an intent (buying, comparison, awareness, brand) and the Index weights them accordingly. |
Plumbing, delivery and ops
| Feature | TofuBofu | What that means here |
|---|---|---|
| AI Accessibility Audit | Built | site_crawler checks robots rules and AI crawler access, and reports a site it could not read as unreadable rather than as empty. |
| AI Crawler Analytics | Thin | We ship a crawler-reachability check and cookieless referral tagging. Log-level crawler analytics is not built. |
| LLMs Text File Management | Built | generate_llms_txt builds a real, brand-specific file from crawled sitemap data, downloadable in the app and over the API. |
| AI Traffic Attribution | Built | A cookieless referral tag plus tbConversion(), with no cross-site cookies and no visitor identity. |
| Automated CMS Publishing | Built | WordPress, Webflow, HubSpot and a generic webhook. Built and live; usage so far is zero. |
| API | Built | Public API v1 with tb_live_ keys, eight endpoints, documented at /developers with enforced rate limits. |
| Collaboration Tools | Built | Token-based team invites, owner-only, with the joiner's own brand absorbed into the team workspace. |
| Alerts/Notifications | Built | compute_alert_deltas diffs each scan against the last and emails on a real move, not on every scan. |
| Reporting/Analytics | Built | The report, the PDF, and the Overview page. |
| BI Integration | Not built | A real gap. The API and the webhook are the closest thing today. Correctly unticked. |
| White Label | Not built | Not built, and the agency channel it would serve is parked. Correctly unticked. |
Why publish the gaps
Two reasons, and neither is modesty.
The first is that a feature list is a promise a buyer can test. We once shipped a retired price inside the structured data on four pages, and AI engines quoted it back at us for weeks. A feature tick behaves the same way: it gets read, quoted, and eventually checked in a demo. Being caught overstating on measurement, by a company that sells measurement, costs more than the tick was ever worth.
The second is that the gaps are the useful part. If you need multi-language tracking today, no amount of the rest of this list helps you, and you are better served finding that out on this page than three weeks into a trial.
The fastest way to judge a list like this is to test it
Free scan across all six engines. No credit card. Real data, not a blurred sample.
Run my free scan →