Beaver Process · Tender OSHalf 1 Find & qualifySource of truth · v3 · 2026-08-24

The Live Tender Scan

An always-on scan of every public Australian tender source a slurry-piping supplier could care about, every weekday. It files only the notices that fit Beaver Process's business. And when a catch is worth a person's minute, it opens the pack, reads it, and writes the brief. Running unattended since 26 July 2026.

reader Mark · operator reader Josh Beaver · what it does reader the agents · paths and rules
01

What it is

It looks for the right product wanted by the right buyer: valves, lined pipe, slurry hose, spools, actuators, expansion joints and pump skids, wanted by mining, mineral processing, the EPCM channel, or resources-adjacent ports and refineries.

It keeps a record of everything it has ever seen, so a tender alerts once and never again. It keeps the near-misses too: the council and water-utility supply tenders Beaver's products fit, held one rank lower as evidence of the wider public market. And when a live tender clears both filters, it downloads the pack, reads it against Beaver's catalog and bid rules, and writes a one-page brief with a recommendation. A person says yes or no.

What that means in volume, from the record on 23 August 2026:

19,927
notices judged since 26 July. Nothing to do.
436
kept because the product fits, whoever the buyer is. Nothing to do; 249 of them are councils and utilities, held as market evidence.
117
in Beaver's own market: mining, EPCMs, resources. Nothing to do yet; they split three ways.
106
resources projects and work packages on the watchlist (62 projects). No pack exists; this is a call list, not a download list.
11
closed-history tenders. Evidence of the market; the window is shut.
0
live tenders open today that need a decision.
1
brief written and decided this week (a NO, with the reason kept). That is the whole human workload.

The point of the funnel: a person decides on one thing when there is one thing, and the agent has already read the pack.

02

The eleven nets

#KeySourceEndpointCadence
1vpVendorPanel open RSSvendorpanel.com.au/PublicTendersRssV2.aspx?mode=allDaily, Mon-Fri
2vpcVendorPanel closed history (~18.4k items)same, ?mode=closedWeekly, Mon
3icnICN Gateway projects + work packages (logged-in browser, 9 keywords)gateway.icn.org.au/projects?keywords=…Weekly, Mon + every login
4bfvBuying for Victoria (5 keywords)tenders.vic.gov.au/tender/quickSearchDaily
5ntqNT Quotations & Tenders Onlinetendersonline.nt.gov.au/Tender/Search/CurrentWeekly, Mon
6austAusTender RSS (liveness ping; Defence-only supply)tenders.gov.au/public_data/rss/rss.xmlDaily
7buynswbuy.nsw opportunities (browser)buy.nsw.gov.au/opportunity/searchWeekly, Mon
8qtQTenders JSON API (open + closed/awarded sweep)qtenders.hpw.qld.gov.au/api/search/tendersWeekly, Mon
9tlTenderLink public lists (browser, 23 org slugs, list pages only)portal.tenderlink.com/<slug>/alltenders/Weekly, Mon
10epaEPA WA referrals (browser; approvals precede procurement)epa.wa.gov.au/proposal-searchWeekly, Mon
11inboxAgent inbox sweep (IMAP, label + INBOX, 30-day lookback)imap.gmail.comDaily

The agent inbox is agenticbuild@gmail.com. Portal alert subscriptions land there from Tenders WA, SA Tenders & Contracts and Tenders ACT. The reader parses each portal's digest format; a watch-mail on a tender Mark has subscribed to bypasses the filter entirely, so an addendum on a watched tender never drops. Credentials sit in a secrets vault, never in the project files.

Outside the eleven: the Sydney Water contract register is scraped by hand, quarterly or pre-pitch, into a panel-expiry calendar and incumbent map.

03

Cadence

The scheduled task BeaverFleetScan fires at 12:00 Mon-Fri. Mondays run all eleven; Tuesday to Friday run the daily four (vp, bfv, aust, inbox). Weekends: nothing. Monday catches up, and the record means nothing is lost. A notification goes out only when a run finds new live tenders, and when a brief is ready.

ICN has a second cadenceIts session lasts about eight hours behind a QR code, so every time Mark logs in (icn_login.py: log in, close the window) the script banks a sweep on the fresh session. Monday's scheduled attempt notes "expired session" when there isn't one. Expected, not an error.
04

