> ## Documentation Index
> Fetch the complete documentation index at: https://docs-preview.webcompute.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# First real task

> Run a scoped agentic workflow with fields, JSON output, safety boundaries, and blocker guidance.

## Prerequisites

* Webcompute CLI installed and available as `web`.
* A saved Webcompute API key from `web login <key>`.
* A model profile from `web model setup`, or one-off model flags from [model setup](/get-started/model-setup).
* A successful first `web agent` run from the [CLI quickstart](/quickstart), so browser, auth, and model setup are already working.

After the quickstart, run a workflow that resembles a real automation: search a public site, open detail pages, and return specific fields.

## Run the task

```bash theme={null}
web agent \
  --url https://www.grants.gov/search-grants \
  --allow-domain grants.gov \
  "Search active Grants.gov opportunities for cybersecurity workforce. Return the first 5 opportunities with title, agency, opportunity number, close date, detail URL, and a one-sentence fit summary. Do not apply, log in, or submit forms."
```

The task includes the site, the search phrase, the result count, the fields to return, and the safety boundary.

## Expected result

```text theme={null}
Cybersecurity workforce opportunities

1. Title: ...
   Agency: ...
   Opportunity number: ...
   Close date: ...
   URL: https://www.grants.gov/search-results-detail/...
   Fit: ...
```

Live public sites change. Treat the output as current browsing evidence, not as a static fixture.

## Return JSON

```bash theme={null}
web agent \
  --json \
  --url https://www.grants.gov/search-grants \
  --allow-domain grants.gov \
  "Search active Grants.gov opportunities for cybersecurity workforce. Return the first 5 opportunities with title, agency, opportunity number, close date, detail URL, and a one-sentence fit summary. Do not apply, log in, or submit forms."
```

Use `--schema ./opportunities.schema.json` when your downstream code needs validated fields.

## If the site blocks progress

The agent should return the blocker state and the evidence it can see. Do not ask it to solve a CAPTCHA, submit forms, or invent data.

To inspect a run, repeat the task with `--debug-url` and open the signed Debug UI URL only in a trusted context.

## Build from here

* Use [structured output](/agent-workflows/structured-output) when a product workflow consumes the result.
* Use [policies and approvals](/agent-workflows/policies-and-approvals) for domain boundaries and high-impact actions.
* Use [observe and debug](/observe-and-debug/overview) when a run needs evidence.
