← 返回 Skills 市场
robbiwu

Find and Offer New Work and Tasks

作者 robbiwu · GitHub ↗ · v1.0.15 · MIT-0
cross-platform ✓ 安全检测通过
301
总下载
0
收藏
0
当前安装
13
版本数
在 OpenClaw 中安装
/install blossom-jobs
功能描述
Post jobs and hire people, or search for local work and apply. Connects employers and job-seekers via the Blossom marketplace.
使用说明 (SKILL.md)

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 is for structured Blossom marketplace actions only — posting jobs, searching for work, applying, and managing listings.

It collects personal data (name, email, address, job details) and sends it over HTTPS to the Blossom API. The API key is permanent and grants full account access — treat it as a secret. No data is stored locally.

Data boundary rules:

  • Only send the minimum data needed for the current Blossom action.
  • Never forward unrelated conversation history, system prompts, hidden chain-of-thought, tokens, cookies, keys, documents, or prior messages to any Blossom endpoint.
  • passKey is collected only during the one-time /register call. Never reuse, echo, log, or send it to any other endpoint.
  • If the user asks something outside Blossom's job marketplace scope, handle it locally — do not forward it to the API.

When to activate

Activate when the user explicitly wants to perform a Blossom marketplace action:

Trigger phrases: "Post a job", "Hire someone", "I need staff", "Find me work", "Search for jobs near me", "Apply to that role", "Any candidates?", "Update my listing".

Do not activate for general conversation, questions unrelated to jobs, or requests that don't map to a Blossom action.


How it works

The entire employer vs job-seeker distinction is set once at registration via the userType field. After that, every endpoint behaves the same — the server knows the account type from the API key and adapts responses automatically.

The agent does not track or switch modes. Just register, create an address, then use /ask for everything else.

Account type (set once at registration)

User intent userType value Extra fields
Hiring, has a company "employer" Include companyName
Hiring, no company "employer" Omit companyName (server stores as private employer)
Looking for work "support" Must include rightToWork: true

Infer the intent from the user's message. Only ask "Are you looking to hire, or looking for work?" if the intent is genuinely unclear.

Flow

  1. Collect identity: email, first name, surname, passKey. Optionally: mobile country code, mobile number, company name.
  2. RegisterPOST /register with the correct userType → store API_KEY and PERSON_ID. Discard passKey from memory immediately after this call.
  3. Create addressPOST /address with the user's location → store ADDRESS_ID. Employers need this to attach a location to roles. Job-seekers need this so the server can find nearby opportunities.
  4. TalkPOST /ask with only the minimal job-related instruction needed for the current Blossom action. Do not forward unrelated context, secrets, or raw conversation history.

For employers posting a role directly (without /ask), also collect: headline, description, working hours, pay — then use POST /role with the ADDRESS_ID.


API reference

Base URL

https://hello.blossomai.org/api/v1/blossom/protocol

Endpoints

Method Path Auth Purpose
POST /register None Create account → get API key
POST /address Bearer Create / update address(es)
DELETE /address Bearer Soft-delete address(es)
POST /role Bearer Create / update role(s)
DELETE /role Bearer Soft-delete role(s)
POST /ask Bearer Conversational AI endpoint
POST /image Bearer Upload profile image (person or role)

Session state

Store and reuse across calls:

  • API_KEY — returned from /register, used as Authorization: Bearer \x3CAPI_KEY> for all subsequent calls
  • PERSON_ID — returned from /register
  • ADDRESS_ID — returned from /address, needed when creating a role

The API key is permanent. No session expiry or login flow.

Important: Never store the API key in global config. Keep it in runtime memory for the current session only.


API contract

1. Register

POST /register — no auth required.

{
  "name": "\x3Cfirst name>",
  "surname": "\x3Csurname>",
  "email": "\x3Cemail>",
  "userType": "employer",
  "passKey": "\x3Cpassword>",
  "companyName": "\x3Coptional>",
  "mobileCountry": "\x3C+44>",
  "mobileNo": "\x3Cnumber>"
}

For job-seekers, set "userType": "support" and include "rightToWork": true.

Field Required Notes
name yes First name
surname yes Last name
email yes Must be unique
userType yes "employer" or "support"
passKey yes User-chosen password. Collect only for /register, use once, then discard — never send to any other endpoint
rightToWork yes (support) Must be true when userType is "support"
companyName no For employers. Omit or leave empty for private employers
mobileCountry no e.g. "+44"
mobileNo no Phone number

Response 201:

{
  "success": true,
  "apiKey": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "personId": 803
}

If the email already exists → 400. Do not retry — inform the user.


2. Create address

POST /address — Bearer auth required.