The filter: product and market

Every fetched notice is scored twice, in order. The market layer was added on 21 August 2026.

Layer 1 · product
Does the tender want something Beaver Process makes?
Keyword scoring grounded in the full 86-product catalog, plus supply-versus-works context and a hard-drop list.
Layer 2 · market
Is this a buyer or project Beaver would chase?
Buyer registry, then project keywords, then negative buyer classes. Mostly not visible in the tender text.
Fit
Product tier, shifted by market
Positive: up one tier. Negative: down one tier, floor WATCH, never dropped. Both views are recorded.

Layer 1 · product

  • Product families: knife-gate, pinch, ball, globe, plug, butterfly, check, air and control valves; actuators and positioners; lined pipe and spools; HDPE, poly and DI pipe; slurry, dredge, ceramic and mining hose; rubber expansion joints; strainers; pump and valve skids; launders; wear liners. Plus general words: valve, pipe, pump, fittings, hose, spool, skid.
  • Supply context (supply, provision, panel, standing offer, EOI, prequalification) versus works context (construction, upgrade, renewal, D&C, earthworks).
  • Hard drops for genres that carry product words but aren't supply: meter reading, consulting, software, data pipelines, pools and aquatic centres, solar, waste.
STRONGproduct family + supply, no works
POSSIBLEproduct match, context unclear
WATCHworks-embedded supply: a construction job with a parts package inside it that Beaver could supply to whoever wins
DROPPEDno product, or a hard-drop genre

Layer 2 · market

Beaver Process sells mining slurry piping systems through EPCMs and mine owners. A VendorPanel listing titled "Supply of knife gate valves" from GR Engineering says nothing about mining; you only know GRES is a mining EPCM because you know GRES. So the market layer is built from three signals, in order of precedence.

SignalWhat it readsResult
1 · The buyer mapA registry of 39 companies the scan has been taught to recognize as Beaver's market: 20 miners (Roy Hill, Fortescue, Rio Tinto, BHP, Pilbara Minerals, AngloGold, Newmont, Alcoa, South32…), 15 EPCMs and process contractors (Lycopodium, Hatch, Ausenco, Worley, Bechtel, Fluor, GR Engineering, Monadelphous…), and 4 resources-adjacent buyers (Pilbara Ports, NQBP, Gladstone Ports, QAL). Each carries an evidence pointer to why it is on the list: a corpus case study, Beaver's own hiring copy, or the research files. A tender from any of them is promoted one tier even when the text never says "mining", because that is the knowledge a tender listing leaves out. Short and place-name aliases match the buyer field only, so "hatch" never fires on an access hatch. The map is a taught list, not a count of opportunities, and it grows as the record teaches it.POSITIVE
2 · Project keywordsFor buyers not in the registry: slurry, tailings, TSF, concentrator, process plant, mineral processing, mine site, magnetite, iron ore, lithium, nickel, bauxite, alumina, refinery, gold mine, copper project, coal mine, thickener, hydrocyclone, flotation, heap leach. Keyed on the project, not the buyer, so a state-government tender for a mine-access pipeline counts. Bare gold, copper, coal, crushing, dewatering, quarry are excluded on purpose: council false positives.POSITIVE
3 · Negative classesBuyer words (council, shire, city of, water corporation / utility / authority, the named water corps, health, education, police, defence, department of) and municipal end-uses (water meters, hydrants, sewer, STP / WTP, potable, reticulation, irrigation).NEGATIVE
Anything elseThe product tier stands as judged.NEUTRAL

Combining them

Positive promotes one tier (cap STRONG). Negative demotes one tier (floor WATCH, never dropped). Two narrow exceptions keep a notice with no product word as WATCH for forward intel: an EPCM registry buyer, whose public notices are project packages, or a project referral from ICN or the EPA in a positive market. A miner's forklift EOI has no product match and drops.

Why one tier down, and never drop. The council and utility supply tenders are the evidence for the "why not Government" conversation and for the miss report's market-volume claim. POSSIBLE is the accurate label for "Beaver's product, outside Beaver's market."

