Operate JobTread via its Pave API to create, read, update, and manage accounts, jobs, documents, tasks, locations, custom fields, and webhooks programmatically.
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install jobtread-api或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install jobtread-api⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/jobtread-api/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
This skill lets you operate JobTread entirely through openclaw using the Pave-based API at https://api.jobtread.com/pave. Every request is a single POST with a query object that mirrors GraphQL-style expressions, and you decide which fields you want back. With the right grant key, you can create and manage accounts (customers/vendors), jobs, documents, tasks, locations, custom fields, documents, and even subscribe to webhooks for live updates.
grantKey (it begins with grant_ and will only show once).~/.config/jobtread/grant_key. Example:```bash mkdir -p ~/.config/jobtread echo "grant_xxx" > ~/.config/jobtread/grant_key chmod 600 ~/.config/jobtread/grant_key ```
/pave must include the grant key under query.$.grantKey. Example payload:```json { "query": { "$": { "grantKey": "grant_xxx" }, "currentGrant": { "id": {}, "user": { "name": {} } } } } ```
notify, timeZone, or viaUserId inside $ when you need to suppress notifications or scope results.pdfToken: { _: signQuery, $: { query: {...} } } and append the token to https://api.jobtread.com/t/.POST https://api.jobtread.com/pave with Content-Type: application/json.```json { "query": { "$": { "grantKey": "grant_xxx" }, "operation": { "$": { ...inputs... }, "field": { ...fields... } } } } ```
id, name, etc.) determine what JobTread returns. Always include id when you plan to reference the object later._type in responses tells you the schema for that node.currentGrant:
user:
memberships:
nodes:
organization:
id: {}
name: {}
Use the returned organization.id in any following query.
createAccount:
$:
name: "Test Customer"
type: customer
organizationId: "ORG_ID"
createdAccount:
id: {}
name: {}
type: {}
type: vendor).id and requesting fields:account:
$:
id: "ACCOUNT_ID"
id: {}
name: {}
isTaxable: {}
customFieldValues if needed:updateAccount:
$:
id: "ACCOUNT_ID"
isTaxable: false
account:
id: {}
isTaxable: {}
organization:
$: {}
id: {}
accounts:
$:
size: 5
page: "1"
sortBy:
- field: type
order: desc
where:
and:
- - type
- =
- customer
- - name
- =
- "Sebas Clients"
nextPage: {}
nodes:
id: {}
name: {}
type: {}
where with or, nested fields, or custom fieldsorganization:
$: {}
id: {}
contacts:
$:
with:
cf:
_: customFieldValues
$:
where:
- - customField
- name
- "VIP"
values:
$:
field: value
where:
- - cf
- values
- =
- "Yes"
nodes:
id: {}
name: {}
Create location and find others tied to the same account:
createLocation:
$:
accountId: "ACCOUNT_ID"
name: Test Location
address: "123 Main St"
createdLocation:
id: {}
name: {}
organization:
$: {}
id: {}
locations:
$:
where:
- - account
- name
- Test Name
nodes:
id: {}
name: {}
account:
id: {}
name: {}
job:
$:
id: "JOB_ID"
documents:
$:
where:
- - type
- in
- - customerInvoice
- customerOrder
group:
by:
- type
- status
aggs:
amountPaid:
sum: amountPaid
priceWithTax:
sum: priceWithTax
withValues: {}
https://api.jobtread.com/t/{{token}}):pdfToken:
_: signQuery
$:
query:
pdf:
$:
id: "DOCUMENT_ID"
account:
$:
id: "ACCOUNT_ID"
customFieldValues:
$:
size: 25
nodes:
id: {}
value: {}
customField:
id: {}
customFieldValues map:updateAccount:
$:
id: "ACCOUNT_ID"
customFieldValues:
"CUSTOM_FIELD_ID": "New value"
account:
id: {}
webhook(id: "ID") or deleteWebhook to cancel.createWebhook:
$:
organizationId: "ORG_ID"
url: "https://your-endpoint/hooks/jobtread"
eventTypes:
- jobCreated
- documentUploaded
createdWebhook:
id: {}
url: {}
curl or your preferred HTTP client from OpenClaw's exec tool.$).createAccount for each with the same grant key.status: pending and send you a summary each morning.time.sleep between requests or batch fewer objects.id field required when you forget to request id. Always include it when you plan to mutate the record later.invalid key, rotate the grant and update ~/.config/jobtread/grant_key.signQuery when you need temporary access to document PDFs without storing raw document IDs.安装 JobTread Agent 后,可以对 AI 说这些话来触发它
Help me get started with JobTread Agent
Explains what JobTread Agent does, walks through the setup, and runs a quick demo based on your current project
Use JobTread Agent to operate JobTread via its Pave API to create, read, update, and mana...
Invokes JobTread Agent with the right parameters and returns the result directly in the conversation
What can I do with JobTread Agent in my developer & devops workflow?
Lists the top use cases for JobTread Agent, with example commands for each scenario
将技能文件夹放到 ~/.claude/skills/jobtread-api/ 目录(个人级,所有项目可用),或 .claude/skills/jobtread-api/(项目级)。重启 AI 客户端后,用 /jobtread-api 主动调用,或让 AI 根据上下文自动发现并使用。
JobTread Agent 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
JobTread Agent 可免费安装使用。请查阅仓库了解许可证信息。
Operate JobTread via its Pave API to create, read, update, and manage accounts, jobs, documents, tasks, locations, custom fields, and webhooks programmatically.
JobTread Agent 属于「Developer & DevOps」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。
Automate my developer & devops tasks using JobTread Agent
Identifies repetitive steps in your workflow and sets up JobTread Agent to handle them automatically