---
title: hunt — Golden Output Fixture
type: regression-fixture
created: 2026-05-06
---

# hunt — Golden Output Fixture

## Expected output structure (any args)

After successful run, output should include:

```
[hunt] starting <args>
[hunt] worker-hunter: <N> new leads (<delta> since last run)
[hunt] contractor-hunter: <N> new leads (<delta>)
[hunt] job-aggregator: <N> new jobs (<delta>)
[hunt] total runtime: <seconds>s
[hunt] errors: <list or "none">
```

Then a Markdown table:

| Source | New leads | Status |
|---|---|---|
| Gumtree workers | <N> | OK / blocked (ScrapingBee credit exhausted) |
| Facebook Marketplace workers | <N> | OK |
| Gumtree contractors | <N> | OK |
| Facebook Marketplace contractors | <N> | OK |
| Job aggregators (Seek, Indeed) | <N> | OK |

## Known failure modes

- **ScrapingBee credit exhausted** → Gumtree returns 0; doesn't fail run, surfaces as `status: blocked` in output.
- **VPS unreachable** → if PM2-managed scrapers are remote, fall back to local execution; output `[hunt] WARN: VPS unreachable, ran locally`.
- **Supabase rate limit** → batch insert may partially fail; output lists which records didn't insert.

## What "regression" means here

Output STRUCTURE stable, not data values. If a future run produces a different format (missing column, reordered table, no error summary), that's a regression. Data values change every run because they're scraped live.

## Last verified

Not yet — fixture stub created 2026-05-06. Next live `/hunt` invocation should produce output matching this structure. If not, log to `_Log.md` and either update fixture or fix skill.