Every record keeps both views: the product tier, the final fit, the market signal, and the exact rule that fired.

What the market layer did to the record

On 21 August all 19,853 stored notices were re-judged, with the VendorPanel closed history refetched so those items carried their descriptions again. 55 rose, 107 fell. Every item that fell is a council or utility tender demoted one tier with the buyer class named. Items that rose include the Carmichael mine pipe-supply EOIs and ICN "Slurry Pumps" packages the product-only filter had dropped outright. A rollback copy of the record was taken first.

05

From catch to decision

A catch that clears both filters on a live tender enters a queue. From there the agent does the reading and a person does the deciding. This ran end to end for the first time on 23 August 2026.

Fetch
The agent opens the tender in the supplier's registered portal account and pulls every document
Zips unpacked, a manifest kept with sizes and hashes. The pack is held as confidential by default.
Brief
The agent reads the pack and writes one page
Code finds the evidence and cites every hit to a document and page. The model judges only those cited windows, never the whole pack. Code applies the bid rules and prints which rule fired.
Decide
A person says YES or NO, with a reason
YES hands the pack to the response half of the OS. NO closes the item and keeps the reason, so the rules learn.

The brief, every time in the same eight sections

  1. Verdict line: BID, NO-BID, or NEEDS-HUMAN, one sentence why, and the rule that fired.
  2. The tender: buyer, ref, dates, lodgement channel, addenda seen.
  3. Scope in Beaver's terms, with the product crosswalk: which of the 86 catalog products fit, by name, cited to the page.
  4. Market: which rule fired and what the pack adds (end customer, site, EPCM named).
  5. Gates: prequalification, certifications, insurances, past performance, each MET, UNKNOWN or GAP from evidence about Beaver Process, never assumed.
  6. Returnables and the effort band to produce them.
  7. Disqualifiers checked: self-performed works, whole-plant EPC, services-only, construction-only.
  8. What would change the verdict: the one or two facts a person should confirm before deciding.

Every claim in the brief is cited or marked UNSURE. Beaver facts come only from a facts table sourced to the catalog and the company profile; a gate the table does not cover is UNKNOWN.

Worked example · the first live item · 23 August 2026
Supply and Delivery of Water Valves, Townsville City Council (VendorPanel VP521135) → NEEDS-HUMAN → decided NO
Pack
17 documents fetched: scope of work, contract schedules, response schedule, tender conditions, valve drawings, one addendum.
Crosswalk
Real product fit: double-flanged PN16 butterfly valves in 600 to 1000 mm and electric quarter-turn actuators, matched to named Beaver products and cited to the addendum and response schedule.
Gates
WaterMark / drinking-water approval preference, safety-management certification, and utility past performance: not evidenced at Beaver. $20M public liability stated.
Market
Council water utility: outside the target market.
Agent
NEEDS-HUMAN. Rule H: product fit is real, gates are not met or curable, market is negative. Asked: would Beaver bid a council drinking-water package at all?
Person
NO. "Council drinking-water valves, WaterMark preference, outside the mining market." Recorded with the reason; the item left the live queue.

That NO is the credibility moment. A tool that only ever says yes is a tool nobody trusts; this one declined the work and showed why, in a page that took 1 minute 38 seconds to write from a pack that would take a person an afternoon.

The watchlist: the other kind of catch

Most of Beaver's market never appears as a downloadable tender. It appears as a project: an EPA referral for a magnetite mine, an ICN Gateway listing for a concentrator, a work-package title such as "Slurry Pumps" under a lithium project. There is no pack to fetch, so these go to a watchlist instead: 62 projects today, with owner and EPCM filled where the buyer map knows them, and a next-check date. This is the spec-embedding list, the call list for the job Beaver's Capital Projects ads describe as "access to 100% of target package tenders." The scan finds them; a person opens the relationship.

06

What the sources are worth for mining

The re-judgement also measured each source's mining yield, and that reranked the fleet.

SourceItems in recordMining-market catchesCouncil / utility catches
ICN Gateway145773
EPA WA referrals67290
VendorPanel closed history18,32711234

