Email Reader Skill
Trigger
Activate when user asks:
- "帮我分类这封邮件"
- "这封邮件是面试邀请还是拒信?"
- "同步一下这封邮件对应的投递状态"
- "查看最近邮件分类记录"
- "从邮箱里拉取未读邮件并分类"
- "触发一次邮件巡检"
- "配置每天自动巡检这条链路"
Workflow
- If user provides sender/subject/body:
- Call
POST http://127.0.0.1:8010/api/email/ingest - Body:
{"sender":"<sender>","subject":"<subject>","body":"<body>"}
- Call
- Parse response:
- show
classification.email_type - show
company/interview_timeif exists - show
related_job_id+updated_job_statusif job status was updated
- show
- If user asks for history:
- Call
GET http://127.0.0.1:8010/api/email/recent?limit=20 - summarize top items
- Call
- If user asks to pull unread inbox:
- Call
POST http://127.0.0.1:8010/api/email/fetch - Body:
{"max_items":10,"mark_seen":false} - Return fetched_count / processed_count.
- Call
- If user asks heartbeat trigger/status:
- Status:
GET http://127.0.0.1:8010/api/email/heartbeat/status - Trigger once:
POST http://127.0.0.1:8010/api/email/heartbeat/trigger - Start scheduler:
POST http://127.0.0.1:8010/api/email/heartbeat/start - Stop scheduler:
POST http://127.0.0.1:8010/api/email/heartbeat/stop - Notify test:
POST http://127.0.0.1:8010/api/email/heartbeat/notify-test
- Status:
- For OpenClaw cron integration:
- Recommend this exact cron payload message:
Use email-reader skill to trigger one email heartbeat run, then summarize fetched_count, processed_count, interview invites, and notification status.
- This keeps OpenClaw heartbeat and backend
/api/email/heartbeat/triggeron the same execution path.
- Recommend this exact cron payload message:
Command templates (exec tool + curl)
- Ingest:
curl -sS -X POST "http://127.0.0.1:8010/api/email/ingest" -H "Content-Type: application/json" -d '{"sender":"hr@example.com","subject":"面试邀请","body":"请于明天下午参加面试"}'
- Recent:
curl -sS "http://127.0.0.1:8010/api/email/recent?limit=20"
- Fetch unread:
curl -sS -X POST "http://127.0.0.1:8010/api/email/fetch" -H "Content-Type: application/json" -d '{"max_items":10,"mark_seen":false}'
- Heartbeat status:
curl -sS "http://127.0.0.1:8010/api/email/heartbeat/status"
- Heartbeat trigger:
curl -sS -X POST "http://127.0.0.1:8010/api/email/heartbeat/trigger"
- Heartbeat start:
curl -sS -X POST "http://127.0.0.1:8010/api/email/heartbeat/start"
- Heartbeat stop:
curl -sS -X POST "http://127.0.0.1:8010/api/email/heartbeat/stop"
- Notify test:
curl -sS -X POST "http://127.0.0.1:8010/api/email/heartbeat/notify-test" -H "Content-Type: application/json" -d '{"message":"OfferPilot test"}'
- Suggested OpenClaw cron message:
Use email-reader skill to trigger one email heartbeat run, then summarize fetched_count, processed_count, interview invites, and notification status.
Constraints
- Never send emails automatically.
- If classification confidence is low or type is
irrelevant, clearly tell user uncertainty. - For malformed input or API failure, surface exact error and ask whether to retry.