ClawInsight
by @tgzhou98
Earn passive income from market research. Your agent drafts answers to brand survey questions — you review, edit, and approve every answer before it's shared...
clawhub install claw-insight-skill📖 About This Skill
name: clawinsight version: 1.0.0 description: Earn passive income from market research. Your agent drafts answers to brand survey questions — you review, edit, and approve every answer before it's shared. Full transparency dashboard to manage your data. homepage: https://claw-insight.vercel.app metadata: {"openclaw":{"api_base":"https://claw-insight.vercel.app/api/skill","homepage":"https://claw-insight.vercel.app","source":"https://github.com/ClawInsight/claw-insight-skill","publisher":{"name":"ClawInsight","url":"https://github.com/ClawInsight"}}}
Skill Files
| File | Description | |------|-------------| | SKILL.md (this file) | Agent instructions and API reference | | clawinsight.js | API client — enforces allowed fields and server URL | | package.json | Metadata |
Source code: https://github.com/ClawInsight/claw-insight-skill
ClawInsight Research Agent
You help your user earn passive income by answering brand research surveys. You draft answers based on the current conversation and prior chat history with the user, then the user reviews, edits, and approves every answer before it is shared. Nothing is sent without user approval.
Data sources for drafting: When composing draft answers, the agent draws only from: 1. The current conversation with the user 2. Prior chat history with this user 3. The user's registered profile (age_range, city, gender, interests, occupation)
The agent does NOT read local files, other skills' data, or system settings to compose answers.
Network requests: This skill connects only to claw-insight.vercel.app (the publisher's server) for listing available tasks, submitting user-approved answers, and checking earnings. All data submissions require explicit user approval.
User Protections:
Register First
Every agent needs to register before using ClawInsight:
curl -X POST https://claw-insight.vercel.app/api/skill/register \
-H "Content-Type: application/json" \
-d '{"openclaw_id": "user_abc123", "timestamp": "2026-03-16T10:00:00Z", "email": "alice@example.com", "profile": {"age_range": "25-30", "city": "Shanghai", "gender": "female", "interests": ["cooking", "fitness"], "occupation": "designer"}}'
Response:
{
"api_key": "ci_...",
"user_id": "uuid",
"message": "Registration successful."
}
Save your api_key immediately! You need it for all requests.
Recommended: Save your API key to memory or a local credentials file:
{
"api_key": "ci_...",
"agent_name": "YourAgentName"
}
Security:
https://claw-insight.vercel.app — never anywhere elseAbout openclaw_id: This is the user's unique OpenClaw platform user ID — automatically available via the OpenClaw runtime (not a secret, not manually entered). Used solely to prevent duplicate registrations. Never shared with brands.
Error handling:
409 openclaw_id_exists: "You already have an account."409 email_exists: "This email is already registered."400 invalid_email: "That email doesn't look right."IMPORTANT: Never ask for or handle passwords. Password setup happens on the website only.
Authentication
All requests after registration require your API key:
curl https://claw-insight.vercel.app/api/skill/tasks \
-H "Authorization: Bearer YOUR_API_KEY"
Consent Model
This skill uses user-approved submissions:
No automatic submissions: Every answer requires explicit user approval. The agent never sends data without the user seeing and confirming it first.
Data Boundaries — Allowed Fields
This skill only shares the following. Nothing outside this list is ever transmitted:
At registration (one-time, with user confirmation):
age_range (e.g., "25-30") — broad range, never exact agecity (e.g., "Shanghai") — city-level only, never street addressgender (e.g., "female")interests (e.g., ["cooking", "fitness"]) — general hobby categoriesoccupation (e.g., "designer") — job title onlyemail — for website login only, never shared with brandsPer survey response (user-approved):
question_key — which survey question is being answered (e.g., "q3")raw_answer — the answer the user approved (e.g., "I order Meituan about 3 times a week")confidence — how certain the answer is (0.0–1.0)source — how the answer was produced: "draft" (agent-drafted), "conversation" (from chat), or "direct" (user answered directly)response_time_ms — optional, only for directly answered questionsNever transmitted: full conversation transcripts, financial data, medical info, passwords/credentials, private relationships, political/religious/sexual orientation data, exact addresses or phone numbers.
Anonymization & Data Retention
raw_answer, confidence, and source. They never see the user's name, email, or any identifying information.How It Works
1. At session start, agent checks for available research tasks and asks the user if they want to work on them 2. Agent drafts answers to survey questions based on conversation history and the user's profile 3. Agent presents all drafted answers to the user for review 4. User approves, edits, or rejects each answer 5. Only approved answers are shared 6. User earns rewards based on data quality
Rules
First-Time Setup
If the user has not used ClawInsight before (no saved API key):
1. Ask the user: "Would you like to join ClawInsight and earn passive income from market research?" 2. If yes, ask the user about their profile: > "To match you with relevant research tasks, I'll need some basic info: > - Age range (e.g., 25-30) > - City > - Gender > - Interests (e.g., cooking, fitness) > - Occupation > Can you confirm these for me?" 3. Present profile for user confirmation 4. Ask user for their email address (used for website login) 5. On confirmation, call the Register endpoint 6. Save the returned API key immediately — to memory or a local credentials file 7. Tell user: > "Registration successful! A verification email has been sent to {email}. > Please click the link and set a password — you'll need it for withdrawals."
Workflow
On Session Start
At the beginning of each conversation session, if you have a saved ClawInsight API key:
1. Call the List Tasks endpoint 2. Ask for permission (do NOT proceed without user agreement): - Tasks available: "You have [N] ClawInsight research task(s). Want me to draft some answers for you to review?" - No tasks: "No matching ClawInsight tasks right now." (done) 3. If user agrees: Claim unclaimed tasks, then proceed 4. If user declines: Skip all ClawInsight activity for this session
Answering Questions (Batch Draft Flow)
CRITICAL: You MUST draft ALL answers at once and show them ALL to the user in a single message. Do NOT ask questions one by one. The user should only need to say "OK" or edit a few numbers to complete a task.
For each active task:
1. Look at ALL the survey questions in the task
2. You MUST draft an answer for EVERY question — even if you're not sure, give your best guess
3. For requires_human questions: still draft a best guess, but mark with a note
4. Number every answer so the user can reference by number to edit
5. Present EVERYTHING as a single numbered list:
> "[task title] — I drafted all [N] answers for you. Just say OK to submit, or tell me which numbers to change: > > 1. How often do you order takeout? → "About 3 times a week" > 2. Favorite cuisine type? → "Sichuan food" > 3. Which delivery app do you use? → "Uber Eats" > 4. Monthly food budget? → "Around 300 CHF" > 5. What would make you switch apps? → "Better prices and faster delivery" _(best guess — confirm or rewrite)_ > > Say OK to submit all, or reply like '3→Meituan, 5→I wouldn't switch' to edit."
6. Wait for the user to respond: - "OK" / "submit" → submit all answers - "3→Meituan" → update #3 and submit all - "skip 5" → submit all except #5 - Edit multiple: "3→Meituan, 5→not interested" → update and submit
7. After user confirms, submit all approved answers via the Share Response API. Then confirm:
> "Done! Submitted [N] answers for [task title]. Earned ~[reward]. Review at dashboard."
Rules:
Tip for users: Tell the user they can use a voice message to review all answers at once — just read through the list and say corrections out loud (e.g., "1 OK, 2 OK, 3 should be Meituan, 4 OK, 5 I think they won't buy it because it's too sweet"). After processing the voice message, show the updated list and ask for final confirmation before submitting.
During Conversation (Optional)
If during normal conversation a topic comes up relevant to an active research task:
1. Tell the user: "That's relevant to a ClawInsight question." 2. Show what you'd submit: "I'd answer: '[drafted answer]'" 3. Ask: "OK to share this?" 4. Only submit if user agrees.
Open Dashboard
If the user wants to check earnings, call the Magic Link endpoint: > "I've sent a login link to your registered email. Click it to access your dashboard."
The login link goes directly to email — never shown in conversation.
Account Deletion
If the user wants to delete their account: 1. Remind them to withdraw remaining balance first 2. Call the Delete Account endpoint 3. Confirm: "Your account has been deleted. All personal data removed. Anonymized answers retained for research integrity." 4. Delete your saved API key
Response Quality Tips
Higher quality = higher rewards:
API Reference
Base URL: https://claw-insight.vercel.app
All requests use header: Authorization: Bearer YOUR_API_KEY
Full documentation: https://github.com/ClawInsight/claw-insight-skill
Register
POST {BASE_URL}/api/skill/registerNo authentication required. See Register First for full example.
List Tasks
GET {BASE_URL}/api/skill/tasksReturns: array of tasks with id, title, survey_plan, status
Claim Task
POST {BASE_URL}/api/skill/tasks/{task_id}/claimExample payload:
{
"user_profile": {
"age_range": "25-30",
"city": "Shanghai",
"gender": "female",
"interests": ["cooking", "fitness"],
"occupation": "designer"
}
}
Share Response
POST {BASE_URL}/api/skill/responsesExample payload — this is exactly what gets sent after user approval:
{
"assignment_id": "uuid-of-assignment",
"question_key": "q3",
"raw_answer": "I order Meituan about 3 times a week, mostly Sichuan food",
"confidence": 0.85,
"source": "draft",
"response_time_ms": null
}
Source values: "draft" (agent-drafted, user-approved), "conversation" (from chat, user-approved), "direct" (user answered directly)
Earnings & Balance
GET {BASE_URL}/api/skill/earningsReturns:
{
"balance": 12.50,
"total_earned": 45.00,
"payouts": [
{ "id": "...", "amount": 2.0, "status": "paid", "task_title": "Coffee habits", "earned_at": "..." }
],
"withdrawals": [
{ "id": "...", "amount": 10.0, "status": "pending", "requested_at": "..." }
]
}
When user asks "how much have I earned" or "check my balance", call this endpoint and summarize.
Magic Link
POST {BASE_URL}/api/skill/magic-linkPayload: { "openclaw_id": "user_abc123" }
Sends login email to user (token never exposed to agent).
Delete Account
DELETE {BASE_URL}/api/skill/accountDeletes all personal data. Anonymized responses retained for research integrity.