# Prompt Builder (ListeningMind) > From a brand or category keyword it collects ListeningMind related keywords, People Also Ask questions and Google AI Overviews, extracts CEP, nano context, KBF, constraints, avoidance, reasons to believe and competitors, and generates managed prompts in 6 fixed groups with estimated monthly prompt volume. It can then ask ChatGPT and Gemini those prompts to measure brand visibility, and keeps history and Excel exports. Used by GEO leads and brand managers. Markets: Korea, Japan, US. Korean: 소비자가 AI에 묻는 질문을 찾아 브랜드 관리 프롬프트와 AI 가시성을 내는 앱 · Japanese: 消費者がAIに尋ねる質問を見つけ、ブランド管理プロンプトとAI可視性を出すアプリ ## Use it as an agent - [MCP server](https://daas-prompt.listeningmind.ai/mcp): Streamable HTTP, JSON-RPC. 16 app tools plus app_guide, result store tools (results_sync, results_list, results_get, results_compare, results_export) and settings sweeps (plan_batch, batch_status) - WebMCP: every page of this app registers the same tools in `document.modelContext` for a browser agent; calls that spend credits ask the person on the page - [OpenAPI](https://daas-prompt.listeningmind.ai/.well-known/openapi.json): the same tools as a REST contract (operationId = tool name) - [agents.md](https://daas-prompt.listeningmind.ai/agents.md): step-by-step guide · [API catalog](https://daas-prompt.listeningmind.ai/.well-known/api-catalog) · [MCP server card](https://daas-prompt.listeningmind.ai/.well-known/mcp/server-card.json) - Every page answers `Accept: text/markdown` with a markdown version - Tools of kind run or delete spend credits or delete data: over MCP the call returns confirm_url for a person, then call confirmation_status - Accounts: reading results and history is open. Starting a run or changing data needs a ListeningMind member: the person approving confirm_url signs in or [signs up](https://daas-prompt.listeningmind.ai/_lm/auth/signup); other changes over MCP need the member's agent key (LM-User-Key header, created at https://daas-prompt.listeningmind.ai/_lm/account) ## What you give and what you get - Inputs: Keyword (required), market (kr/jp/us); optional: topic to fix the meaning, number of prompts (72-300), keywords to query (3-40), PAA filter, engine (mix/Gemini/ChatGPT), own brands, competitors, exclude words. Page language ?ui=ko|en|ja. - Outputs: Collected data (related keywords, journeys, questions, AI Overviews), insight (brands, CEP, contexts, KBF, constraints, thresholds, avoidance, RTB, competitors), managed prompts in 6 groups with interest intensity index (0-100), estimated monthly volume and gap-fill marks, AI visibility KPIs (mentions, recommendations, sources per engine), Excel file, history. - Cost: One analysis spends ListeningMind finder (path, intent, cluster) credits plus SERP lookups for up to max keywords, and many LLM calls (exact amounts are not reported by the app). Usually 1-4 minutes. AI visibility measurement makes prompts x engines x 3 web-search LLM calls. ## How a result is made (in order) 1. `preview_detection`: Review the auto-detected meaning, own and competitor brands and exclude words. 2. `start_analysis`: Start the run with the confirmed values and read the job id from the HTML. 3. `get_job_status`: Poll stages until done; if no data, restart with a keyword from suggest. 4. `get_run`: Read the insight and managed prompts as JSON. 5. `start_visibility`: Optionally measure brand visibility in ChatGPT and Gemini (paid calls, needs confirmation). 6. `get_visibility_status`: Poll until the measurement is done. 7. `get_visibility`: Read the visibility results. 8. `export_prompts_xlsx`: Download the prompts as Excel. 9. `list_history`: Find past runs to reopen. Run stages reported by the app: queued → collecting → suggesting → analyzing → generating → estimating → gapfill → done ## Method (how the analysis works) 1. Resolve the keyword's meaning and detect own brand, competitors and exclude words, then correct them in the confirm step. 2. Collect ListeningMind related keywords, journeys, People Also Ask questions and Google AI Overviews for up to max keywords. 3. Extract CEP, nano context, KBF, constraints, thresholds, avoidance, reasons to believe (RTB) and competitors. 4. Generate managed prompts in 6 fixed groups, estimate monthly prompt volume and fill demand gaps. 5. Optionally ask ChatGPT and Gemini each prompt 3 times and record brand mentions, recommendations and cited sources. ## Reading the result - ins (insight) holds the CEPs, contexts, KBF, constraints, avoidance, RTB and competitors the prompts are built from. - Each managed prompt has a group, brand type (non-brand, brand, comparison), interest intensity index (0-100), estimated monthly count with range and confidence, and a gap-fill mark. - ins._pv_meta.cooc.coverage (demand_coverage_pct) shows how much of the demand the prompt set covers. - After measurement, kpi gives mentions, recommendations and sources per engine; opportunities and sources (cited domains) show where the brand is missing and which sites AI cites. - The Excel file has one row per prompt with evidence keywords and volume, for sharing and tracking. ## Requests this app answers well - List the questions consumers would actually ask ChatGPT about our serum and estimate their monthly volume - Measure how often Gemini and ChatGPT recommend our brand in the electric toothbrush category in Japan - Build 200 managed prompts for mattresses in the US and give me the Excel file - Tell me which questions get AI answers that name our competitors but not us, and which sites those answers cite ## Continue in another app - [Brand Wiki](https://daas-wiki.listeningmind.ai/llms.txt) (MCP `https://daas-wiki.listeningmind.ai/mcp`): When AI answers miss or misdescribe the brand and the brand site's content needs fixing. Carry: The brand name and site URL, plus the evidence keywords with volume and CEP per prompt from the Excel file as demand data for import_demand_data. - [GEO Audit](https://daas-geo.listeningmind.ai/llms.txt) (MCP `https://daas-geo.listeningmind.ai/mcp`): When you want to check whether your own pages are ready to be read and cited for the prompts where visibility is low. Carry: The keyword as the topic and the URLs (up to 5) of your pages that should answer those prompts. ## Using the screens (browser agents) - `describe_screen`: menus, tabs, fields and buttons of the current screen, and what the page is for - `go_to`: open a menu or page of this app by its label or path - `fill_field`: type a value into a field by its label (never presses run; runs go through the run tools, which ask the person) - `read_this_page`: the text and ids of what the person is looking at ## Tools - `preview_detection` (run, GET /confirm): The 'AI helper' step the UI shows before a run: resolves the keyword's meaning, may switch an ambiguous or low-data brand keyword to its category, gathers related keywords and detects own brand, competitors and exclude words. Returns an HTML form pre-filled with collect keyword, focus, own, comp, exclude, gl, n, max; pass those values to start_analysis. - `start_analysis` (run, GET /): Starts a full run in the background (pass run='1'; without it the address only prefills the form): collects related keywords, People Also Ask and AI Overview from ListeningMind, analyzes CEP, nano intent, KBF, constraints, avoidance and competitors, generates managed prompts in 6 fixed groups, estimates monthly prompt volume and fills demand gaps, then saves the run to history. Returns the HTML progress page; the job id is in its poll script (var JID="<12 hex>"). Poll get_job_status with that id. - `get_job_status` (read, GET /api/status): Returns {status (running, done, error), stage, stage_label, elapsed, error, suggest}. suggest lists alternative keywords that have data when the keyword returned nothing. Repeat until done or error. A finished run that is no longer in memory still answers done. - `get_run` (read, GET /api/run): Returns a saved run as structured JSON: {id, brand, gl, created_at, input, counts (related keywords, keywords queried, questions, AI overview items, scenarios, prompts), pkg (collected data: related keywords, journeys, aggregated questions, SERP text), ins (insight: brands, CEP, contexts, KBF, constraints, thresholds, avoidance, RTB, competitors, scenarios with prompts, estimated prompt volume _pv)}. - `get_result_html` (read, GET /api/result): Returns the rendered result section (insight cards, prompt tables, visibility card) as an HTML fragment, as the UI inserts it after the run. Answers 202 'not ready' while running. - `start_visibility` (run, GET /api/vis/start): Asks ChatGPT and Gemini (with web search) every managed prompt of a saved run 3 times and records whether the own brand and competitors appear, are recommended and which sources are cited. Returns {status, done, total}. Poll get_visibility_status. - `get_visibility_status` (read, GET /api/vis/status): Returns {status (running, done, error, none), done, total, error}. none means not measured and not running. Repeat until done or error. - `get_visibility` (read, GET /api/vis): Returns the stored visibility measurement for a run: {engines, models, runs, per_prompt (answers per prompt and engine with brand mentions), kpi, opportunities, sources (cited domains), failed, created_at}. 404 {error:'not measured'} before measuring. - `export_prompts_xlsx` (read, GET /export): Downloads the managed prompts of a run as an .xlsx file: one row per prompt with group, brand type (non-brand, brand, comparison), prompt, interest intensity index (0-100), tier, question share, estimated monthly prompt count and range, confidence, trend, evidence keywords with volume, demand share, co-occurring words, gap-fill mark, topic, scenario, CEP, constraints, required KBF, avoidance, output format; plus visibility results when measured. - `list_history` (read, GET /history): Returns the history page (HTML) listing saved runs for a market with time, keyword, focus and links to view (/history/view?id=), Excel export and delete. mk filters by market (kr, jp, us, all); default is the UI language's market. - `view_saved_run` (read, GET /history/view): Returns the full HTML result page of a saved run. - `delete_run` (delete, POST /history/delete): Deletes one of your saved runs (POST, form or JSON body {id, back}). Signed-in members only, and only the member who ran it: 401 signed out, 403 for another member's run. A form post is answered with 303 to the back path, JSON with {ok, id}. GET is refused (405). - `collect_data` (run, GET /api/collect): Collects the ListeningMind data package for a keyword (related keywords from path, intent and cluster finders, journeys, People Also Ask, AI Overview and SERP text) without LLM synthesis and without saving to history. For agents that write their own prompts. Returns the pkg JSON; 503 if the data API is unreachable. - `run_sync_analysis` (run, GET /api): Runs collection and insight synthesis in one blocking request and returns {insight, data}. Not saved to history and no job id, so it cannot be exported or measured later; use start_analysis for that. 422 when the keyword has no ListeningMind data. - `list_history_count` (read, GET /history/count): Number of saved runs in the history (for the header). Signed-in members only: {n}. - `list_recent_history` (read, GET /history/recent): Your 10 most recent runs as an HTML table fragment for the home page (time, brand, market, re-run/view/export/delete). Signed-in members only; each member sees only their own runs. ## Pages - [Start analysis](https://daas-prompt.listeningmind.ai/): Enter a keyword and options, then choose the AI helper confirm step or run directly. ?ui=ko|en|ja switches language. - [History](https://daas-prompt.listeningmind.ai/history): Saved runs by market with view, Excel, delete and re-run links. ## Limits - All endpoints the UI uses are GET, and some return HTML. The job id of start_analysis is the var JID value in the returned HTML; when the run finishes it is saved to server history under the same id. Results therefore live on the server, not only in the browser. There is no JSON history list, so ids must be read from the /history HTML. run_sync_analysis and collect_data are not saved to history. Markets: kr, jp, us. Only the last 40 jobs are kept in memory. No auth. ## The ListeningMind apps (same account, same tools, call any of them) Each app has `/mcp`, `/llms.txt`, `/agents.md` and WebMCP on its pages. `family_apps` and `recommend_app` return this list with addresses. - [ACO](https://daas-aco.listeningmind.ai/llms.txt): Diagnoses whether a product detail page can be cited by AI answers and used by shopping agents (MCP `https://daas-aco.listeningmind.ai/mcp`) - [AOO](https://daas-aoo.listeningmind.ai/llms.txt): Measures whether AI agents can get real tasks done on a website (MCP `https://daas-aoo.listeningmind.ai/mcp`) - [Brand Finder](https://daas-brand.listeningmind.ai/llms.txt): Which brands lead search by generation or field, and what their brand assets are (MCP `https://daas-brand.listeningmind.ai/mcp`) - [Brand Naming Agent](https://daas-naming.listeningmind.ai/llms.txt): Creates and checks brand name candidates grounded in search data (MCP `https://daas-naming.listeningmind.ai/mcp`) - [Brand Wiki](https://daas-wiki.listeningmind.ai/llms.txt): Turns a brand website into the entities, wiki pages and evidence AI assistants read (MCP `https://daas-wiki.listeningmind.ai/mcp`) - [CEP Finder](https://daas-cep.listeningmind.ai/llms.txt): In which situations do people start looking for this category (category entry point map) (MCP `https://daas-cep.listeningmind.ai/mcp`) - [Creative Finder](https://daas-creative.listeningmind.ai/llms.txt): Finds purchase situations (CEP) in search data and drafts a creative, an image and a video for each (MCP `https://daas-creative.listeningmind.ai/mcp`) - [Demand Forecast](https://daas-forecast.listeningmind.ai/llms.txt): What category demand looks like in the next 3-6 months and when to launch or campaign (MCP `https://daas-forecast.listeningmind.ai/mcp`) - [Funnel Leak Finder](https://daas-funnel.listeningmind.ai/llms.txt): Where category search journeys leak to competitors (MCP `https://daas-funnel.listeningmind.ai/mcp`) - [GEO Audit](https://daas-geo.listeningmind.ai/llms.txt): Checks whether a web page is ready to be read and cited by search engines and AI answer engines (MCP `https://daas-geo.listeningmind.ai/mcp`) - [ICSS](https://daas-icss.listeningmind.ai/llms.txt): Synthetic consumer panel conditioned on search intent, for surveys and FGDs (MCP `https://daas-icss.listeningmind.ai/mcp`) - [Intent KG](https://daas-intent.listeningmind.ai/llms.txt): What people look for about a topic, why, and how they choose (Intent Knowledge Graph) (MCP `https://daas-intent.listeningmind.ai/mcp`) - [Pulse Finder](https://daas-pulse.listeningmind.ai/llms.txt): What is rising in search for a gender and age segment right now (MCP `https://daas-pulse.listeningmind.ai/mcp`) - [Smart Store Suite](https://daas-store.listeningmind.ai/llms.txt): Which Smart Store products to grow, and how to rewrite their titles and detail pages in searchers' words (MCP `https://daas-store.listeningmind.ai/mcp`) - [Taste Finder](https://daas-taste.listeningmind.ai/llms.txt): In what sensory and emotional words do people choose this (consumer taste report from search data) (MCP `https://daas-taste.listeningmind.ai/mcp`) - [ListeningMind Data API](https://daas.listeningmind.ai/llms.txt): the search data behind every app (MCP `https://daas.listeningmind.ai/mcp`) · [glossary](https://daas.listeningmind.ai/en/glossary) · [all apps](https://daas.listeningmind.ai/en/apps) ## Optional - ListeningMind data and other apps: https://www.listeningmind.com · contact m-support@listeningmind.com