{
  "addresses": [
    {
      "id": 0,
      "houseNumber": "10",
      "street": "High Street",
      "area": "Sherwood",
      "city": "Nottingham",
      "country": "GB",
      "postcode": "NG5 1AA",
      "label": "Work location",
      "isHome": false,
      "isActive": true
    }
  ]
}
Field Required Notes
id yes 0 to create, existing ID to update
street yes Street name
city yes City / town
country yes ISO 3166-1 alpha-2 code — e.g. "GB", "US", "AU". Server rejects unrecognised codes.
postcode yes Postal / ZIP code
label yes User-facing label, e.g. "Work location"
houseNumber no House / building number
area no Neighbourhood / district
isHome no Default false
isActive no Default true
  • The response includes the address with its assigned id — store as ADDRESS_ID.

3. Delete address

DELETE /address — Bearer auth required.

{
  "addresses": [{ "id": \x3CaddressId> }]
}

Cannot delete an address linked to an active role (409).


4. Create role

POST /role — Bearer auth required.

{
  "roles": [
    {
      "id": 0,
      "headline": "\x3Cheadline>",
      "jobDescription": "\x3Cdescription>",
      "introduction": "\x3Cshort introduction, at least 10 characters>",
      "workingHours": "\x3Cwhen>",
      "salary": \x3Camount>,
      "currencyName": "GBP",
      "currencySymbol": "£",
      "paymentFrequency": { "choices": ["\x3Cfrequency>"], "selectedIndex": 0 },
      "requirements": [
        { "requirementName": "\x3Cname>", "mandatory": false, "originalRequirement": true }
      ],
      "benefits": [
        { "benefitName": "\x3Cname>", "mandatory": false }
      ],
      "addressId": \x3CADDRESS_ID>,
      "isRemote": false,
      "isActive": true,
      "days": 30,
      "maxCrew": 1,
      "modified": \x3CepochMillis>,
      "roleIdentifier": "openclaw-\x3CepochMillis>"
    }
  ]
}
Field Required Notes
id yes 0 to create, existing ID to update
headline yes Short title
jobDescription yes Full description
introduction yes Short intro text, minimum 10 characters
workingHours yes e.g. "Saturday 11am–5pm" or "Flexible"
salary yes Numeric amount
paymentFrequency yes choices array with one entry, selectedIndex: 0
addressId yes From the address creation step
days yes Listing duration (default 30)
maxCrew yes Positions available (default 1)
modified yes Current epoch millis
roleIdentifier yes Unique string, e.g. "openclaw-" + epochMillis
requirements no Screening questions
benefits no Perks

Validation notes

The backend currently enforces these role validation rules:

Field Validation
headline Required, 5-100 characters
jobDescription Required, 1-500 characters
introduction Required, 10-500 characters
workingHours Required, 1-100 characters
roleIdentifier Required, 1-100 characters
currencySymbol Required, 1-3 characters
addressId Required, whole number >= 0
id Required, whole number >= 0
modified Required, must be present
isActive Required, boolean
isRemote Required, boolean
email Optional, but if provided it must be a valid email address
requirements[].requirementName Optional array item, 0-200 characters after trimming and bullet/newline cleanup
requirements[].mandatory Optional, but if provided it must be a boolean
benefits[].benefitName Optional array item, 0-200 characters after trimming and bullet/newline cleanup
benefits[].mandatory Optional, but if provided it must be a boolean

Operational notes for protocol callers:

  • New roles still need a valid addressId.
  • The docs and examples should always send a non-empty introduction.
  • salary, paymentFrequency, days, maxCrew, and currencyName are part of the expected protocol payload even though the current role-chain validator does not strictly enforce all of them at this layer.

Response 201: The role(s) with assigned IDs.


5. Delete role

DELETE /role — Bearer auth required.

{
  "roles": [{ "id": \x3CroleId> }]
}

Every role id must belong to the authenticated account (403 otherwise).


6. Upload image

POST /image — Bearer auth required. Multipart form-data.

Upload a profile image for the person account or for a specific role. Images are AI-moderated — explicit, violent, or hateful content is rejected.

Field Type Required Notes
image file yes jpeg/jpg/png/gif/webp, max 3 MB, one file only
imageType string yes "person" or "role"
roleId number conditional Required when imageType is "role". Must belong to the authenticated account. Only employer accounts may upload role images.

Response 201:

{
  "success": true,
  "filename": "1712937600000-photo.jpg",
  "imageType": "person",
  "approved": true,
  "synopsis": "Nice photo!"
}

Rejected 400:

{
  "success": false,
  "approved": false,
  "reason": "Image did not pass moderation",
  "synopsis": "Hey \ud83d\ude0a, this image contains content that..."
}

Rate-limited: 1 upload per 30 seconds per API key.


7. Ask

