recruiter-agent
- Visibility
- public
- Deploys
- 31
- Build Number
- 15b9aa57
- Updated
- Jun 10, 2026
Recruiter Agent
What it does
Given an open requisition, the agent pulls candidates from every source the user has connected, scores them on a thirteen-feature rubric, runs AI reasoning per candidate, applies a second-pass critic review, and returns the top thirty with concrete reasoning and "network context" observations the way a senior recruiter would frame them.
The agent learns continuously from three signals:
- Thumbs feedback per card (numeric rubric weight updates), from the web UI or the Slack
feedbackcommand - Free-text comments per card (injected verbatim into the next ranking's reasoning prompt)
- Greenhouse rejection reasons (mapped to feature impact via
intelligence/rejection_signal.py)
Deploy your own copy
Every deployment is fully isolated: its own managed Postgres, its own auto-generated encryption secrets, its own users. You do not share data with any other deployment of this blueprint. Nothing needs to be pasted at deploy time; the agent generates and persists its platform secrets on first boot.
# 1. Install the CLI and sign in
curl -fsSL https://astropods.com/install | sh
ast login
# 2. Deploy straight from the public catalog
ast deploy recruiter-agent --adapter slack --adapter web --wait
For Slack, create your own Slack app in your workspace first: import doc/slack-app-manifest.json at https://api.slack.com/apps (Create New App, then "From an app manifest"), install it to the workspace, and paste the two tokens (xapp-... app token, xoxb-... bot token) when the deploy form asks for them.
Heads up: your web URL may not provision
The platform's shared load balancer has a limited number of URL slots. Your deployment can come up healthy but never receive a public web URL (the link returns NXDOMAIN). This is a platform capacity issue, not a broken deploy. The Slack path does not use a URL slot and works on every deployment, so treat Slack as the primary surface and the web UI as a bonus if your URL provisions.
First-run data
Pick one of three on the deploy form:
- Nothing (default): users paste their own Greenhouse Harvest key (
setkey greenhouse <key>in a Slack DM, or the web Settings page) and rank their real pipeline. GREENHOUSE_MOCK_URL: point Greenhouse calls at a Postman mock for demos.USE_SAMPLE_DATA=true: zero-Greenhouse demo mode; ranking runs against 15 bundled sample candidates.
In every case each user sets their own Anthropic key: setkey anthropic sk-ant-... in a Slack DM, or the web Settings page.
Using it from Slack (no web UI needed)
DM the bot after install. Your account is created automatically from your Slack email.
| Command | What it does |
|---|---|
help | Command list |
whoami | Your account + which keys are set |
setkey <kind> <key> | DM only. Store your BYOK key: anthropic, greenhouse, pdl, gem, gnews |
list jobs | Open requisitions |
rank <job-id> | Ranked shortlist with reasoning, streamed progress |
similar <rank#> [count] | Candidates from your pool with a similar background (semantic search) |
| `feedback <rank#> <up | down> [comment]` |
draft <rank#> [hook] | Claude-drafted outreach email for a shortlisted candidate |
Architecture
- FastAPI agent on Astro AI: web UI on port 80, plus the messaging sidecar for Slack
- Managed Postgres for canonical state, auto-provisioned per deployment
- Managed Qdrant + gateway embeddings for semantic candidate search ("more like X"), embeddings-only gateway usage so chat costs stay BYOK
- In-process NetworkX context graph (swappable to a managed graph store post-launch)
- Anthropic Claude (Sonnet for reasoning, Haiku for cheaper passes)
- Postman API Catalog publish + Postman mocks/monitors for the integration plane
User model
Sign in with email and password on the web, or just DM the bot on Slack; identity unifies by email across both surfaces. Per-user credentials are Fernet-encrypted at rest. Every user brings their own Anthropic and Greenhouse keys, so costs land on the right account.
- Visibility
- public
- Deploys
- 31
- Build Number
- 15b9aa57
- Updated
- Jun 10, 2026