用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/duclm1x1/Dive-Ai --skill blossom-hire命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Persistent memory system for AI agents following Model Context Protocol (MCP). Use for storing long-term memories across sessions, semantic search of past knowledge, building knowledge graphs, auto-injecting context, deduplicating memories, syncing to cloud storage. Essential for agents that need to remember decisions, solutions, preferences, and learned patterns over time.
Persistent memory system for AI agents following Model Context Protocol (MCP). Use for storing long-term memories across sessions, semantic search of past knowledge, building knowledge graphs, auto-injecting context, deduplicating memories, syncing to cloud storage. Essential for agents that need to remember decisions, solutions, preferences, and learned patterns over time.
Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.
正在显示 SKILL.md
基于 SOC 职业分类
| name | blossom-hire |
| version | 1.2.5 |
| description | Post a job, task, or paid shift to hire local help in Blossom, then check eligible candidates. |
Use this skill when the user wants to post a local paid help request (task or short shift) into Blossom, or when they want to check whether anyone has applied.
This skill creates roles via Blossom’s API and can retrieve eligible candidates later. The user can install blossom app on their mobile if they want to manage applications directly.
Use bash to call Blossom’s HTTP endpoints with curl.
Use jq to parse JSON responses.
Endpoints:
POST https://hello.blossomai.org/api/v1/pushuser (register/login + role commit)POST https://hello.blossomai.org/getPopInUpdates (retrieve candidates)curl installedjq installedActivate this skill when the user says things like:
Collect details conversationally. Do not front-load questions. If the user provides partial information, continue and only ask for what is missing.
Role details
Optional: Requirements and benefits If the user provides or requests screening questions, capture them as requirements. If the user provides perks, capture them as benefits.
Identity details Ask only when you are ready to create or check a role:
Notes:
type === "candidates" as the operator-facing list.The skill must store these values as runtime state and reuse them across calls:
Persistence rules:
POST https://hello.blossomai.org/api/v1/pushuser
Request JSON:
{
"id": 0,
"companyId": null,
"userType": "support",
"communityId": 1,
"email": "<email>",
"name": "<name>",
"surname": "<surname>",
"mobileCountry": "<+44>",
"mobileNo": "<mobile number>",
"profileImage": "system/blankprofile.jpg",
"mark": true,
"transaction": {
"transact": "register",
"passKey": "<passKey>",
"sessionKey"
If the response indicates the email already exists, do not retry registration. Proceed to login.
POST https://hello.blossomai.org/api/v1/pushuser
{
"id": 0,
"userType": "support",
"communityId": 1,
"email": "<email>",
"transaction": {
"transact": "login",
"passKey": "<passKey>"
}
}
Persist from the response:
personId = person.idsessionKey = person.transaction.sessionKeyaddressId = person.addresses[0].idPOST https://hello.blossomai.org/api/v1/pushuser
Rules:
transaction.transact = "complete"transaction.viewState = "none"role.id = 0role.mark = truerole.modified = nowMillisrole.roleIdentifier = "openclaw-" + nowMillissalary and a single paymentFrequency choice with selectedIndex = 0id field; omit it.{
"id": <personId>,
"name": "<name>",
"mobileCountry": "<+44>",
"transaction": {
"sessionKey": "<sessionKey>",
"transact": "complete",
"viewState": "none"
},
"roles": [
{
"id": 0,
"mark": true,
"headline": "<headline>",
"jobDescription": "<jobDescription>",
"introduction": "",
"workingHours": "<workingHours>",
"salary" <amount>
<addressId>
<nowMillis>
Success condition:
roles[0].id is non-zero.POST https://hello.blossomai.org/getPopInUpdates
{
"id": <personId>,
"transaction": {
"sessionKey": "<sessionKey>",
"transact": "complete"
}
}
Interpretation:
dataList is authoritative.type === "candidates" as the list to show.type === "apply" for operator-facing lists.These are safe templates. Replace placeholders before running.
API_BASE="https://hello.blossomai.org"
curl -sS "$API_BASE/api/v1/pushuser" \
-H "content-type: application/json" \
-d @- <<'JSON' | jq .
{
"id": 0,
"companyId": null,
"userType": "support",
"communityId": 1,
"email": "<email>",
"name": "<name>",
"surname": "<surname>",
"mobileCountry": "<+44>",
"mobileNo": "<mobile number>",
"profileImage": "system/blankprofile.jpg",
"mark": true,
"transaction": {
"transact": "register",
"passKey": "<passKey>",
"sessionKey": null
},
"addresses": [
{
"id": 0,
"houseNumber": "<optional>",
"street": "<street>",
"area": "<optional>",
"city": "<city>",
"state": null,
"country": "<country>",
"postcode": "<postcode>",
"label": "Task location",
"isHome": false,
"mark": true,
"isActive": ,
:
}
]
}
JSON
curl -sS "$API_BASE/api/v1/pushuser" \
-H "content-type: application/json" \
-d @- <<'JSON' | jq .
{
"id": 0,
"userType": "support",
"communityId": 1,
"email": "<email>",
"transaction": {
"transact": "login",
"passKey": "<passKey>"
}
}
JSON
Set:
PERSON_IDSESSION_KEYADDRESS_IDNOW_MILLIS (epoch millis)PERSON_ID="<personId>"
SESSION_KEY="<sessionKey>"
ADDRESS_ID="<addressId>"
NOW_MILLIS="<epochMillis>"
curl -sS "$API_BASE/api/v1/pushuser" \
-H "content-type: application/json" \
-d @- <<JSON | jq .
{
"id": ${PERSON_ID},
"name": "<name>",
"mobileCountry": "<+44>",
"transaction": {
"sessionKey": "${SESSION_KEY}",
"transact": "complete",
"viewState": "none"
},
"roles": [
{
"id": 0,
"mark": true,
"headline": "<headline>",
"jobDescription": "<jobDescription>",
"introduction": "",
"workingHours": "<workingHours>",
"salary": <amount>,
"currencyName": "GBP",
"currencySymbol": "£",
"paymentFrequency": {
"choices": ["<frequency>"],
"selectedIndex": 0
},
"requirements": [
{
"requirementName": "<requirementName>",
"mandatory": false,
"originalRequirement": true
}
],
"benefits": [
{
"benefitName": "<benefitName>",
"mandatory": false
}
],
"addressId": ${ADDRESS_ID},
"isRemote": false,
"isActive": true,
"markDelete": false,
"premium": false,
"days": 30,
"maxCrew": 1,
"modified": ${NOW_MILLIS},
"roleIdentifier": "openclaw-${NOW_MILLIS}"
}
],
"userType": "support"
}
JSON
PERSON_ID="<personId>"
SESSION_KEY="<sessionKey>"
curl -sS "$API_BASE/getPopInUpdates" \
-H "content-type: application/json" \
-d @- <<JSON | jq .
{
"id": ${PERSON_ID},
"transaction": {
"sessionKey": "${SESSION_KEY}",
"transact": "complete"
}
}
JSON
User: “I need café cover this Saturday 11–5 in Sherwood. Paying £12/hour.”
Assistant flow:
User: “Any candidates yet?”
Assistant flow:
personId/sessionKey not known, ask for identity details and bootstrap.