What it is, how it works, and how your team talks to it.
learned 3/3) is what separates "I taught it" from "it generalized."The ATS Agent is a standing recruiting agent, built on the same framework as Pam (your CS agent). It works two jobs at once: an ATS director that advises you on hiring decisions (funnel metrics, req priorities, offers, compliance), and a recruiting manager/interviewer that helps the team execute (screening, interview prep, candidate comms). It reports to Toby, the same way a recruiting coordinator would report to your HR manager. It has its own memory, learns from feedback your team gives it, and every rule it learns is proven before it ships, not just accepted on faith.
When Jose or Homer ask Toby a recruiting question in Slack, Toby does not answer from his own memory. He is required to hand the question to the ATS Agent, get its answer, and relay it back like a manager would. This was a deliberate build choice: Toby already talks to every employee with no restrictions, and the Vegas AM search running through the ATS Agent right now is confidential. Piping the question through a locked door (see below) means Toby can serve everyone else normally while this one topic stays fenced.
The shared ATS page (Vegas Hiring tab) is where you and the panel work with it hands-on:
| Feature | Who | What it does |
|---|---|---|
| Teach box | You + Jose only | Free-form notes that become candidate rules for the agent's memory. Locked to the hiring panel as of today; Homer gets a friendly redirect to the bug button instead. |
| Thumbs up/down + flag answers | Everyone with page access | Lightweight signal, stays open to Homer too, feeds the same learning loop without letting him author rules directly. |
| Approve / Reject proposals | You + Jose only | A drafted rule only becomes real once one of you approves it, and only after it proves itself (below). |
| Bug button | Everyone with page access | Homer's path for anything wrong. Goes to a separate report queue, not the KB. |
A note in the teach box does not become policy just because someone approved it. Before a taught rule ships to the agent's live memory, it has to answer 2-3 real past cases it was never shown, and an independent grader checks its answers against what actually happened. Pass, and the rule ships tagged with proof (like learned 3/3). Fail, and it comes back to the Today page with the case it missed, so you can see exactly where the lesson didn't stick. This is the difference between "I taught it" and "it generalized," and it is the part of the build most likely to quietly break if anyone ever touches the code without re-running the proof.
A full two-model code review (two different AI model families, so blind spots do not overlap) found 8 real problems in the build. All are fixed and re-verified live:
~/cron-launchers/ats-bot/ | Agent home: brain, memory, tools, logs |
AGENT.md / SOUL.md / RULES.md | Your instructions to the agent (not its memory) |
data/kb/ats-learned.md | The agent's own memory, written by the feedback loop |
vegas-hiring/index.html | The shared ATS page (ATS Agent tab) |
tools/ats_connectors.py | The locked door Toby uses to reach the agent |
data/logs/build-ledger.jsonl | Proof log: every build/hardening step and what verified it |
Smaller, optional items: the Chargeback Agent (a separate, unrelated build) has a cron that never got loaded, unrelated to anything here. And two open questions from the original build review are still unanswered: whether flags should also ping Slack, and whether the agent should triage the Vegas hiring inbox daily.