list_bulk_audit_competitors
list_bulk_audit_competitors MCP tool: competitor candidates of a bulk GEO Audit campaign, ranked by mentions, plus the frozen selection. Inputs, response, example.
Updated 2026-09-21
list_bulk_audit_competitors returns the competitor candidates of a bulk GEO Audit campaign, extracted from its shared scan results and ranked by the number of results that mentioned them, plus the names already frozen as the selection.
When to use
When a campaign reaches CURATING, call this tool to see which brands the LLMs surfaced across the whole segment. One curation covers the entire campaign and is projected onto every target report, so this is the single review step for a batch of N audits. Pass the picked names to select_bulk_audit_competitors.
Input
| Field | Type | Default | Description |
|---|---|---|---|
bulkAuditId |
string (CUID) | - | The campaign id returned by list_bulk_audits. Returns bulk_audit_not_found if it does not belong to your workspace. |
limit |
integer (1-200) | 50 | Max candidates per page, sorted by descending mention count. |
cursor |
string | - | Opaque cursor from a previous page's pageInfo.nextCursor. |
Response
{
"success": true,
"bulkAuditId": "clx_bulk_42",
"status": "CURATING",
"curatable": true,
"selectedCompetitors": [],
"suggestedCompetitors": [
{ "name": "Acme", "count": 37 },
{ "name": "Globex", "count": 12 }
],
"pageInfo": { "hasMore": true, "nextCursor": "50", "totalCount": 806 }
}
Field notes:
countis the number of scan results that mentioned the brand. An entity is counted at most once per result, so a brand cited three times in one response does not outweigh one that surfaces in three different responses.curatableistrueonly whenstatusisCURATING, the single status where a selection can be submitted.selectedCompetitorsreflects what is already frozen on the campaign (empty until curation is submitted).
Not found
{ "success": false, "error": "bulk_audit_not_found", "message": "No bulk campaign with this id exists in your workspace. Verify the bulkAuditId returned by list_bulk_audits." }
Tips and patterns
- Branch on
curatable. If it isfalse, do not callselect_bulk_audit_competitors: the campaign is not waiting on a selection. - The first page is usually enough. Candidates are pre-sorted by
count; deeper pages are the single-mention long tail. - Targets can appear as candidates. A bulk campaign's own targets sometimes surface as entities in the shared scan. Keeping or dropping them is your call.
Related tools
- select_bulk_audit_competitors: freeze the selection and advance the campaign to GENERATING.
- get_bulk_audit: poll the campaign's status.
- list_geo_audit_competitors: the single-audit equivalent.