Infer Business Profile
Automatically infer business profile from campaign data using AI analysis.
⚠️ IMPORTANT: This tool ANALYZES data but may SAVE a profile if confidence is high.
🎯 What This Tool Does (Performance Agent - Phase 1 Feature 5):
- Analyzes campaign names, keywords, and ad copy
- Uses Claude AI to classify business type
- Infers business vertical, size, goals, and audience
- Returns confidence level (high, medium, low)
- Auto-saves if confidence is HIGH, asks confirmation for LOW
Inference Process:
- Collects campaign names and keywords from Google Ads
- Analyzes patterns (B2B vs B2C, product vs service)
- Uses AI to classify business vertical
- Estimates business size from ad spend
- Identifies primary goals from campaign types
Confidence Levels:
- HIGH (≥0.8): Auto-saves profile, high certainty
- MEDIUM (0.5-0.8): Saves profile, reasonable certainty
- LOW (
<0.5): Returns suggestion, asks user to confirm
Parameters:
- force_save: Set to true to save even low-confidence profiles
- customer_id: Optional (uses connected account if omitted)
Returns:
- Inferred business profile (vertical, size, goal, audience)
- Confidence level and reasoning
- Whether profile was saved or needs confirmation
- Suggested confirmation prompt for low-confidence results
Use this tool when:
- User doesn’t have a business profile set
- User asks “analyze my business”
- You need business context but none exists
- After user connects a new Google Ads account
Example Flow:
- Call
get_business_profile- returns no profile - Call
infer_business_profile- analyzes campaigns - If HIGH confidence: Profile saved automatically
- If LOW confidence: Ask user to confirm with suggested prompt
Execution time: 3-8 seconds (AI analysis + optional save)
Authorizations
API key from https://adspirer.ai/keys. Prefix sk_live_. Treat as a secret — never commit.
Headers
Client-generated UUID to make writes idempotent. Strongly recommended for write tools. A repeat call with the same key returns the cached result instead of re-executing. Example: 550e8400-e29b-41d4-a716-446655440000
Body
All tool arguments are wrapped in an arguments object. The fields accepted inside arguments are listed below — required fields are marked with a red asterisk.
Input schema for inferring business profile from campaign data
Response
Tool executed successfully. data.text carries the human-readable result (markdown-friendly). data.quota shows your current usage against the plan limit. data.structured appears when the tool emits machine-parseable structured content. data.content appears for tools that return non-text blocks (images, resources).
Returned on HTTP 200. data.text is the primary human-readable output. data.quota is always present for billable calls. data.structured is set only when the tool emits machine-parseable structured content. data.content is set only when the tool emits non-text content blocks.

