Writing a Job That Works

A job runs with no one watching. Nobody is there to say "you missed one" or "keep going", so everything that matters has to be in its brief and its prompt. What follows comes from running real monitoring jobs, run after run, with different agents.

Put the facts in the brief, the steps in the prompt

The brief says what the job is about and what the agent must always know: where the sources come from, which fields to record, how to name an item, what each status means. The prompt says what to do, in order. Keeping them apart lets you rework the steps without touching the facts, and the facts stay the same for every run.

A brief for a monitoring job typically has:

Section Example
What we watch, and why "Bond placements, so a reader learns of one while its window is still open"
Where the sources come from "From the regulator's two registers — never a list written by hand"
What to record "Issuer · ISIN · currency · volume · coupon · window · source URL"
How an item is named "placements/{issuer}-{isin}, or {issuer}-{date} when there is no ISIN yet"
What each source status means "blocked — the site refused · no-listing — no section found"

Write the prompt as numbered steps

Agents follow a numbered list far more reliably than a paragraph. A monitoring prompt that works:

  1. Read what is already known — list the job's artifacts before opening anything.
  2. Bring the source list up to date.
  3. Check every source, one by one; check them all before writing anything.
  4. Record what is new, each item under its own key.
  5. Archive what is no longer current.
  6. Rewrite the living document with what is current now.
  7. Save the source table back, with this run's status for each source.
  8. Check your own work — read back what you saved.
  9. Report.

Say that the work is important and must be finished

This one sentence changes results more than any other:

This is important work, and it runs in the background with no one watching. Do all of it. The run may take as long as the work needs. Don't stop early, cut a step short, or leave something "for a later run" because the run is long or the work is tedious. Stop only when the last step is done.

Without it, agents tend to stop at "good enough", skip the slow sources and close with "not itemised" or "the run isn't finished". With it, the same agents worked twice as long and found nearly everything.

Define "new" and "done" exactly

Ambiguity turns into inconsistent runs. Say:

  • What counts as new — "only what was not in the artifacts before this run". Ask for already-known items in a separate list in the report, never under "New".
  • One item per artifact — "one artifact per placement, never one for several". Otherwise an agent may lump a site's five offers into one page.
  • What open or closed means — "decided by the dates, not by the wording". Sites rarely mark old offers as closed.
  • When to archive — "closed and no longer listed on its source". A closed item still on the page stays.
  • That "not itemised" is not an outcome — if a page lists many series, each one is opened.

Tell it what tools it has — in a client's words

You do not need to name tools. One sentence such as "You have tools to open pages in a browser and to read PDFs: use them" is enough; a harness agent already knows how. Ask for what you want done — "PDFs are read, not skipped", "if a page comes back empty one way, try another" — and leave the how to the agent.

Watch out for what the job remembers

A job learns which page of a site holds what it needs and goes straight there next time. That saves time — and it also keeps a wrong first guess forever. Add a line such as:

A remembered page that shows no current offers is not proof there are none: before you write it down as empty, look at the site's other pages.

Ask for an honest report

Ask the report to lead with what is new, then updates and archives, then what could not be read and why. "Nothing new is a normal, successful run — say it plainly" keeps agents from padding the report. Agents that are allowed to say what they did not check usually say it.

Test it before you schedule it

  1. Create the job as Manual.
  2. Press Run now and read the report and the artifacts.
  3. Change the prompt, Reset artifacts, and run again — a clean slate shows what the new wording does.
  4. When it is right, switch the trigger to a schedule.

The first run on an empty job is the most expensive: it builds everything. Later runs only check for changes, and cost a fraction of it.

Compare agents on the same job

Different agents have different blind spots. Running the same brief and prompt with two agents — say, one on Claude Code and one on Codex — shows quickly what each misses. Together they often cover what neither covers alone.