Skip to main content
Glama
Hermoso

Hermoso

Official

Competitor teardown

competitor_teardown

Break a competitor's ad strategy into hook mixes, recurring themes, white space, and counter-plays, or pass ads to analyze only those. Recommendations tailor to your saved brand.

Instructions

Tear a competitor's ad strategy down into an actionable playbook: their opening-hook MIX, longest-running campaign THEMES, the WHITE SPACE nobody in their set runs, 2-3 render-ready COUNTER-PLAYS, and the territories they own that you should avoid. Pass competitor {name, domain?}. CONTRACT: supply ads (raw ad objects from a prior pull_competitor_ads / search_meta_ads call) to tear exactly those down, OR omit ads and this pulls the competitor's real Meta ads first (spends the same ad-library reads search_meta_ads does, longest-running = proven winners). Auto-tailors the white space + counter-plays to YOUR saved brand. Spends credits (free when you pass ads).

Input Schema

NameRequiredDescriptionDefault
adsNoad objects to tear down (from pull_competitor_ads / search_meta_ads). Omit to auto-pull their Meta ads first.
languageNooutput language (default English)
competitorYesthe competitor to tear down

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.1.161
    • changedOutput schema / (root)
      Previous value: -{
      -  "$schema": "http://json-schema.org/draft-07/schema#",
      -  "additionalProperties": false,
      -  "properties": {
      -    "adCount": {
      -      "description": "how many ads were analyzed",
      -      "type": "number"
      -    },
      -    "teardown": {
      -      "description": "the playbook — hook_taxonomy, campaigns, white_space, counter_plays, not_saying"
      -    }
      -  },
      -  "type": "object"
      -}New value: +null
  2. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=false and openWorldHint=true; the description goes far beyond by disclosing the credit cost model ('Spends credits', 'free when you pass ads') and that the auto-pull consumes the same ad-library reads as search_meta_ads. It also discloses the personalization behavior (auto-tailors white space and counter-plays to the saved brand), which materially affects output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the deliverable list before the operational contract, and every clause carries information (outputs, input contract, cost, personalization). It is a single dense paragraph with heavy ALL-CAPS emphasis, which aids scanning but makes it slightly harder to parse than a two- or three-sentence layout.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by enumerating the report sections the agent should expect back. For a 3-parameter tool with one nested object, the paid-vs-free branch, data provenance, and per-brand personalization are all covered — nothing needed to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds non-obvious semantics: that the `ads` array must be raw objects from a prior call and that its absence triggers a paid auto-pull, plus that longest-running ads are treated as proven winners. The `domain` sharpening hint is already in the schema, so the gain is real but partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Tear a competitor's ad strategy down') and enumerates the concrete deliverables (hook mix, longest-running themes, white space, counter-plays, avoid-list). This clearly separates it from sibling ad-search tools like search_meta_ads and pull_competitor_ads, which only retrieve ads rather than produce a playbook.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The CONTRACT sentence states the branch condition explicitly: supply `ads` to analyze exactly those, or omit it to auto-pull. It also names the sibling tools that produce compatible input (pull_competitor_ads / search_meta_ads), so the agent knows both when to use this and where upstream data comes from.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools