oll.am · Morning brief · the job scout · 2026-07-11

Job scout — the morning brief.

What got built overnight · the result · your decisions. A short, scannable handover — not a report. Lead with the result: a working agentic oll-scout MVP is built, tested, and PR'd.
PR #94 · 59 tests green Verified by a real run Deploy-ready · runbook shipped 4 decisions for you

Night shift #2 — improvements + deploy-ready

A second pass hardened the MVP and made it deployable. Four things landed on PR #94 (now 59 tests green), and there's a new deploy runbook so you can stand it up.

  • CI gap fixed wired — oll-scout was not in the services CI matrix at all. Now wired into services.yml: lint + test, pip-audit, and a keyless docker-boot + health check.
  • jobs.ch footgun fixed fixed — the JSON-LD adapter no longer defaults to jobs.ch (the spec says manual-paste only, never touch it programmatically). Empty default + a clear error + a test.
  • Model upgrade verified verifiedllama-3.3-70b-versatile for the cited scorer scored 4/7 vs 1/7 on the 8b default, and correctly surfaced Platform / DevOps Engineer @ Alpine Cloud at 90 (the 8b had dropped it) — with real per-requirement evidence quotes.
  • Deploy-ready new — a Coolify app config + full env matrix (keyless-dev → prod) is in the new deploy runbook. PR #94 now carries these commits.

1The result — lead with this

A working agentic oll-scout MVP is built, tested, and PR'd overnight. 58 tests green, ruff clean, verified by a real end-to-end run — not deployed, not merged. One thing to click first:

▸ Review it here ready

github.com/bytesbysamu/oll-am/pull/94 — the agentic upgrade over the old heuristic scout (#93). A real SourceAdapter + ScoringStrategy seam, a JSON-LD career-page adapter, and a posting-quoted llm_cited scorer with honest abstention.

58 tests green · ruff clean · a real keyless end-to-end run produced a tiered digest. Nothing is deployed or merged — it waits on your review.

2What it does — the agentic upgrade over #93

#93 was a keyword-heuristic scout. #94 makes the two hot spots pluggable seams — and those seams are the generalization surface for later domains (flights, deals). No submit tool — the agent cannot auto-apply, by construction.

What landedDoes
SourceAdapter seamThe where-postings-come-from boundary — swap or add a source without touching the pipeline
JSON-LD adapter newA real schema.org/JobPosting career-page reader — parses the structured data an employer already published for Google for Jobs
ScoringStrategy seamThe how-postings-are-ranked boundary — the heuristic and the LLM scorer are interchangeable
llm_cited scorer newPosting-QUOTED rationale: requirement quote → your-evidence quote → met / partial / gap, plus gaps, dealbreakers, an interview angle, and honest abstention when the signal isn't there
Versioned StructuredProfileNarrative + evidence-map + title-cluster + hard-gaps + dealbreakers — the thing the scorer reasons against
Cross-source dedupNear-dup collapse so one job = one row even when it shows up on two boards

Why the seams matter

The three seams — SourceAdapter, ScoringStrategy, and the versioned profile — are the generalization surface. The same engine that ranks a job posting against a career profile ranks a flight against a travel profile or a deal against a wishlist. Building the scout the right way once means the second and third domains are new adapters, not new engines. And there is no submit tool in the set — the agent cannot auto-apply, by construction.

3Proof — the real digest it produced

Keyless, fixture provider, real pipeline. One end-to-end run: 7 postings → dedup → prefilter → score → tiered digest. The actual output:

# oll-scout end-to-end run · fixture provider · keyless · real pipeline
# 7 postings → dedup → prefilter → score → tiered digest

[ 41] Platform / DevOps Engineer @ Alpine Cloud GmbH   + python, docker   - gap: no signal for llm
[ 22] Senior Backend Engineer (Python) @ Helvetia Fintech AG
[ 19] Data Scientist (ML) @ Léman Bio SA

The honest point

The heuristic tops a real platform-engineering role at only 41 — which is exactly the spec's thesis. Keyword scoring is the weak baseline; the llm_cited scorer is the differentiator. That scorer is unit-tested against a mocked gateway (its cited-rationale shape is proven); a live scored run needs the real gateway token, so this run shows the heuristic path end-to-end and the LLM path under test.

4Honest known-issues → M2 (not blockers)

Three things are true and worth naming before this goes anywhere near a real run. None blocks the merge — they're the M2 worklist.

  • Swiss source coverage = 0 keyless. Arbeitnow is a German board with 0 CH postings. Real Swiss coverage needs a jooble free key OR employer JSON-LD career pages.
  • The JSON-LD adapter defaults to jobs.ch — which contradicts the spec's own legal stance ("manual paste only, never touch jobs.ch programmatically"). Repoint it at employer career pages (Abraxas, Swisscom) before any real use.
  • The llm_cited LIVE path needs OLL_MODEL_SERVICE_TOKEN — you have it in Coolify. Without it the scorer is proven only against the mocked gateway.

5Decisions banked overnight — no action needed

Just confirming direction — nothing here needs a reply.

  • The paid product = a scalable multi-user oll-scout SERVICE (not an OpenCLAW-personal tool): Core-gated, web-first, with MCP as the power-user / agent interface.
  • The engine is designed to generalize to flights / vacation / deals later via the three pluggable seams — never auto-apply.
  • CiteBible kept as-is, with the embedding-only fix ready to go: ollwrite PR #5 (~2.0s → 0.27s, ~87% faster). Left for you to merge / deploy.

6Your decisions this morning — numbered

Four, scannable. The first two are the fast ones.

1

Review + merge PR #94?

2

M2 Swiss coverage — get a jooble free key, or point the JSON-LD adapter at employer career pages (Abraxas / Swisscom / Bedag)?

3

Want a live cited-rationale run proven? (Needs the gateway token wired locally, or I run it against the deployed gateway.)

4

Green-light M3 — the paid gate (Core subscription + multi-user + the web front door)?

Spec of record: the full architecture behind this MVP is the complete job-scout spec — reuse the spines, re-aim the OpenCLAW loop, cited-rationale matching with honest abstention, and no submit tool, ever. This brief is the overnight delta against it. Code: PR #94.