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 curatable first with list_bulk_audit_competitors to avoid a not_in_curation round trip.
  • The transition is atomic. If the campaign already moved past CURATING (someone submitted from the app, or a concurrent call won), this tool returns not_in_curation instead of queueing generation twice.
  • Then poll get_bulk_audit until COMPLETED, and read each target's report through list_geo_audits({ filters: { bulkAuditId } }).

Related tools

You can see where you stand today.

Free trial. Start tracking your AI visibility, no credit card.