Follow-up from the 2026-04-19 /companies canonicalization pass. This
is a small burst, explicitly scoped to the rows that just got
promoted, and is gated on CompanySpec modules existing first. The full
170K-entity backlog identified in the 10× cluster debrief is out of
scope here.
Prerequisites
- Create a dedicated Supabase
environmentsrow for each of the following slugs (one row per slug,idis generated always):unitedhealth-group-incorporatedoptum-careoptumrxoptum-bankbirdsong-capitalUsescripts/ensure_company_environments.py(or equivalent) so the IDs can be pinned in bothseed_company_deep/environments.pyandfrontend/src/lib/company-environments.ts.
- Land
seed_company_deep/data/<slug>.pyfor each of the five companies, modeled onoptum_360.py/unitedhealthcare.py. - Run the generic seeder (
python -m seed_company_deep <slug> --apply --skip-embed) once per slug soentity_detailsrows carryseeded_by=seed_company_deep_<slug>— the/companies/[slug]deep API filters on that tag.
Provisioning (single 4×ADA cluster)
- Follow the SSH rule for the Linode GPU burst server:
-o StrictHostKeyChecking=no -o PubkeyAuthentication=no -o ConnectTimeout=10withsshpass+LINODE_GPU_BURST2_PWfrom.env. - One cluster is enough for the ~5-company smoke pass; do not duplicate until the first 100 entities complete cleanly.
Models + context
- NER:
gemma-4-E4B-it-Q4_K_M.gguf(aliasgemma-4-e4b), 16k context. - Embedding:
jina-embeddings-v5-text-small-retrieval/v5-small-retrieval-Q8_0.gguf(aliasjina-v5-embed), 16k context. - Both served via
llama-server(no LM Studio, per project rules).
Guardrails (to avoid the 10× debrief's re-enrichment loop)
- Gate the enrichment priority query on
enrichment_count < 3. - Cluster-partition the queue (e.g.
entity_id % 1 = 0for a single-cluster run,% Nper cluster otherwise). - Use
FOR UPDATE SKIP LOCKEDor aclaim_batchRPC so parallel workers do not fight over the same entity. - Populate
enrichment_model+enrichment_hoston every write so future debriefs can attribute throughput correctly. - Cap the overall batch to ~100 entities for the smoke pass, then pause and sanity-check before scaling.
Sequencing
- Smoke-run 100 entities on a single 4×ADA cluster.
- Spot-check
/companies/optum-care,/companies/optumrx,/companies/optum-bank,/companies/unitedhealth-group-incorporated, and/companies/birdsong-capital(after flipping itsoverride_href). Confirm the OrgStatisticsBlock renders non-empty headcount, function mix, and maturity bars. - If results look good, duplicate to a second cluster and expand the batch. Do not expand before step 2 passes.