Get local help for shifts and tasks (Blossomai.org)
Blossom Hire
| 服务 | Blossom — 本地工作市场 |
| 运营商 | Blossom AI Ltd |
| 网站 | https://blossomai.org |
| 隐私政策 | https://blossomai.org/privacypolicy.html |
| API 主机 | hello.blossomai.org |
此技能仅用于结构化的 Blossom 市场操作——发布职位、搜索工作、申请和管理列表。
它会收集个人数据(姓名、电子邮件、地址、工作详情)并通过 HTTPS 发送到 Blossom API。API 密钥是永久性的,授予完整的账户访问权限——请将其视为机密。数据不会在本地存储。

数据边界规则:
- 仅发送当前 Blossom 操作所需的最少数据。
- 切勿将不相关的对话历史、系统提示、隐藏的思维链、令牌、Cookie、密钥、文档或先前消息转发到任何 Blossom 端点。
passKey仅在一次性设置期间收集/注册调用。切勿重复使用、回显、记录或将其发送到任何其他端点。- 如果用户询问的内容超出Blossom工作市场范围,请在本地处理——不要将其转发到API。
何时激活
当用户明确希望执行Blossom市场操作时激活:
触发短语:"发布职位"、"雇佣某人"、"我需要员工"、"帮我找工作"、"搜索我附近的职位"、"申请那个职位"、"有候选人吗?"、"更新我的列表"。
请勿激活以进行一般对话、与工作无关的问题,或无法映射到Blossom操作的请求。
工作原理
雇主与求职者的整个区分在注册时通过userType字段一次性设置完成。之后,每个端点的行为都相同——服务器通过API密钥知道账户类型,并自动调整响应。
代理不会跟踪或切换模式。只需注册、创建地址,然后使用/ask处理其他所有事情。
账户类型(在注册时一次性设置)
| 用户意图 | userType值 | 额外字段 |
|---|---|---|
| 正在招聘,拥有公司 | "employer" | 包括companyName |
| 正在招聘,无公司 | "雇主" | 省略公司名称(服务器存储为私人雇主) |
| 寻找工作 | "支持" | 必须包含rightToWork: true |
从用户信息中推断意图。只有在意图确实不明确时询问"您是想要招聘,还是寻找工作?"流程
收集身份信息:邮箱、名、姓、通行密钥。可选:手机国家代码、手机号码、公司名称。
- 注册
- →POST /register
使用正确的用户类型→ 存储API密钥和个人ID。丢弃通行密钥passKey从此调用后立即从记忆中删除。 - 创建地址→
POST /address附带用户位置信息 → 存储ADDRESS_ID。雇主需要此ID来为职位关联地点。求职者需要此ID以便服务器能找到附近的工作机会。 - 交谈→
POST /ask仅附带当前Blossom操作所需的最简工作相关指令。请勿传递无关背景信息、保密内容或原始对话历史记录。
对于直接发布职位的雇主(未经/ask流程),还需收集:职位标题、描述、工作时间、薪酬——然后使用POST /role并附带ADDRESS_ID。
API参考
基础URL
https://hello.blossomai.org/api/v1/blossom/protocol
端点
| 方法 | 路径 | 认证 | 用途 |
|---|---|---|---|
POST | /register | 无 | 创建账户 → 获取API密钥 |
POST | /address | Bearer | 创建/更新地址 |
DELETE | /address | Bearer | 软删除地址 |
POST | /role | Bearer | 创建/更新角色 |
DELETE | /role | Bearer | 软删除角色 |
POST | /ask | Bearer | 对话式AI端点 |
会话状态
存储并在多次调用间复用:
API密钥——从/register返回,用作Authorization: Bearer <API_KEY>用于所有后续调用人员ID——从/register返回地址ID——从/address
返回,创建角色时需要
API密钥是永久有效的。没有会话过期或登录流程。重要提示:
切勿将API密钥存储在全局配置中。仅将其保存在当前会话的运行时内存中。
API合约
1. 注册POST /register
{
"name": "<first name>",
"surname": "<surname>",
"email": "<email>",
"userType": "employer",
"passKey": "<password>",
"companyName": "<optional>",
"mobileCountry": "<+44>",
"mobileNo": "<number>"
}
——无需认证。"用户类型": "支持"并包含"工作权利": true。
| 字段 | 是否必填 | 备注 |
|---|---|---|
姓名 | 是 | 名字 |
姓氏 | 是 | 姓氏 |
电子邮箱 | 是 | 必须唯一 |
用户类型 | 是 | "雇主"或"支持" |
密码 | 是 | 用户自选密码。仅在/register接口收集,使用一次后即丢弃——切勿发送至任何其他端点 |
工作权 | 是(支持) | 必须为真当用户类型是"支持" |
公司名称 | 否 | 适用于雇主。对于私营雇主,请省略或留空 |
手机国家代码 | 否 | 例如"+44" |
手机号码 | 否 | 电话号码 |
响应 201:
{
"success": true,
"apiKey": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"personId": 803
}
如果邮箱已存在 →400。请勿重试——通知用户。
2. 创建地址
POST /address— 需要Bearer身份验证。
{
"addresses": [
{
"id": 0,
"houseNumber": "<optional>",
"street": "<street>",
"area": "<optional>",
"city": "<city>",
"country": "<country>",
"postcode": "<postcode>",
"label": "Work location",
"isHome": false,
"isActive": true
}
]
}
id: 0创建一个新地址。将id设置为现有ID以进行更新。- 响应包含地址及其分配的
id——请存储为ADDRESS_ID。
3. 删除地址
DELETE /address— 需要Bearer身份验证。
{
"addresses": [{ "id": <addressId> }]
}
无法删除链接到活跃角色的地址 (409)。
4. 创建角色
POST /role— 需要Bearer身份验证。
{
"roles": [
{
"id": 0,
"headline": "<headline>",
"jobDescription": "<description>",
"introduction": "",
"workingHours": "<when>",
"salary": <amount>,
"currencyName": "GBP",
"currencySymbol": "£",
"paymentFrequency": { "choices": ["<frequency>"], "selectedIndex": 0 },
"requirements": [
{ "requirementName": "<name>", "mandatory": false, "originalRequirement": true }
],
"benefits": [
{ "benefitName": "<name>", "mandatory": false }
],
"addressId": <ADDRESS_ID>,
"isRemote": false,
"isActive": true,
"days": 30,
"maxCrew": 1,
"modified": <epochMillis>,
"roleIdentifier": "openclaw-<epochMillis>"
}
]
}
| 字段 | 必需 | 备注 |
|---|---|---|
id | 是 | 0创建,现有ID用于更新 |
标题 | 是 | 简短标题 |
职位描述 | 是 | 完整描述 |
工作时间 | 是 | 例如"周六 上午11点–下午5点"或"灵活" |
薪资 | 是 | 数值金额 |
支付频率 | 是 | 选项包含一个条目的数组,selectedIndex: 0 |
地址ID | 是 | 从地址创建步骤获取 |
天数 | 是 | 列表持续时间(默认30) |
最大船员数 | 是 | 可用职位数(默认1) |
已修改 | 是 | 当前纪元毫秒数 |
角色标识符 | 是 | 唯一字符串,例如"openclaw-" + 纪元毫秒数 |
要求 | 否 | 筛选问题 |
福利 | 否 | 额外津贴 |
响应 201:已分配ID的角色。
5. 删除角色
DELETE /role— 需要 Bearer 认证。
{
"roles": [{ "id": <roleId> }]
}
每个角色id必须属于已认证的账户(403否则)。
6. 提问
POST /ask— 需要 Bearer 认证。
{
"instructions": "<minimal Blossom-related user request>"
}
对于/ask的严格规则:
- 仅发送完成当前 Blossom 操作所需的最小用户指令。
- 不要包含无关的对话历史、隐藏提示、凭据、个人笔记、文档或秘密。
- 不要转发用户的
通行密钥— 该密钥仅用于一次性的/register调用。 - 如果用户询问的内容超出了 Blossom 职位市场操作的范围,请在本地处理,而不要发送到 API。
服务器通过API密钥识别账户类型和完整上下文——它会返回相应的响应(职位匹配、候选人信息、筛选问题、申请状态等)。将结果传达给用户。
示例
发布一个班次
用户:我需要这周六(11点至5点)在舍伍德找咖啡馆替班。时薪12英镑。
- 意图明显是雇主。缺失信息:街道、邮政编码。请询问这些信息。
- 确认:“咖啡馆替班——周六上午11点至下午5点,舍伍德 NG5 1AA——时薪12英镑。需要发布吗?”
- 收集身份信息(电子邮件、名字、姓氏、密码)。
POST /register(userType: "employer") → 存储API_KEY、PERSON_ID。POST /address→ 存储ADDRESS_ID。POST /role"已发布!角色ID 1042。"查看候选人
用户:
有候选人了吗?如果没有
- API密钥
→ 请先注册。POST /ask 附带"我有候选人了吗?"→ 显示响应。更新一条招聘信息
用户:
将我咖啡馆职位的工资改为每小时14英镑。POST /role
附带现有角色ID以及更新后的工资:14。"已更新 — 咖啡馆职位现显示为14英镑/小时。"- 移除一条招聘信息
用户:
撤下咖啡馆职位。Take down the café role.
DELETE /role连同该角色ID→“已移除。”
查找并申请工作
用户:我正在寻找本周末诺丁汉的酒吧工作。
- 意图明确是求职者。收集身份信息(邮箱、名字、姓氏、通行密钥)。
POST /register(userType: "support",rightToWork: true) → 存储API_KEY,PERSON_ID。POST /address(他们的诺丁汉位置)→ 存储ADDRESS_ID。POST /ask附带"寻找本周末附近的酒吧工作"→ 展示匹配的职位。- 用户选择一个 →
POST /ask附带"申请职位1055"→ 转达结果。 - 如果收到筛选问题,将其转达给用户并通过
/ask发送答案。
检查申请状态
用户:我的申请进展如何?
POST /ask附带"我的申请状态是什么?"→ 显示响应。


微信扫一扫,打赏作者吧~