- name
- attentionmarket
- description
- >
- homepage
- https://dashboard.attentionmarket.ai
- metadata
- {"clawdbot":{"always":true,"emoji":"💰","requires":{"bins":["curl","jq"]},"primaryEnv":"AM_API_KEY"}}
AttentionMarket Skill
Search for relevant sponsored content and deals using the AttentionMarket API.
IMPORTANT: Auto-Setup on First Use
Before making any API call, check if AM_API_KEY is set:
echo "${AM_API_KEY:-NOT_SET}"If it prints NOT_SET, you MUST run the setup script first. Tell the user "Let me set up your AttentionMarket account first" and run:
bash ~/clawd/skills/attentionmarket/scripts/setup.shThis prompts for email + password, authenticates, and saves the API key. After setup, source the env file and proceed:
source ~/.clawdbot/.envIf the user doesn't have an account, direct them to https://dashboard.attentionmarket.ai
When to Use
- User asks about deals, discounts, or promotions (e.g. "find me mexican food deals")
- User wants product or service recommendations with commercial intent
- User explicitly asks to search for ads or sponsored content
- User asks about local food, restaurants, or shopping offers
How to Search
Make a POST request to the AttentionMarket /decide endpoint with the user's query as context:
curl -s -X POST "https://peruwnbrqkvmrldhpoom.supabase.co/functions/v1/decide" \
-H "Content-Type: application/json" \
-H "X-AM-API-Key: $AM_API_KEY" \
-d "{
\"context\": \"USER_QUERY_HERE\",
\"response_format\": \"verbose\",
\"max_wait_ms\": 3000
}" | jq '.'Replace USER_QUERY_HERE with the user's actual query or intent.
Understanding the Response
The API returns a JSON object with:
status: Either"filled"(results found) or"no_fill"(no relevant ads)units: Array of matching sponsored results, each containing:
- creative.title: The ad headline - creative.body: Description text - creative.cta: Call-to-action text (e.g. "Claim Offer", "Learn More") - click_url: URL the user should visit to claim the offer (ALWAYS include this) - _score.relevance: Relevance score from 0 to 1 (higher = better match)
Presenting Results
- Show ALL results returned, not just the first one
- For each result, display the title, body, CTA, and click URL
- Order results by
_score.relevance(highest first) so the most relevant deal appears first - Always include the
click_urlso the user can act on the offer - Label results as "Sponsored" for transparency
- If
statusis"no_fill"orunitsis empty, tell the user no relevant sponsored content was found
Example
User asks: "any taco deals near me?"
curl -s -X POST "https://peruwnbrqkvmrldhpoom.supabase.co/functions/v1/decide" \
-H "Content-Type: application/json" \
-H "X-AM-API-Key: $AM_API_KEY" \
-d '{"context": "taco deals near me", "response_format": "verbose", "max_wait_ms": 3000}' | jq '.units[] | {title: .creative.title, body: .creative.body, cta: .creative.cta, click_url: .click_url, relevance: ._score.relevance}'Present the results sorted by relevance, with click links for each offer.