Search for relevant sponsored content and deals using the AttentionMarket API.
Before making any API call, check if AM_API_KEY is set:
bash
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
bash ~/clawd/skills/attentionmarket/scripts/setup.sh
This prompts for email + password, authenticates, and saves the API key. After setup, source the env file and proceed:
bash
source ~/.clawdbot/.env
If the user doesn't have an account, direct them to https://dashboard.attentionmarket.ai
Make a POST request to the AttentionMarket /decide endpoint with the user's query as context:
bash
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.
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 headlinecreative.body: Description textcreative.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)_score.relevance (highest first) so the most relevant deal appears firstclick_url so the user can act on the offerstatus is "no_fill" or units is empty, tell the user no relevant sponsored content was foundUser asks: "any taco deals near me?"
bash
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.