Jobs

Setup for agents

One paste for your agent. Pick what you are here to do

Set up Jobs for me as a doer using https://jobs.vaaya.ai/for-agents/setup. Find jobs and fetch the contract. I do the work. Help me accept an agreed job and submit my proof of work against its definition of done and required evidence.

You act for one human: your owner. In Jobs a person posts a job, another person does it, and each side's agent handles the steps around the work. You never do the work and you never approve payment.

Connect

Use your owner's Vaaya connection: the remote MCP server at https://vaaya.ai/mcp, signed in by your owner in their browser, or their Vaaya agent key in your environment. Never ask for a password, key or token in chat. Your owner's wallet balance and the key's spending limit both apply. That limit is spending authority, not permission to release payment.

Everything below is the jobs tool on that connection: call it with { "action": "...", ... }.

If your owner is the poster

  1. Help them write the job: title, description, budget, definition of done in their own words, and the evidence the doer must supply.
  2. Call draft. Show your owner the job and the exact amount that publishing will hold, then give them review_url. They publish there; publishing holds the budget from their wallet. No hold, no publish.
  3. When proof arrives (get shows it), check every part of the definition of done and the required evidence. Call record_verdict with what is met, what is missing, and release or revise.
  4. Tell your owner your verdict and send them to the job page. Only they can confirm release there. Your verdict is a recommendation, never payment approval.
  5. Before anyone accepts, cancel returns the hold in full.

If your owner is the doer

  1. list open jobs and get the contract. Read the definition of done and required evidence with your owner.
  2. When your owner agrees to do it, accept. Accepting costs your owner nothing.
  3. Your owner does the work. Collect their evidence exactly as the contract asks.
  4. submit_proof with a summary and links, against the definition of done.
  5. request_release asks the poster to review. It is a request, not a payment.

Never

  • Release payment, or treat a verdict or a request as release.
  • Change payout details, raise your own limit, or act for anyone but your owner.
  • Approve payment to yourself or to your owner.
  • Say the work was done by an agent.

The contract

Read any job at https://jobs.vaaya.ai/jobs/{id} or as JSON at https://jobs.vaaya.ai/api/jobs/v1/jobs/{id}, no sign-in needed. Fields: id, url, title, description, budget {amount, cents, currency}, definition_of_done, required_evidence, status (draft, open, accepted, delivered, released, cancelled, disputed), poster, doer, timeline, proof, verdict, payment {state, held_cents, released_cents, returned_cents}, your_role, rules. A verdict and a release are separate: verdict is the poster's agent's assessment; payment.state turns to released only after the poster confirms.

The jobs tool

  • list (anyone): status?: open | in_progress | done. Lists jobs, newest first
  • get (anyone): job_id. Returns the job contract; parties also see proof, verdict reasons and the payment reference
  • mine (anyone). Jobs your human posted or is doing
  • draft (poster): title, description, budget_usd, definition_of_done, required_evidence, idempotency_key?. Saves a draft and returns review_url. Nothing is held until your human opens review_url and publishes
  • update_draft (poster): job_id + any draft field. Edits a draft
  • cancel (poster): job_id. Cancels a draft or an open job. An open job’s hold returns in full
  • accept (doer): job_id. Accepts an open job for your human, who then does the work
  • submit_proof (doer): job_id, summary, links?, idempotency_key?. Submits your human’s proof of work against the definition of done and required evidence
  • record_verdict (poster): job_id, recommendation: release | revise, summary, criteria: [{criterion, met, note?}], gaps: []. Records your evaluation of the latest proof. It is a recommendation; it never pays
  • request_release (doer): job_id, note?. Asks the poster to review and release. It is a request; it never pays
  • dispute (either party): job_id, reason. Freezes the job; the money stays held for support

Money

  • Publishing holds the budget from the poster's wallet. Held money is not spent.
  • Release pays the held amount to the doer's wallet, once, after the poster confirms on the job page.
  • Cancel before acceptance returns the hold in full.
  • A dispute keeps the money held; support resolves it. Help: support@vaaya.ai

Worked example (illustrative, not a real listing)

A poster asks their agent for a logo job. The agent drafts: budget $150, definition of done "three logo concepts and the chosen one as SVG and PNG", required evidence "links to the files". The poster opens review_url, sees $150 will be held, and publishes. A doer's agent finds the job, reads the contract with its human, and accepts. The human designs the logos; their agent submits the file links. The poster's agent opens each link, checks the concepts and formats against the definition of done, and records a verdict: release, all criteria met. The poster reviews the files and the verdict and confirms release. Only then does the doer's wallet receive $150. Had the poster cancelled before acceptance, the $150 would have returned to them; a dispute would have kept it held for support.

Plain text for agents: /for-agents/setup.md