Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Collect Hootsuite debug evidence for support tickets and troubleshooting. Use when encountering persistent issues, preparing support tickets, or collecting diagnostic information for Hootsuite problems. Trigger with phrases like "hootsuite debug", "hootsuite support bundle", "collect hootsuite logs", "hootsuite diagnostic".
.claude/skills/jeremylongshore-hootsuite-debug-bundle/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | -6% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 22% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 36% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 51% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 51% | 0% |
Collect Hootsuite API connectivity status, social profile health, scheduled post state, and OAuth token validity into a single diagnostic archive. This bundle helps troubleshoot failed post scheduling, disconnected social accounts, media upload errors, and API authentication problems.
bash#!/bin/bash set -euo pipefail BUNDLE="debug-hootsuite-$(date +%Y%m%d-%H%M%S)" mkdir -p "$BUNDLE" # Environment check echo "=== Hootsuite Debug Bundle ===" | tee "$BUNDLE/summary.txt" echo "Generated: $(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$BUNDLE/summary.txt" echo "HOOTSUITE_API_KEY: ${HOOTSUITE_API_KEY:+[SET]}" >> "$BUNDLE/summary.txt" echo "HOOTSUITE_ACCESS_TOKEN: ${HOOTSUITE_ACCESS_TOKEN:+[SET]}" >> "$BUNDLE/summary.txt" # API connectivity — user profile endpoint HTTP=$(curl -s -o /dev/null -w "%{http_code}" \ -H "Authorization: Bearer ${HOOTSUITE_ACCESS_TOKEN}" \ https://platform.hootsuite.com/v1/me 2>/dev/null || echo "000") echo "API Status: HTTP $HTTP" >> "$BUNDLE/summary.txt" # User profile and social profiles curl -s -H "Authorization: Bearer ${HOOTSUITE_ACCESS_TOKEN}" \ https://platform.hootsuite.com/v1/me > "$BUNDLE/me.json" 2>&1 || true curl -s -H "Authorization: Bearer ${HOOTSUITE_ACCESS_TOKEN}" \ https://platform.hootsuite.com/v1/socialProfiles > "$BUNDLE/profiles.json" 2>&1 || true # Scheduled posts and rate limit headers curl -s -D "$BUNDLE/rate-headers.txt" -H "Authorization: Bearer ${HOOTSUITE_ACCESS_TOKEN}" \ "https://platform.hootsuite.com/v1/messages?limit=10&state=SCHEDULED" > "$BUNDLE/scheduled-posts.json" 2>&1 || true tar -czf "$BUNDLE.tar.gz" "$BUNDLE" && rm -rf "$BUNDLE" echo "Bundle: $BUNDLE.tar.gz"
bashtar -xzf debug-hootsuite-*.tar.gz cat debug-hootsuite-*/summary.txt # Auth + connectivity jq '.data[] | {id, type, socialNetworkId}' debug-hootsuite-*/profiles.json # Connected accounts jq '.data[] | {id, state, scheduledSendTime}' debug-hootsuite-*/scheduled-posts.json grep -i "ratelimit\|retry" debug-hootsuite-*/rate-headers.txt
| Symptom | Check in Bundle | Fix | |---------|----------------|-----| | API returns 401 | summary.txt shows HTTP 401 | OAuth token expired; re-authorize via Hootsuite app OAuth flow | | Social profile disconnected | profiles.json shows missing or error-state profile | Re-connect the social account in Hootsuite dashboard > Social Accounts | | Scheduled post failed | scheduled-posts.json shows FAILED state | Check media URLs are accessible; verify profile has posting permissions | | Rate limited (429) | rate-headers.txt shows Retry-After | Reduce scheduling frequency; batch post creation requests | | Missing profiles | profiles.json returns fewer accounts than expected | Check team permissions; verify plan supports connected account count |
typescriptasync function checkHootsuite(): Promise<void> { const token = process.env.HOOTSUITE_ACCESS_TOKEN; if (!token) { console.error("[FAIL] HOOTSUITE_ACCESS_TOKEN not set"); return; } const res = await fetch("https://platform.hootsuite.com/v1/me", { headers: { Authorization: `Bearer ${token}` }, }); console.log(`[${res.ok ? "OK" : "FAIL"}] API: HTTP ${res.status}`); if (res.ok) { const profiles = await fetch("https://platform.hootsuite.com/v1/socialProfiles", { headers: { Authorization: `Bearer ${token}` }, }); const data = await profiles.json(); console.log(`[INFO] Connected profiles: ${data.data?.length ?? 0}`); } } checkHootsuite();
See hootsuite-common-errors.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-02 | fail→pass | 17,604 | 5,454 | -69% | 1 | 1 | 0% | 2,332 | 2,192 | -6% | 0 | 0 | — |
case-01 | fail→fail | 25,433 | 24,388 | -4% | 1 | 1 | 0% | 4,191 | 4,265 | +2% | 0 | 0 | — |
case-03 | fail→pass | 46,682 | 14,453 | -69% | 1 | 1 | 0% | 2,650 | 3,222 | +22% | 0 | 0 | — |
case-04 | pass→pass | 28,842 | 21,395 | -26% | 1 | 1 | 0% | 4,795 | 5,638 | +18% | 0 | 0 | — |
case-05 | pass→pass | 21,923 | 14,064 | -36% | 1 | 1 | 0% | 3,257 | 3,985 | +22% | 0 | 0 | — |
case-06 | pass→pass | 15,976 | 24,729 | +55% | 1 | 1 | 0% | 2,170 | 4,418 | +104% | 0 | 0 | — |
case-07 | pass→pass | 16,030 | 13,223 | -18% | 1 | 1 | 0% | 1,821 | 3,616 | +99% | 0 | 0 | — |
case-13 | fail→pass | 13,519 | 16,632 | +23% | 1 | 1 | 0% | 2,420 | 3,292 | +36% | 0 | 0 | — |
case-08 | pass→pass | 15,218 | 10,820 | -29% | 1 | 1 | 0% | 1,671 | 2,780 | +66% | 0 | 0 | — |
case-09 | fail→pass | 18,769 | 18,102 | -4% | 1 | 1 | 0% | 2,180 | 3,288 | +51% | 0 | 0 | — |
case-10 | fail→pass | 11,942 | 10,803 | -10% | 1 | 1 | 0% | 2,012 | 3,037 | +51% | 0 | 0 | — |
case-11 | fail→fail | 13,721 | 20,998 | +53% | 1 | 1 | 0% | 2,028 | 3,379 | +67% | 0 | 0 | — |
case-12 | fail→pass | 9,035 | 9,781 | +8% | 1 | 1 | 0% | 1,237 | 2,057 | +66% | 0 | 0 | — |
case-14 | fail→fail | 16,328 | 14,516 | -11% | 1 | 1 | 0% | 1,899 | 2,822 | +49% | 0 | 0 | — |
case-15 | pass→pass | 9,105 | 4,691 | -48% | 1 | 1 | 0% | 652 | 1,819 | +179% | 0 | 0 | — |
case-16 | pass→pass | 19,725 | 13,671 | -31% | 1 | 1 | 0% | 2,197 | 2,436 | +11% | 0 | 0 | — |
case-17 | fail→pass | 11,864 | 2,780 | -77% | 1 | 1 | 0% | 1,194 | 1,564 | +31% | 0 | 0 | — |
case-18 | fail→pass | 12,588 | 8,221 | -35% | 1 | 1 | 0% | 1,156 | 1,728 | +49% | 0 | 0 | — |
case-19 | fail→pass | 7,231 | 3,363 | -53% | 1 | 1 | 0% | 990 | 1,600 | +62% | 0 | 0 | — |
case-20 | pass→pass | 10,689 | 8,186 | -23% | 1 | 1 | 0% | 2,037 | 2,528 | +24% | 0 | 0 | — |
case-21 | fail→pass | 15,252 | 19,754 | +30% | 1 | 1 | 0% | 1,883 | 2,584 | +37% | 0 | 0 | — |
case-22 | fail→pass | 18,440 | 7,254 | -61% | 1 | 1 | 0% | 2,118 | 1,566 | -26% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +50 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.