One place for your hiring pipeline. Talk to the copilot in Telegram, WhatsApp, or the web—add candidates, log interviews, track follow-ups, get a daily brief, and send emails. Same memory everywhere.
Built as an OpenClaw plugin with Mem0: structured hiring memory (candidates, interactions, promises), auto-recall and auto-capture, and 10 tools so the agent can run the pipeline without a separate ATS.
Note: This project does not use the official OpenClaw × Mem0 plugin (
@mem0/openclaw-mem0). It talks to the Mem0 API directly from the TalentOS plugin. Reason: maximum customization (structured hiring schema, 10 domain tools, custom recall/capture) so that all memory logic lives in this repo and using the official plugin would mean having very less code here to review!!
TalentOS runs inside OpenClaw as a plugin; Mem0 is the single source of truth. All hiring flows (add candidate, log interaction, daily brief, etc.) go through the plugin; an optional view server provides a read-only dashboard from the same Mem0 data.
flowchart TB
subgraph entry["Entry points"]
Chat[Telegram / WhatsApp / Web]
Webhook[Webhook]
Cron[Cron]
end
subgraph openclaw["OpenClaw"]
Gateway[Gateway]
subgraph plugin["TalentOS Plugin"]
Hooks[Hooks: auto-recall + auto-capture]
Skill[Skill: SKILL.md]
Tools[10 tools]
end
end
Mem0[(Mem0)]
ViewServer[View server]
Dashboard[Dashboard /view]
entry --> Gateway
Gateway --> plugin
Hooks --> Mem0
Tools --> Mem0
ViewServer -->|read-only| Mem0
Dashboard --> ViewServer
→ Full architecture — request flow, hooks, tools, memory schema, cron, webhook.
- Add candidates: Name, role, contact, referrer. Stored in Mem0, not lost in chat.
- Log interactions: Screening notes, stage updates, strengths/concerns. Timeline per candidate.
- Track follow-ups: “Schedule call with X tomorrow 3pm.” Surfaces in the daily brief and follow-ups list.
- Query pipeline: “Who’s in the pipeline for Staff Engineer?” “Who did Ankit refer?” “Pipeline health?” “Any candidates who expressed concerns about compensation?”
- Daily brief: Proactive summary: follow-ups due, at-risk candidates, pipeline snapshot. On demand or on a schedule (cron).
- Send email: “Send [candidate] an email to schedule a call.” Uses Resend; one message, no copy-paste.
- Same memory, all channels: Add in Telegram, ask in WhatsApp or from a webhook. One
user_id, one pipeline.
- Repo:
npm install. Copy.env.example→.env, setMEM0_API_KEY(for the optional dashboard). - OpenClaw: Install the TalentOS plugin into
~/.openclaw/extensions/talentos-hiring, setapiKey(ormem0ApiKey) anduserIdin config, allow the TalentOS’ tools, restart the gateway. → Setup - Optional dashboard:
npm run dev→ http://localhost:3010/view (read-only pipeline view).
| Part | What it does |
|---|---|
| openclaw-plugin/ | Skill, auto-recall/capture hooks, 10 tools + optional email. All hiring runs here; no separate API. |
| View server | Optional. GET /view, GET /api/v1/talent/view — dashboard and read-only API from Mem0. |
| Command | Purpose |
|---|---|
npm run dev |
Run view server (tsx). |
npm run build |
Compile TypeScript. |
npm start |
Run view server (node). |
npm run test |
Unit tests. |
npm run smoke |
Smoke test (server must be running). |
Screenshots are in docs/screenshots/. Some flows use two images to show the full conversation or view.
Add candidate — Add a candidate in chat → agent confirmation.
Full pipeline — "Who's in the pipeline for [role]?" → table of candidates.
Email to schedule call — Send email → agent sends via Resend, confirmation.
Follow-ups or daily brief — "What follow-ups are due?" or "Give me the daily brief."
Memory dashboard — http://localhost:3010/view
- ARCHITECTURE — Diagram, tools, hooks, skill, view server, cron, webhook, memory schema.
- SETUP — Install, config, tools allowlist, view server, LLM (Ollama/Anthropic/OpenAI), cron, webhook, email.
License: ISC. See LICENSE, CONTRIBUTING, SECURITY.