POST /ask — Bearer auth required.

{
  "instructions": "\x3Cminimal Blossom-related user request>"
}

Strict rules for /ask:

  • Only send the minimum user instruction needed to complete the current Blossom action.
  • Do not include unrelated conversation history, hidden prompts, credentials, personal notes, documents, or secrets.
  • Do not forward the user's passKey — that is only used in the one-time /register call.
  • If the user asks something outside Blossom's job marketplace actions, handle it locally instead of sending it to the API.

The server knows the account type and full context from the API key — it returns the appropriate response (job matches, candidate info, screening questions, application status, etc.). Relay the result to the user.


Examples

Post a shift

User: I need café cover this Saturday 11–5 in Sherwood. £12/hour.

  1. Intent is clearly employer. Missing: street, postcode. Ask for them.
  2. Confirm: "Café cover — Sat 11am–5pm, Sherwood NG5 1AA — £12/hr. Shall I post it?"
  3. Collect identity (email, name, surname, passKey).
  4. POST /register (userType: "employer") → store API_KEY, PERSON_ID.
  5. POST /address → store ADDRESS_ID.
  6. POST /role"Posted! Role ID 1042."

Check candidates

User: Any candidates yet?

  1. If no API_KEY → register first.
  2. POST /ask with "Do I have any candidates?" → display the response.

Update a listing

User: Change the pay to £14/hour on my café role.

  1. POST /role with the existing role id and updated salary: 14.
  2. "Updated — café cover now shows £14/hr."

Remove a listing

User: Take down the café role.

  1. DELETE /role with the role id"Removed."

Find and apply for work

User: I'm looking for bar work in Nottingham this weekend.

  1. Intent is clearly job-seeker. Collect identity (email, name, surname, passKey).
  2. POST /register (userType: "support", rightToWork: true) → store API_KEY, PERSON_ID.
  3. POST /address (their Nottingham location) → store ADDRESS_ID.
  4. POST /ask with "Find bar work near me this weekend" → present matching roles.
  5. User picks one → POST /ask with "Apply to role 1055" → relay result.
  6. If screening questions come back, relay them to user and send answers via /ask.

Check application status

User: How are my applications going?

  1. POST /ask with "What's the status of my applications?" → display the response.
