available, not_available, blocked, not_applicable, ambiguous, failed) for everything else.ambiguous.regnskapsregisteret API, live Returned for the organisation; reporting period on every claim Filed annual-account years and official PDF copies Brønnøysund aarsregnskap/kopi API, live, paced Returned for the organisation Roles (board, CEO, auditor, …) Brønnøysund roller/totalbestand bulk, declared local cache Active roles only; birth dates never stored Registered workplaces Brønnøysund underenheter bulk, declared local cache Subunits whose parent is the organisation Official website Registry-declared site plus request-free domain candidates Organisation number, registry email or registry phone on the site, or a registry-declared/unique full-legal-name domain carrying the legal name Social profiles Links on the verified company website only Never matched by name similarityuv. Dependencies are pinned in uv.lock.--max-requests 2000, --max-minutes 45, 8 workers, 14 website requests per company. Every attempt, retry, robots.txt fetch and redirect hop is charged to the budget. Near the wall-clock limit website discovery is skipped and marked failed, so every input still gets its envelope. The command exits non-zero if validation fails, the envelope count differs from --expected-count, or envelopes are out of input order.--chunk-size companies (default 50), one after another in the same process, sharing one request budget and one robots.txt cache. Each finished chunk is checked (one valid envelope per company, in order) and saved to --checkpoint-dir (default <report>.checkpoints/ next to --report) before the next chunk starts. A chunk that raises or fails its check is retried --chunk-retries times (default 1) on fresh copies; if it still fails, its companies get failed envelopes and the run continues. Re-running the same command with the same --run-id resumes: saved chunks are reused only when their fingerprint matches (run id, organisations, registry snapshot, previous profiles, cache and settings), and their requests and time still count against the budget. A new --run-id always re-crawls. The report adds a chunks summary (total, passed first try, retried, fallback, resumed).changes list. Re-running an unchanged snapshot produces no changes:uv run --with pytest pytest -qsubmission/ holds the entry run on the official 1,000-company manifest (select_entry_batch.py, seed 20260823):entry-companies.jsonl — the exact organisation-number manifestentry-1000-envelopes.jsonl — 1,000 terminal envelopesentry-1000-profiles.jsonl — the profile snapshot a refresh diffs againstentry-1000-report.json — runtime, requests by purpose, module states, validationentry-1000-2026-09-15 (code at commit 5c179c7, registry snapshot SHA-256 1817f874…): 1,000 envelopes in manifest order, validation passed, USD 0. Published claims include 3,962 roles, latest accounts for 997 companies, 872 registered workplaces, 225 verified official websites and 259 company-linked social profiles.submission/refresh/ holds the refresh evidence (code at commit 5ddd709):organisations.txt, previous-profiles.jsonl — 100 companies and their 13 September 2026 profiles, the previous snapshotrefresh-1-* — the same companies re-crawled on 15 September with --previous-profiles: 100 envelopes, validation passed, 601 requests. Every accounts, filing-history and website record was re-fetched; no tracked field changed in those two days, so changes is emptyrefresh-2-* — an immediate re-run against refresh-1 profiles: 0 changes, so no false changesrefresh-replay.json — scripts/run_refresh_replay.py on the bundled saved responses: both expected material changes found (employee count, annual accounts), precision 1.0, recall 1.0, evidence complete, idempotent re-runbuilderr-signalpost-poc/0.1 (+https://builderr.ai).scripts/ are not part of it.financials: failed with the source error, while filed years remain available. 2 of 1,000 in the entry run.failed with company allowance exhausted (14). 39 of 1,000 in the entry run.legal_identity: not_available, and is listed in the report under registry.absent_from_snapshot.failed, rather than publishing misaligned values. Empty trailing extra fields are dropped harmlessly.available, not_available or ambiguous). A failed check (for example the per-company allowance) is never a change: the last conclusive records are carried in the profile snapshot, so a real change is reported on the next conclusive run, possibly one run late. The committed submission/refresh/ evidence predates website tracking (code 5ddd709); re-diffing it with the current code reports 3 changes: ATEA ASA's https://atea.com/ is no longer provable (its LinkedIn link is withdrawn with it) and STIFTELSEN SILDAJAZZEN's https://sildajazz.no/ became verified. The immediate re-run still reports 0 changes.OUTPUT_CONTRACT.md for the envelope shape and docs/builderr/ for the challenge rules.Posted Sep 18, 2026
Developed a research agent for Builderr Signalpost challenge.
0
1