3.5 KiB
3.5 KiB
name, description
| name | description |
|---|---|
| frank-job-hunt-maintenance | Maintain frank-job-hunt agents: live-census gate hardening loop, registry locator verification, and the workstation/Dankserver/Dankclaw deploy-sync ritual. |
frank-job-hunt maintenance
Repo ~/Projects/frank-job-hunt (Gitea dank/frank-job-hunt on Dankclaw 192.168.0.143:3000). Production: Dankserver user timers frank-job-sweep.timer 07:30, frank-job-digest.timer 08:15 (Linger=yes). ntfy relay: Dankclaw quadlet ntfy.service, route ntfy.franksdank.cloud (no anubis), LAN record in hosts/custom.list (Pi-hole v6 file at /home/dank/Containers/pihole/etc-pihole/hosts/custom.list; v6 API paths are hostile — edit the file, then podman exec pihole pihole restartdns). Secrets: ~/.config/frank-job-hunt.env (600, workstation + Dankserver).
Law (validated 2026-10-11)
- The fleet judge (
frank-zealot, dankclaw:7771) is a ranker, never a gate — it inflates anything reaching it (non-technical roles scored 88-91). All discrimination lives in deterministic gates (agents/lib/gates.ts); zealot only ranks survivors. - Thinking-model fault: verdict lands in
reasoning_contentwithcontent:""→ judge sendschat_template_kwargs:{enable_thinking:false}(0.7s clean JSON). - Family beats topic: role family (recruiter/sales/finance/PM/designer/people-ops/revops/…) gates
gate:scopeunconditionally — no infra-token override ("DevOps Recruiter" is recruiting). Compound technical titles keep theINFRA_TITLEoverride viaNEG_TITLEbranch. - gate:region: remote is US-only (visa reality). "Remote - Bangalore" = onsite abroad → gate;
USregex pass wins overNONUSmatch ("U.S. & Canada" passes).
Gate hardening loop (live-census, TDD)
bun agents/sweep.ts --dry(full lane ≈ 30–90 s; 852 postings ≈ 62 pass / 790 filed).- Classify leaks in the top-10: family gap / region gap / scoring tail. Accept long tail (Director/Founder edge cases) — digest + human curation is the design.
- Token fix in
gates.tsregexes (NEG_FAMILY= no override;METRO/US/NONUSfor arrangement). NEVER dedupe-check by memory — read file first; the file has bitten line-offset edits repeatedly. - Pin every leak with a named regression test in
agents/test/gates.test.tsbefore/with the fix. bun test agents/test/ && bun x tsc --noEmit— hooks re-run these at commit.- Ship:
git commit(pre-commit = tests + tsc + docs-link + secret scan) →git push→ssh dankserver 'cd ~/Projects/frank-job-hunt && git pull'(timers pull from master; Dankserver drift = tomorrow's run is stale).
Registry verification (monthly, agents/verify-registry.ts)
Scouts' ats/ats_identifier are guesses (14/84 were wrong). Ritual:
bun agents/verify-registry.ts(dry, ~70 s serial) → REPAIR census.--writeapplies; repairs with live jobs preferred over empty boards (0-job boards 404 later).- Unresolved = honest manual lane (vanity Workdays, self-built ATS incl. majors, neogov) — NOT a code bug; per-entry error census in sweep output is the same signal.
- Update
targets/README.mdcensus lines +docs/log.md; commit/push/pull (same ship step).
Pitfalls
--ats=<x>smoke filters the census line — "N API-sweepable" reflects the filter, not the registry; don't diagnose a phantom bug.- Workday vanity careers URLs (
careers.uw.edu) are NOT CXS-API-resolvable; tenant-only identifiers are (site path required). - Root
README.mdvstargets/README.mdname collision in edit anchors: use full path headers. - Zealot endpoint probe:
curl http://192.168.0.143:7771/v1/models.