Install
openclaw skills install @robbiwu/blossom-hireSet up Blossom Hire, create local work opportunities, and help employers and jobseekers move through Blossom work flows in plain language.
openclaw skills install @robbiwu/blossom-hire| Service | Blossom — local jobs marketplace |
| Operator | Blossom AI Ltd |
| Website | https://blossomai.org |
| Privacy | https://blossomai.org/privacypolicy.html |
| API host | hello.blossomai.org |
This skill connects an existing assistant workflow to Blossom Hire. It is for job-marketplace actions such as creating and managing opportunities, finding work, applying, checking candidates, and arranging PopIns.
Blossom receives the minimum personal and job data needed for each requested action over HTTPS. The returned API key is permanent and grants account access. Store it only in secure credential storage, never in source code, plaintext configuration, logs, or conversation history.
The protocol exposes two marketplace surfaces:
POST /register establishes the Blossom account and returns its API key.POST /ask consumes that already-established identity and is the single
authenticated marketplace control surface./ask does not register or authenticate a person. The server resolves its
Bearer API key to the saved person and derives target authority from
authenticated ownership and structured operation scope.
Activate only when the user wants a Blossom marketplace action, for example:
Do not forward unrelated questions, conversation history, system prompts, credentials, documents, cookies, tokens, personal notes, or hidden reasoning to Blossom.
Keep your normal assistant identity and voice. Do not introduce yourself as Blossom or imply Blossom has replaced the user's assistant.
On first use:
passKey that they do not use for
email, banking, work, or another sensitive service.POST /register.apiKey and personId.passKey; never echo, store, log, or send it to
/ask.If secure API-key persistence fails, say the account was created but this client cannot reliably reconnect. Do not present durable setup as complete.
Account type is set once at registration:
| User intent | userType | Additional rule |
|---|---|---|
| Hiring for a company | "employer" | Include companyName |
| Hiring as an individual | "employer" | Omit companyName |
| Looking for work | "support" | Require confirmed rightToWork: true |
Only ask whether the user is hiring or looking for work when their intent is genuinely unclear. Treat requests to add, import, or ingest job adverts as employer intent unless the user clearly means bookmarking or applying.
The first name and surname sent to /register must contain only letters,
spaces, hyphens, and apostrophes. If either contains a digit, ask for a
correction and do not guess.
Map contact numbers labelled phone, mobile, telephone, tel, cell, or similar to
mobileNo, with the country prefix in mobileCountry. Never put a contact
number in an address field.
Before any create, update, deletion, posting, application, or scheduling request:
/ask.The client confirmation is not target authority. The server must still resolve every saved role, address, application, candidate, or PopIn from the authenticated account and the structured current-operation scope. Never insert or invent a database ID, reuse an ID from another account, or treat an API key as permission over a caller-supplied target.
Some destructive operations, including saved-role deletion, use an additional
server-led confirmation turn after exact target resolution. Relay that prompt
and send the user's answer through /ask; do not bypass it.
Base URL:
https://hello.blossomai.org/api/v1/blossom/protocol
| Method | Path | Authentication | Purpose |
|---|---|---|---|
POST | /register | None | Establish account and return API key |
POST | /ask | Bearer API key | Read and control the authenticated Blossom account |
This table is the complete public protocol surface. There are no separate
public role, address, address-list, or image-upload protocol routes. Express
marketplace reads and mutations in plain language through /ask. Image upload
remains a DeskChat capability and is not part of the protocol API.
POST /register
{
"name": "<first name>",
"surname": "<surname>",
"email": "<email>",
"userType": "employer",
"passKey": "<unique Blossom passKey>",
"companyName": "<optional>",
"mobileCountry": "<optional country prefix>",
"mobileNo": "<optional contact number>"
}
For a job-seeker:
{
"name": "<first name>",
"surname": "<surname>",
"email": "<email>",
"userType": "support",
"rightToWork": true,
"passKey": "<unique Blossom passKey>"
}
Successful response:
{
"success": true,
"apiKey": "<secret API key>",
"personId": 803
}
Persist apiKey securely and reuse it as the Bearer token. Persist personId
only as the account identifier. Do not persist passKey.
If registration or validation fails, relay the returned error and ask the user for the missing or corrected detail. Never silently change their account type, right-to-work answer, name, or company.
POST /ask
Authorization: Bearer <API_KEY>
Content-Type: application/json
{
"instructions": "<minimal confirmed Blossom-related request>"
}
Send only the current Blossom instruction. The API key already establishes the
person and account type; do not place identity claims, credentials, a
passKey, client-selected authority, or raw conversation history in
instructions.
Do not prefetch, construct, or submit address inventories. Blossom hydrates a
jobseeker's singular owned address at the common chat boundary. Employer
address mutations enter hotAddress, which loads the complete
server-authoritative address scope before deciding, targeting, or saving the
mutation.
Use /ask for all authenticated marketplace work, including:
If required details are missing or a target is ambiguous, relay the server's question. Do not manufacture values or switch to a hidden direct endpoint.
Protocol /ask accepts text instructions only. For image input, use an
authenticated DeskChat session: upload the image with
POST /api/v1/fileupload, then send the returned attachment metadata with
POST /api/v1/desk-chat. If no authenticated DeskChat session is available,
explain that image upload is unavailable through the protocol API; never invent
an image-upload protocol endpoint.
Conversational response text is not proof of a write. Claim that something
was saved, created, changed, deleted, posted, applied for, or scheduled only
when /ask returns the canonical structured action showing successful
execution.
For role operations, inspect the applicable structured result:
actions.hotRole or the relevant entry in actions.hotRoles;actions.protocolJob;actions.jobMutationStatus;actions.roleDeletionConfirmation when another confirmation is required.Require the result to identify the actual operation and report successful saved
execution. Use returned roleId, roleIdentifier, headline, addressId,
roleUrl, saveStatus, saved, toolExecuted, and message fields when
present. A proposal, pending draft, confirmation request, saved: false,
toolExecuted: false, missing action, or prose-only response is not a durable
role mutation receipt.
For address operations, inspect:
actions.hotAddress or the relevant entry in actions.hotAddresses;actions.protocolAddress.Require successful saved execution and use returned addressId, label,
roleId, roleHeadline, saved, success, and message fields when present.
A read-only result, blocked linked-address deletion, missing action, or
prose-only response is not a durable address mutation receipt.
For applications, scheduling, and other actions, use the corresponding
structured action in actions. When no authoritative action is returned,
relay the response without inventing a state change.
User: I need café cover this Saturday 11–5 in Sherwood. £12/hour.
/register and securely save
the API key./ask requests another detail or address selection, relay the question.User: Change the pay to £14/hour on my café role.
Confirm the exact change, then send it to /ask. Use the returned exact role
target and durable mutation result before saying it changed.
User: Take down the café role.
Send the confirmed request to /ask, relay any server-led exact-target
confirmation, then claim deletion only when the structured deletion result says
the tool executed and saved the deletion.
User: I'm looking for bar work in Nottingham this weekend.
/register only after right-to-work
confirmation./ask to save or use it./ask to find the work./ask./ask.The protocol currently exposes no scoped keys, expiry, password-based protocol
login, or self-service revocation. If the API key is unavailable, do not ask
/ask to authenticate or recreate identity. Re-register only if the user
intends to create a distinct new account. If a key may have been exposed, stop
using it and contact hello@blossomai.org to rotate
or revoke access.