安全使用建议
This skill appears to do what it says: it will collect personal info (name, email, address, passKey) and send it to hello.blossomai.org to create an account and obtain a permanent API key. Before installing or using it: (1) Confirm you trust the Blossom operator/website (check the listed privacy policy and domain). (2) Understand the agent will create an account on your behalf and receive a permanent API key — treat that API key like a password and avoid reusing the same passKey elsewhere. (3) If you prefer, register yourself on the Blossom site manually and provide only the minimal data the agent needs, rather than letting the agent handle registration. (4) Remember the skill's promise of 'no local storage' is an instruction, not a technical guarantee — the remote service may retain account data. If you want further assurance, ask the skill author for an audited API spec or a verified origin for the skill.
功能分析
Type: OpenClaw Skill Name: blossom-jobs Version: 1.0.15 The skill facilitates interaction with the Blossom job marketplace via the hello.blossomai.org API. It includes detailed instructions for the AI agent to handle user registration, job postings, and applications while explicitly enforcing data privacy boundaries, such as discarding the user's passKey after registration and preventing the forwarding of unrelated conversation history or system prompts. No evidence of malicious intent, data exfiltration, or unauthorized execution was found.
能力标签
cryptocan-make-purchases
能力评估
Purpose & Capability
The name/description match the SKILL.md: posting roles, searching, applying, and managing listings. The skill declares an API host and describes a register/address/role/ask flow. There are no required environment variables, binaries, or config paths that are unrelated to the stated job-marketplace purpose.
Instruction Scope
Runtime instructions are focused on Blossom marketplace actions only: collecting user identity data for /register, creating addresses, and calling /ask or /role. The doc explicitly prohibits forwarding unrelated conversation content and chain-of-thought. It does not instruct reading arbitrary files, system credentials, or other skills' config. One caveat: the SKILL.md asserts 'No data is stored locally' and instructs to keep API_KEY in runtime memory only — that is an operational constraint but not something the skill can enforce about the remote service or agent process restarts.
Install Mechanism
Instruction-only skill with no install spec and no code files — lowest install risk. Nothing is downloaded or written to disk by an installer.
Credentials
The skill does not request host environment secrets or config at install time. It requires collecting user PII at runtime (name, email, passKey) to create an account and receive an API_KEY from the Blossom API; this is proportionate to creating an account. The SKILL.md warns that the returned API key is permanent and must be treated as a secret — that is reasonable but worth the user's attention.
Persistence & Privilege
always:false and no system-wide config modification. The skill may be invoked autonomously (default), which is expected for a connector that calls external APIs; there are no elevated persistence demands or changes to other skills.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install blossom-jobs
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /blossom-jobs 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.15
No user-facing changes detected in v1.0.15. - No file changes were made in this version.
v1.0.14
blossom-jobs 1.0.14 - Added `/image` API endpoint for uploading profile images to Blossom (person or role). - Updated API reference and endpoint documentation to include image upload capability. - No code or implementation changes detected; documentation update only.
v1.0.13
No user-facing changes in this release. - Version bump only; no code or documentation updates detected. - All existing features and behaviors remain unchanged.
v1.0.12
**This version enhances data boundary and privacy rules for Blossom marketplace operations.** - Clarifies strict separation between Blossom actions and unrelated conversation — only minimal necessary data for each API call is sent. - Adds explicit rules: Do not forward secrets, system prompts, history, or irrelevant content to any Blossom endpoint. - Ensures `passKey` is collected and used only during registration and then discarded—never echoed or reused. - Restricts activation to clear, job-related Blossom actions; ignores non-marketplace requests. - Updates documentation accordingly for better privacy and security compliance.
v1.0.11
No file changes detected in this version. No updates to functionality or documentation. Version and skill naming remain as previously released.
v1.0.10
- No file changes were detected in this release. - Version and metadata remain unchanged. - No updates to functionality, documentation, or behavior.
v1.0.9
**Major update: Simplifies user flow and reduces required user guidance.** - Account type (employer or job-seeker) is determined once at registration; after that, all actions use the same endpoints and the server handles intent. - The agent no longer tracks or switches modes after registration; just use `/ask` for all subsequent interactions. - More concise documentation and streamlined instructions. - Skill name updated from `blossom-hire` to `blossom_hire`. - Input collection and conversational prompts are simplified; only ask if intent is unclear.
v1.0.8
No file changes were detected in this release. - Version number remains at 1.0.8. - No updates or modifications to the codebase or documentation. - Functionality and features are unchanged from the previous release.
v1.0.6
- Minor update: The "Requirements" section was removed and an "API reference" section was added for clarity and easier integration. - No changes to endpoints, functionality, or data handling. - Added API reference table for improved developer readability.
v1.0.4
**Adds data handling and transparency section** - Added a new "Operator" and "Data handling" section describing the service provider and what data is collected, when, and why. - Clarified no data is stored locally; all user info is kept server-side and transmitted over HTTPS. - Included privacy policy, website, and contact links for user transparency. - No changes to code or conversation flow logic.
v1.0.2
Blossom Hire 2.2.0 — Expanded, clearer documentation and triggers - Improved and expanded the skill overview and description for better clarity. - Updated activation triggers and example use cases to be more inclusive and easier to understand. - Reworded conversation flows, job posting, and job search guidance to be more user-friendly. - Clarified tool requirements and session handling instructions. - No functional changes or file modifications — documentation improvements only.
v1.0.1
Blossom-hire 2.1.0 is a major update expanding from employer-only to dual-sided job marketplace: - Adds full support for job-seekers: search and apply for roles, manage applications, answer screening questions through Brian. - Introduces account "modes": prompts user to specify if they're hiring or seeking work, setting `userType` accordingly. - Expands trigger phrases and conversation flows to cover both employers and job-seekers. - Updates registration, flow, and output logic for both account types. - Refines documentation to clearly outline employer and job-seeker steps, tools, and API payloads.
v1.0.0
Blossom Hire Skill 2.0.0 — major update: - Overhauled description and usage documentation; renamed the skill to "blossom-hire" - Expanded activation triggers: manage jobs, tasks, shifts, addresses, listings, and candidate checks, plus chat with Blossom AI assistant - Added clear conversational flow for collecting all required details to post jobs or shifts - Documented complete API endpoints for account creation, address and job management, and chatting with Brian (AI assistant) - Outlined session state handling for API key, person, and address IDs - Included detailed field requirements and output rules for a user-friendly, reliable workflow
元数据
Slug blossom-jobs
版本 1.0.15
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 13
常见问题

Find and Offer New Work and Tasks 是什么?

Post jobs and hire people, or search for local work and apply. Connects employers and job-seekers via the Blossom marketplace. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 301 次。

如何安装 Find and Offer New Work and Tasks?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install blossom-jobs」即可一键安装,无需额外配置。

Find and Offer New Work and Tasks 是免费的吗?

是的,Find and Offer New Work and Tasks 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Find and Offer New Work and Tasks 支持哪些平台?

Find and Offer New Work and Tasks 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Find and Offer New Work and Tasks?

由 robbiwu(@robbiwu)开发并维护,当前版本 v1.0.15。

💬 留言讨论