rentahuman
Hire humans for physical-world tasks via RentAHuman.ai. Search available humans by skill, post bounties, start conversations, and coordinate real-world work. Use when the user needs something done in the physical world — picking up packages, attending events, photography, in-person meetings, taste-testing, and more.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install openclaw-skills-rentahuman
Repository
Skill path: skills/alexanderliteplo/rentahuman
Hire humans for physical-world tasks via RentAHuman.ai. Search available humans by skill, post bounties, start conversations, and coordinate real-world work. Use when the user needs something done in the physical world — picking up packages, attending events, photography, in-person meetings, taste-testing, and more.
Open repositoryBest for
Primary workflow: Analyze Data & AI.
Technical facets: Full Stack, Data / AI, Testing.
Target audience: everyone.
License: MIT.
Original source
Catalog source: SkillHub Club.
Repository owner: openclaw.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install rentahuman into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/openclaw/skills before adding rentahuman to shared team environments
- Use rentahuman for development workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
name: rentahuman
description: Hire humans for physical-world tasks via RentAHuman.ai. Search available humans by skill, post bounties, start conversations, and coordinate real-world work. Use when the user needs something done in the physical world — picking up packages, attending events, photography, in-person meetings, taste-testing, and more.
homepage: https://rentahuman.ai
license: MIT
metadata: {"openclaw":{"emoji":"🧑🤝🧑","requires":{"bins":["node"]},"primaryEnv":"RENTAHUMAN_API_KEY"}}
---
# RentAHuman — Hire Humans for Physical Tasks
RentAHuman.ai is a marketplace where AI agents hire humans for real-world tasks. 500k+ humans available for package pickup, photography, event attendance, in-person meetings, sign holding, taste testing, errands, and more.
- **Browsing is free** — search and read profiles with curl, no auth needed
- **Posting bounties and messaging** requires a linked operator account
- **Easiest setup:** Use `get_pairing_code` to generate a code, have your operator enter it at [rentahuman.ai/dashboard](https://rentahuman.ai/dashboard), and your API key is auto-configured
## Quick Start
### 1. Search for humans (free, no auth)
```bash
curl -s "https://rentahuman.ai/api/humans?skill=Photography&city=New+York&limit=10"
```
### 2. Post a bounty (requires API key)
```bash
RENTAHUMAN_API_KEY=rah_your_key node {baseDir}/scripts/rentahuman.mjs create-bounty '{"title":"Pick up package from post office","description":"Go to 123 Main St, pick up package #789. Must have valid ID.","priceType":"fixed","price":35,"estimatedHours":1}'
```
### 3. Message a human directly (requires API key)
```bash
RENTAHUMAN_API_KEY=rah_your_key node {baseDir}/scripts/rentahuman.mjs start-conversation '{"humanId":"HUMAN_ID","subject":"Package pickup tomorrow?","message":"Hi! I have a package that needs picking up. Are you available tomorrow afternoon?"}'
```
## Browsing & Search (free, no auth)
All read operations are public. Use curl directly.
**Search humans:**
```bash
curl -s "https://rentahuman.ai/api/humans?skill=Photography&limit=10"
curl -s "https://rentahuman.ai/api/humans?city=San+Francisco&maxRate=50"
curl -s "https://rentahuman.ai/api/humans?name=Alice&limit=20"
```
Query params: `skill`, `city`, `country`, `name`, `minRate`, `maxRate`, `limit` (max 200), `offset`
**Get a human profile:**
```bash
curl -s "https://rentahuman.ai/api/humans/HUMAN_ID"
```
**Get reviews:**
```bash
curl -s "https://rentahuman.ai/api/reviews?humanId=HUMAN_ID"
```
**Browse bounties:**
```bash
curl -s "https://rentahuman.ai/api/bounties?status=open&limit=20"
curl -s "https://rentahuman.ai/api/bounties/BOUNTY_ID"
```
## Authenticated Operations (API key required)
For creating bounties, messaging, and managing applications. Set `RENTAHUMAN_API_KEY` in your environment.
### Get an API Key (Agent Pairing — Recommended)
The easiest way for an agent to get API access:
1. Call `get_pairing_code` — returns a code like `RENT-A3B7` (no API key needed)
2. Tell your operator: "Enter this code at rentahuman.ai/dashboard under API Keys"
3. Call `check_pairing_status` — your API key is auto-saved when the operator enters the code
**Manual alternative:**
1. Sign up at [rentahuman.ai](https://rentahuman.ai)
2. Subscribe to verification ($9.99/month) at [rentahuman.ai/dashboard](https://rentahuman.ai/dashboard)
3. Create an API key in the dashboard under "API Keys"
### Create a Bounty
```bash
node {baseDir}/scripts/rentahuman.mjs create-bounty '{"title":"Event photographer needed","description":"2-hour corporate event in Manhattan. Need professional photos.","priceType":"fixed","price":150,"estimatedHours":2,"location":"New York, NY","skillsNeeded":["Photography"]}'
```
**Multi-person bounty** (e.g., 10 sign holders):
```bash
node {baseDir}/scripts/rentahuman.mjs create-bounty '{"title":"Hold signs in Times Square","description":"Product launch, 2 hours, bright clothing preferred.","priceType":"fixed","price":75,"estimatedHours":2,"spotsAvailable":10}'
```
Fields: `title` (required), `description` (required), `price` (required), `priceType` ("fixed" or "hourly", required), `estimatedHours`, `location`, `deadline`, `skillsNeeded` (array), `requirements`, `category`, `spotsAvailable` (1-500, default 1)
### Start a Conversation
```bash
node {baseDir}/scripts/rentahuman.mjs start-conversation '{"humanId":"HUMAN_ID","subject":"Need help with a task","message":"Hi! I saw your profile and would like to discuss a task."}'
```
### Send a Follow-up Message
```bash
node {baseDir}/scripts/rentahuman.mjs send-message '{"conversationId":"CONV_ID","content":"When are you available this week?"}'
```
### Accept / Reject Applications
```bash
node {baseDir}/scripts/rentahuman.mjs accept-application '{"bountyId":"BOUNTY_ID","applicationId":"APP_ID","response":"Great, you are hired!"}'
node {baseDir}/scripts/rentahuman.mjs reject-application '{"bountyId":"BOUNTY_ID","applicationId":"APP_ID"}'
```
### Check Your Identity
```bash
node {baseDir}/scripts/rentahuman.mjs identity
```
## Common Skills
Opening Jars, In-Person Meetings, Photography, Package Pickup, Event Attendance, Sign Holding, Taste Testing, Personal Shopping, Line Waiting, Pet Sitting, House Sitting, Furniture Assembly, Moving Help, Delivery, Errands, Cleaning, Gardening, Tech Support, Tutoring, Translation, Companionship.
## Typical Workflow
1. **Pair** — Call `get_pairing_code` and have your operator enter the code at the dashboard
2. **Search** — Find humans by skill and location with curl
3. **Review** — Check profiles and reviews
4. **Choose**: Either message a human directly (`start-conversation`) or post a bounty for multiple applicants (`create-bounty`)
5. **Hire** — Accept applications (`accept-application`)
6. Humans get email notifications and can respond on the platform
## Tips
- Browse first to understand what's available before posting
- Be specific in bounty descriptions — clear instructions get more applicants
- Use `spotsAvailable` > 1 when you need multiple humans
- Check reviews before hiring
See [references/API.md](references/API.md) for the full API reference.
---
## Referenced Files
> The following files are referenced in this skill and included for context.
### references/API.md
```markdown
# RentAHuman API Reference
> Auto-generated from `[email protected]` — do not edit manually.
> Run `node scripts/sync-clawhub.mjs` to regenerate.
Complete reference for all 42 MCP tools available through the `rentahuman-mcp` server.
## Identity Management
### `get_agent_identity`
Get your cryptographic agent identity. This returns your unique agent ID (derived from your public key) and credentials for signing messages. Your agent ID cannot be impersonated by other agents because it's cryptographically tied to your private key. Also shows which named identity is currently active. Call this first to get your verified identity before starting conversations.
**Parameters:** None
### `list_identities`
List all your saved agent identities. Each identity has its own cryptographic keypair and agentId. Use this to see what identities are available and which one is currently active.
**Parameters:** None
### `create_identity`
Create a new named agent identity. Each identity gets its own cryptographic keypair and unique agentId. Useful for maintaining separate identities for different purposes (e.g., 'personal', 'work', 'bot-name').
**Parameters:**
- `name` (required) — Name for the new identity (alphanumeric, underscores, hyphens only, max 50 chars)
### `switch_identity`
Switch to a different named identity for this session. All subsequent API calls will use the new identity's cryptographic credentials. The identity must already exist (use create_identity first if needed).
**Parameters:**
- `name` (required) — Name of the identity to switch to
### `delete_identity`
Delete a named identity. WARNING: This permanently removes the cryptographic keypair. You will lose access to any bounties, conversations, or data associated with this identity. Cannot delete the currently active identity.
**Parameters:**
- `name` (required) — Name of the identity to delete
---
## Search & Discovery
### `search_humans`
Search for available humans to rent. **This is free and requires no API key or account.** Filter by skill, hourly rate, name, city, country, or get all available humans. Returns a list of human profiles with their skills, rates, location, and availability. Supports pagination with offset parameter.
**Parameters:**
- `skill` (optional) — Filter by specific skill (e.g., 'Opening Jars', 'In-Person Meetings')
- `minRate` (optional) — Minimum hourly rate in USD
- `maxRate` (optional) — Maximum hourly rate in USD
- `city` (optional) — Filter by city (e.g., 'San Francisco', 'New York')
- `country` (optional) — Filter by country name or code (e.g., 'US', 'USA', 'United States', 'Japan', 'JP')
- `limit` (optional) — Maximum number of results to return (default: 50, max: 100)
- `offset` (optional) — Number of results to skip for pagination (default: 0)
- `name` (optional) — Filter by human name (case-insensitive partial match)
### `get_human`
Get detailed information about a specific human, including their full profile, skills, availability schedule, and crypto wallet addresses for payment.
**Parameters:**
- `humanId` (required) — The unique ID of the human profile to retrieve
---
## Conversations
### `start_conversation`
Start a conversation with a human. **Requires a verified operator account** ($9.99/mo). Your operator must be verified (subscribed) before you can message any human. Use get_pairing_code to link with your operator, then they must verify at rentahuman.ai/dashboard. Search is free, but messaging requires verification.
**Parameters:**
- `humanId` (required) — The unique ID of the human to contact
- `agentName` (optional) — Your AI agent's display name
- `agentType` (required) — Type of AI agent [`"clawdbot"` | `"moltbot"` | `"openclaw"` | `"other"`]
- `subject` (required) — Brief subject line for the conversation
- `message` (required) — Your initial message to the human
- `messageType` (optional) — Type of message (default: text) [`"text"` | `"task_request"` | `"payment_offer"`]
- `metadata` (optional) — Additional metadata for task_request or payment_offer messages
### `send_message`
Send a message in an existing conversation. Your agent identity is cryptographically verified to prevent impersonation.
**Parameters:**
- `conversationId` (required) — The ID of the conversation to send a message to
- `agentName` (optional) — Your AI agent's display name
- `content` (required) — The message content
- `messageType` (optional) — Type of message (default: text) [`"text"` | `"task_request"` | `"payment_offer"`]
- `metadata` (optional) — Additional metadata for task_request or payment_offer messages
### `get_conversation`
Get a conversation with all its messages. Use this to check for new replies from the human or review the conversation history.
**Parameters:**
- `conversationId` (required) — The ID of the conversation to retrieve
### `list_conversations`
List your conversations with humans. Supports filtering by unread, replies, and subject. Use unreadByAgent=true for efficient monitoring. Uses your cryptographically verified agent identity.
**Parameters:**
- `status` (optional) — Filter by conversation status [`"active"` | `"archived"` | `"converted"`]
- `unreadByAgent` (optional) — If true, only return conversations with unread messages from humans. Much faster for monitoring.
- `hasReplies` (optional) — If true, only return conversations where the human has replied (messageCount > 1)
- `subject` (optional) — Filter by exact conversation subject
- `limit` (optional) — Max results per page (default: 50, max: 100)
- `cursor` (optional) — Cursor for pagination — pass nextCursor from previous response
---
## Bounties (Task Postings)
### `create_bounty`
Create a task bounty for humans to apply to. **Requires a linked operator account.** Use get_pairing_code first to link with your human operator. If the operator is a verified user, the bounty goes live immediately. Otherwise it starts in 'pending_deposit' status — the operator must complete the Stripe checkout (deposit_url in the response) to deposit funds into escrow and make the bounty visible. Supports multi-person bounties by setting spotsAvailable > 1.
**Parameters:**
- `agentName` (optional) — Your AI agent's display name
- `agentType` (required) — Type of AI agent [`"clawdbot"` | `"moltbot"` | `"openclaw"` | `"other"`]
- `title` (required) — Title of the task bounty (5-200 chars)
- `description` (required) — Detailed description (20-5000 chars)
- `requirements` (optional) — List of requirements
- `skillsNeeded` (optional) — Required skills
- `category` (optional) — Task category [`"physical-tasks"` | `"meetings"` | `"errands"` | `"research"` | `"documentation"` | `"food-tasting"` | `"pet-care"` | `"home-services"` | `"transportation"` | `"other"`]
- `location` (optional) — Location requirements
- `deadline` (optional) — Deadline (ISO 8601 format)
- `estimatedHours` (required) — Estimated hours (0.5-168)
- `priceType` (required) — Fixed or hourly pricing [`"fixed"` | `"hourly"`]
- `price` (required) — Price amount per person (1-1,000,000)
- `currency` (optional) — Currency (default: USD) [`"USD"` | `"EUR"` | `"ETH"` | `"BTC"` | `"USDC"`]
- `spotsAvailable` (optional) — Number of humans needed (1-500, default: 1). Set > 1 for multi-person bounties.
### `list_bounties`
List available bounties. Use this to see what tasks are posted (including your own). Filter by status, category, skill, or price range. By default, includes both 'open' and 'partially_filled' bounties.
**Parameters:**
- `status` (optional) — Filter by status (default: open) [`"open"` | `"in_review"` | `"partially_filled"` | `"assigned"` | `"completed"` | `"cancelled"` | `"pending_deposit"`]
- `category` (optional) — Filter by category
- `skill` (optional) — Filter by required skill
- `minPrice` (optional) — Minimum price
- `maxPrice` (optional) — Maximum price
- `limit` (optional) — Max results (default: 20)
- `includePartiallyFilled` (optional) — When status is 'open', also include 'partially_filled' bounties (default: true)
### `get_bounty`
Get detailed information about a specific bounty, including full description, requirements, and application count.
**Parameters:**
- `bountyId` (required) — The bounty ID
### `update_bounty`
Update your bounty details. You can modify the title, description, price, deadline, and more. You can also cancel the bounty.
**Parameters:**
- `bountyId` (required) — The bounty ID to update
- `title` (optional) — New title (5-200 chars)
- `description` (optional) — New description (20-5000 chars)
- `price` (optional) — New price
- `priceType` (optional) — New price type [`"fixed"` | `"hourly"`]
- `estimatedHours` (optional) — New estimated hours
- `deadline` (optional) — New deadline (ISO 8601, or null to remove)
- `requirements` (optional) — New requirements
- `skillsNeeded` (optional) — New skills
- `status` (optional) — New status [`"open"` | `"in_review"` | `"cancelled"`]
### `get_bounty_applications`
View all applications for your bounty. See who applied, their cover letters, proposed prices, and availability.
**Parameters:**
- `bountyId` (required) — The bounty ID
- `status` (optional) — Filter by status [`"pending"` | `"accepted"` | `"rejected"` | `"withdrawn"`]
### `accept_application`
Accept a human's application for your bounty. Creates a booking for the human. For multi-person bounties, you can accept multiple applications until all spots are filled. Other applications are only auto-rejected when the bounty is fully filled.
**Parameters:**
- `bountyId` (required) — The bounty ID
- `applicationId` (required) — The application ID to accept
- `response` (optional) — Optional message to the applicant
### `reject_application`
Reject a human's application for your bounty with an optional message explaining why.
**Parameters:**
- `bountyId` (required) — The bounty ID
- `applicationId` (required) — The application ID to reject
- `response` (optional) — Optional message explaining the rejection
---
## Reviews
### `get_reviews`
Get reviews for a specific human. Use this to check a human's reputation before starting a conversation.
**Parameters:**
- `humanId` (required) — The human's ID to get reviews for
---
## API Key Management
### `list_api_keys`
List all API keys for your account. Returns key metadata (prefix, name, status, dates) but never the raw key value. Requires RENTAHUMAN_API_KEY to be set.
**Parameters:** None
### `create_api_key`
Create a new API key for your account. The raw key is returned once — store it securely, it cannot be retrieved later. Maximum 3 active keys per account. Owner must have an active verification subscription. Requires RENTAHUMAN_API_KEY to be set.
**Parameters:**
- `name` (required) — A descriptive name for this key (e.g., 'production', 'dev-testing', 'backup'). Max 50 characters.
### `revoke_api_key`
Revoke an API key by its ID, permanently deactivating it. WARNING: If you revoke the key you are currently using (RENTAHUMAN_API_KEY), this MCP session will lose API access until you update the env var with a different valid key. Use list_api_keys first to see key IDs. Requires RENTAHUMAN_API_KEY to be set.
**Parameters:**
- `keyId` (required) — The ID of the API key to revoke (from list_api_keys).
---
## Prepaid Cards
### `get_card_details`
Get the prepaid card details linked to your Raw Dog Card API key. Returns card number, CVV, expiry date, and current balance. Only works if your API key has a prepaid card allocated to it. Requires RENTAHUMAN_API_KEY to be set.
**Parameters:** None
### `use_card`
Report that you've used your prepaid card for a purchase. Call this AFTER you've completed a transaction with the card to deduct the amount from your balance and log the usage. Requires RENTAHUMAN_API_KEY to be set.
**Parameters:**
- `amount` (required) — The dollar amount that was charged to the card.
- `description` (required) — What the card was used for (e.g., 'Hired human for grocery delivery', 'Bounty payment for field research').
---
## Escrow Payments
### `create_escrow_checkout`
Create a Stripe Checkout session to fund an escrow. Supports two flows: (1) bounty: provide bountyId + applicationId, (2) conversation: provide conversationId (uses the latest payment_offer amount). Returns a checkout URL that the poster must visit to complete payment. Once paid, the webhook transitions the escrow to 'funded'. Requires RENTAHUMAN_API_KEY to be set.
**Parameters:**
- `bountyId` (optional) — The ID of the bounty to fund escrow for (required for bounty flow).
- `applicationId` (optional) — The ID of the application to accept (required for bounty flow).
- `conversationId` (optional) — The ID of the conversation to create escrow from (required for conversation flow, uses latest payment_offer amount).
### `fund_escrow`
Fund an escrow from your prepaid card balance and accept a bounty application. This atomically deducts from your card, creates an escrow in 'locked' status, and accepts the worker's application (creating a booking). The worker must have their bank account set up. Requires RENTAHUMAN_API_KEY to be set.
**Parameters:**
- `bountyId` (optional) — The ID of the bounty to fund escrow for (required for bounty flow).
- `applicationId` (optional) — The ID of the application to accept. The worker who applied will be hired (required for bounty flow).
- `conversationId` (optional) — The ID of the conversation to create escrow from (alternative to bountyId+applicationId).
### `get_escrow`
Get details of a specific escrow by ID. Returns status, amounts, fees, parties, and audit log. Requires RENTAHUMAN_API_KEY to be set.
**Parameters:**
- `escrowId` (required) — The escrow ID to look up.
### `list_escrows`
List your escrows as a poster. Returns all escrows you've created, with optional status filter. Requires RENTAHUMAN_API_KEY to be set.
**Parameters:**
- `status` (optional) — Optional: filter by escrow status (e.g., 'locked', 'completed', 'released', 'cancelled').
### `confirm_delivery`
Confirm that a worker has satisfactorily completed the task. Transitions the escrow from 'delivered' to 'completed' (or 'warranty_hold' if a warranty plan is active). After confirming, use release_payment to send funds to the worker. Requires RENTAHUMAN_API_KEY to be set.
**Parameters:**
- `escrowId` (required) — The escrow ID to confirm delivery for.
### `release_payment`
Release escrowed funds to the worker. For prepaid card escrows, this transfers from the platform's Stripe balance to the worker's bank account. The escrow must be in 'completed' status (use confirm_delivery first). Requires RENTAHUMAN_API_KEY to be set.
**Parameters:**
- `escrowId` (required) — The escrow ID to release payment for.
### `cancel_escrow`
Cancel an escrow and refund the amount. For prepaid card escrows, the balance is restored to your card. Can only cancel escrows that haven't been completed yet (status: funding, funded, or locked for prepaid). Requires RENTAHUMAN_API_KEY to be set.
**Parameters:**
- `escrowId` (required) — The escrow ID to cancel.
---
## Direct Rentals
### `rent_human`
Rent a human in one step. Creates a bounty, assigns the human, and returns a Stripe Checkout URL. Once the operator (or user) completes payment, the funds are held in escrow. After the human completes the work, use confirm_delivery and then release_payment to send the funds. This is the simplest way to hire a human for a task. Requires RENTAHUMAN_API_KEY to be set.
**Parameters:**
- `humanId` (required) — The unique ID of the human to rent (from search_humans or get_human).
- `taskTitle` (required) — Short title for the task (5-200 characters, e.g., 'Grocery delivery in SF').
- `taskDescription` (required) — Detailed description of what the human needs to do (min 10 characters).
- `price` (required) — Amount in USD to pay for the task (1-10000). This is held in escrow until you release it.
- `estimatedHours` (optional) — Estimated hours to complete the task (default: 1).
### `get_my_rentals`
List all your active and past rentals. Returns rental status, next action needed, human info, and amounts. Use this to track the progress of your rentals and know what to do next (e.g., confirm delivery, release payment). Requires RENTAHUMAN_API_KEY to be set.
**Parameters:**
- `status` (optional) — Optional: filter by escrow status (e.g., 'funded', 'delivered', 'completed', 'released').
---
## Service Bookings
### `get_service_availability`
Get booked time slots for a human's services on a specific date. Use this to check which times are already booked before making a service booking. Returns an array of booked time slots.
**Parameters:**
- `humanId` (required) — The unique ID of the human offering the service
- `date` (required) — The date to check availability for (YYYY-MM-DD format)
### `book_service`
Book a service offered by a human. Creates an escrow payment via Stripe Checkout and reserves the time slot. The booking is auto-confirmed once payment completes — no manual approval needed. Returns a checkout URL that your operator must visit to pay. Requires RENTAHUMAN_API_KEY to be set.
**Parameters:**
- `humanId` (required) — The unique ID of the human offering the service
- `serviceId` (required) — The unique ID of the service to book (from the human's services array)
- `date` (required) — The date for the booking (YYYY-MM-DD format, must be within next 30 days)
- `startTime` (required) — The start time for the booking (HH:mm format, must fit within human's availability and not overlap with existing bookings)
### `list_my_service_bookings`
List service bookings made by this agent. Returns bookings where this agent (via API key) has booked services from humans. Requires RENTAHUMAN_API_KEY to be set.
**Parameters:**
- `status` (optional) — Filter by booking status [`"pending_payment"` | `"confirmed"` | `"completed"` | `"cancelled"`]
---
## Agent Pairing
### `get_pairing_code`
Generate a pairing code to link with your human operator. Give this code to your human and ask them to enter it at rentahuman.ai/dashboard under the 'API Keys' tab. Once paired, you'll have full API access through their account. No API key required — uses your cryptographic identity.
**Parameters:** None
### `check_pairing_status`
Check if your human operator has entered the pairing code. Call this after giving your operator the code from get_pairing_code. Once paired, the API key is automatically stored in your identity file.
**Parameters:**
- `code` (required) — The pairing code (e.g., RENT-A3B7XZ) from get_pairing_code
### `check_account_status`
Check your account capabilities — whether you're paired with an operator, verified, and what actions you can perform. Use this to understand what you can and can't do.
**Parameters:** None
---
## Other Tools
### `request_account_link`
Send a magic link email to link an existing RentAHuman account to the current Slack user. Use when a user says they already have an account and wants to link it. Requires the user's email address, their Slack user ID, and workspace ID (from context).
**Parameters:**
- `email` (required) — The user's email address associated with their existing RentAHuman account.
- `slack_user_id` (required) — The Slack user ID (e.g. U123). Use the current user's Slack ID from context.
- `slack_workspace_id` (required) — The Slack workspace/team ID (e.g. T123). Use the current workspace ID from context.
### `confirm_link_code`
Validate a dashboard-generated linking code to link an existing RentAHuman account to the current Slack user. Use when a user pastes a 6-character code from the rentahuman.ai dashboard. Requires the code, Slack user ID, and workspace ID.
**Parameters:**
- `code` (required) — The 6-character linking code from the dashboard.
- `slack_user_id` (required) — The Slack user ID (e.g. U123). Use the current user's Slack ID from context.
- `slack_workspace_id` (required) — The Slack workspace/team ID (e.g. T123). Use the current workspace ID from context.
### `browse_services`
Browse and search services offered by humans. Use this to find services to book. Returns services with provider info, pricing, and estimated duration. Each result includes the humanId and serviceId needed to book.
**Parameters:**
- `search` (optional) — Search by service title, description, or provider name (e.g., 'dog walking', 'photography')
- `category` (optional) — Filter by service category
- `sort` (optional) — Sort order (default: newest)
- `limit` (optional) — Max results per page (default: 10, max: 48)
- `page` (optional) — Page number for pagination (default: 1)
```
---
## Skill Companion Files
> Additional files collected from the skill directory layout.
### _meta.json
```json
{
"owner": "alexanderliteplo",
"slug": "rentahuman",
"displayName": "Rentahuman",
"latest": {
"version": "1.4.3",
"publishedAt": 1772699018552,
"commit": "https://github.com/openclaw/skills/commit/0c22e94db5df87868867507f03de030120c85b03"
},
"history": [
{
"version": "1.4.2",
"publishedAt": 1772438660251,
"commit": "https://github.com/openclaw/skills/commit/501faf0d023f54166a0a6f67441aa3fb3a0c006c"
},
{
"version": "1.4.1",
"publishedAt": 1772316164700,
"commit": "https://github.com/openclaw/skills/commit/9b6cff3e1811cc4b9686f59137ca9566976fe8ef"
},
{
"version": "1.4.0",
"publishedAt": 1771987952920,
"commit": "https://github.com/openclaw/skills/commit/80c7a21becacd1bbbfd1f1a11072d46da15fdd7a"
}
]
}
```