Primary, the radar: ICN Gateway and EPA WA, the forward project pipeline where specifications get written, plus the rare mining EOIs that surface on VendorPanel and QTenders. The 22 August ICN sweep with the four new mining keywords banked 68 new projects in one pass: Mulga Downs iron ore, Jervois and Eva copper, Aurukun bauxite, Hemi gold.

Secondary, market-volume evidence: VendorPanel, Buying for Victoria, buy.nsw, QTenders, TenderLink, the Sydney Water register, the state portal alerts. They feed the miss report and the public-sector pillar; their catches rank one tier lower and never drop.

Still to assess: BHP Local Buying (C-Res), Felix, and the process EPCs Mintrex, Sedgman and Wave.

07

Recording and outputs

OutputWhereWhat it holds
Daily digestsourcing/digests/YYYY-MM-DD.mdOne file per day; same-day re-runs add, never wipe. New live tenders by fit with the rule that fired, recently closed, forward intel, and a fleet-health table. "Nothing suitable today" on a clean day.
The recordsourcing/engine/state/seen.json~19.9k ids, held on the machine outside the shared project archive. The dedupe memory: a candidate alerts once, ever. Every row keeps both the product view and the market view.
The ledgersourcing/triage/queue.tsvOne row per tender that ever entered triage: status (NEW, FETCHED, BRIEFED, DECIDED, BLOCKED), the agent's recommendation, the person's decision and reason. The only place a decision is real.
The brief and its trailsourcing/triage/<id>/brief.md, evidence.json (what code found, cited), judgement.json (what the model decided), meta.json (the fetch manifest); pack/ and text/ on disk only.
Decisions logsourcing/triage/decisions-log.mdOne line per human decision with the reason. The rules learn from these.
Closed itemssourcing/triage/closed/<id>/A NO moves here with its brief and trail. A YES moves to responses/<date>-<tender>/, where the response half of the OS begins. The live queue holds only open items.
Watchlistsourcing/triage/watchlist.tsvResources projects with owner, EPCM, stage, packages seen, next-check date.
Miss reportsourcing/digests/miss-report.mdTier 1: the two verified Sydney Water EOI misses. Tier 2: 118 supply tenders matching Beaver's products that opened and closed on VendorPanel, mining subset split out.
Panel-expiry calendarsourcing/digests/sydney-water-panel-expiry.mdWhen each Sydney Water supply panel reopens, and who holds it now.

Files land on disk automatically; they join the shared project archive only when a working session is reviewed and saved. The run's console line "new this run" counts live tenders only; project intel appears under "forward".

08

Known limits

  • The portal login is still a person's step. VendorPanel issues session-only cookies, so an unattended run usually finds no session and holds the item until someone logs in; the brief, notification and decision run unattended from there. Agent credential login, with safeguards, is being deployed over the next four weeks, VendorPanel first.
  • VendorPanel's feed carries no buyer field, so most council items test neutral until the title names the council. The market signal is weakest exactly where the volume is.
  • ICN project titles are project names, not package titles, so they land as watchlist entries. Work-package titles with product words ("Slurry Pumps", "Supply of HDPE Pipelines") rise on their own.
  • ICN's free tier shows work-package titles only; opening a package is the paid "Be Seen" feature.
  • Drawing-only PDFs carry no text layer. The brief names them and reads around them today; the model can read a drawing page as an image, and rendering those pages for it is a later step in the pipeline.
  • The mining majors' vendor portals (Rio / Ariba, BHP / SmartProcure, Fortescue) are invitation-only. The scan watches the public and forward layer, not Beaver's private RFQ flow.
09

Operator card

WhenDoCheck
any morningRun icn_login.py, log in, close the windowICN health row in today's digest
a brief is announcedRead brief.md; write YES or NO and a reason in the ledger; run triage.py --decideDecisions log gains a line; the item leaves the live queue
an item holds at NEWRun vp_login.py, log in, then immediately triage.py --runStatus moves to FETCHED, then BRIEFED
Monday afternoonRead the Monday digestNo ERROR rows; market tags look right
after a filter or registry editRun rescore.py dry, read the diff, then --applyRose and fell make sense
quarterly / pre-pitchRun sw_register.pyPanel-expiry calendar
something looks wrongCopy seen.json.pre-market-filter.bak over the recordThen tell Claude