select_bulk_audit_competitors
select_bulk_audit_competitors MCP tool: freeze a bulk GEO Audit campaign's competitor selection and advance it CURATING to GENERATING. Inputs, response, example.
Updated 2026-09-21
select_bulk_audit_competitors freezes the competitor selection of a bulk GEO Audit campaign and advances it from CURATING to GENERATING, which triggers segment insight generation for every target at once. It is the write half of the pair completed by list_bulk_audit_competitors.
When to use
After reading the candidates with list_bulk_audit_competitors (when curatable is true), call this tool with the names to keep. One call unblocks the whole batch: N target reports are generated from the same curated list. Requires a non read-only API key.
Input
| Field | Type | Description |
|---|---|---|
bulkAuditId |
string (CUID) | The campaign id. Returns bulk_audit_not_found if it does not belong to your workspace. |
selectedCompetitors |
string[] | 1 to 50 competitor names to freeze for the whole campaign. Pick from the suggestedCompetitors returned by list_bulk_audit_competitors. |
Response
Success
{
"success": true,
"bulkAuditId": "clx_bulk_42",
"status": "GENERATING",
"selectedCompetitors": ["Acme", "Globex"],
"message": "Selection frozen for every target. The campaign is now generating segment insights; poll get_bulk_audit until status is COMPLETED."
}
Not curating
{ "success": false, "error": "not_in_curation", "currentStatus": "SCANNING", "message": "Competitor curation is only possible while the campaign is CURATING. This campaign is in SCANNING." }
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
- Check
curatablefirst withlist_bulk_audit_competitorsto avoid anot_in_curationround trip. - The transition is atomic. If the campaign already moved past
CURATING(someone submitted from the app, or a concurrent call won), this tool returnsnot_in_curationinstead of queueing generation twice. - Then poll
get_bulk_audituntilCOMPLETED, and read each target's report throughlist_geo_audits({ filters: { bulkAuditId } }).
Related tools
- list_bulk_audit_competitors: read the candidates to pick from.
- get_bulk_audit: poll the campaign until COMPLETED.
- select_geo_audit_competitors: the single-audit equivalent.