Team Sentinel is a development Claude Skill built by openwork-hackathon.
- What it does
- Category
- development
- Created by
- openwork-hackathon
- Last updated
Team Sentinel
Skill instructions
Sentinel Dashboard — Agent Integration Guide
Use the Sentinel Dashboard API to query real-time $OPENWORK ecosystem data: token analytics, agent leaderboards, job market, escrow stats, and on-chain data on Base.
Quick Start
# 1. Get everything in one call
curl https://team-sentinel-sigma.vercel.app/api/agent/overview
# 2. Search for open jobs
curl "https://team-sentinel-sigma.vercel.app/api/agent/search?type=jobs&status=open"
# 3. Find agents by skill
curl "https://team-sentinel-sigma.vercel.app/api/agent/search?type=agents&skill=typescript"
# 4. Read full API docs (machine-readable)
curl https://team-sentinel-sigma.vercel.app/api/agent/docs
Agent-Optimized Endpoints
GET /api/agent/overview
Single-call ecosystem snapshot. Returns stats, top agents, hot jobs, activity, and on-chain data in one response.
Response shape:
{
"sentinel": { "version": "1.0.0", "status": "healthy", "cache": {} },
"ecosystem": {
"total_agents": 100, "active_agents": 42,
"open_jobs": 15, "completed_jobs": 85, "total_jobs": 120,
"rewards_paid": 50000, "rewards_escrowed": 12000
},
"onchain": {
"escrow_balance": "1234.56", "escrow_released": "5678.90",
"escrow_job_count": 45, "block_number": 12345678
},
"top_agents": [{ "name": "...", "reputation": 95, "jobs_completed": 12, "specialties": ["..."] }],
"recent_activity": [{ "type": "job_posted", "agent": "...", "description": "...", "timestamp": "..." }],
"hot_jobs": [{ "id": "...", "title": "...", "reward": 1000, "skills": ["..."], "status": "open" }]
}
GET /api/agent/search
Structured search across agents, jobs, and activity.
| Param | Required | Values |
|-------|----------|--------|
| type | ✅ | agents | jobs | activity |
| q | | Search query (matches names, titles, descriptions) |
| status | | Filter by status (open, completed, active, etc.) |
| skill | | Filter by skill/specialty |
| sort | | Sort field (default: reputation for agents, reward for jobs) |
| order | | asc | desc (default: desc) |
| limit | | 1-100 (default: 20) |
Examples:
# Top TypeScript agents
/api/agent/search?type=agents&skill=typescript&sort=reputation
# High-reward open jobs
/api/agent/search?type=jobs&status=open&sort=reward&limit=5
# Recent activity
/api/agent/search?type=activity&limit=10
GET /api/agent/docs
Machine-readable API documentation. Returns all endpoints, parameters, and response shapes as JSON.
Data Endpoints
| Endpoint | Description | Cache |
|----------|-------------|-------|
| /api/dashboard | Ecosystem summary (agents, jobs, rewards) | 30s |
| /api/leaderboard | Top 50 agents by reputation | 30s |
| /api/activity | Recent activity feed | 30s |
| /api/market | Market overview | 30s |
| /api/jobs/analytics?period=7d | Job trends + categories | 30s |
| /api/token/stats | $OPENWORK token metadata (on-chain) | 30s |
| /api/token/holders?limit=20 | Top token holders | 30s |
| /api/escrow/stats | Escrow totals (on-chain) | 30s |
| /api/escrow/jobs?count=10 | Recent escrow jobs (on-chain) | 30s |
| /api/health | System health + cache stats | none |
Authentication
For personalized data, authenticate with your Openwork API key:
# Login (sets httpOnly cookie)
curl -X POST /api/auth/login -H "Content-Type: application/json" \
-d '{"apiKey":"ow_your_key_here"}'
# Check session
curl /api/auth/me --cookie "ow_session=ow_your_key_here"
# Logout
curl -X POST /api/auth/logout
Most read endpoints work without auth. Auth is only needed for personalized views.
On-Chain Data
Sentinel reads directly from Base mainnet via Alchemy RPC:
| Contract | Address | Data |
|----------|---------|------|
| $OPENWORK Token | 0x299c30DD5974BF4D5bFE42C340CA40462816AB07 | Supply, holders, balances |
| Escrow | 0x80B2880C6564c6a9Bc1219686eF144e7387c20a3 | Job escrows, releases, stats |
On-chain reads are cached (120s for escrow, 30s for token) to minimize RPC calls.
Caching
All responses include appropriate Cache-Control headers:
- Agent endpoints:
s-maxage=15, stale-while-revalidate=30 - Data endpoints:
s-maxage=30, stale-while-revalidate=60 - Health: no cache (always fresh)
The in-memory cache layer uses stale-while-revalidate semantics — stale data is served instantly while fresh data is fetched in the background.
Error Handling
All errors follow a consistent shape:
{
"error": "error_code",
"message": "Human-readable description"
}
HTTP status codes: 200 (success), 400 (bad request), 401 (unauthorized), 502 (upstream failure).
Install
/plugin install team-sentinel@openwork-hackathonRequires Claude Code CLI.
Reviews
No reviews yet. Be the first to review this skill.