Juicebox MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| jb_list_searchesA | List the saved searches on a Juicebox project (searchId + name). Saved searches are stable and re-runnable, so this is the entry point for pulling existing sourcing work. Defaults to the configured project. |
| jb_get_resultsA | Pull a saved search's ranked candidates — up to ~500 in one call. Returns name, LinkedIn URL, title, company, location, a numeric matchRate (0-100, banded) and per-criterion verdicts. Costs NO export credits: this is the same free surface the results page renders. READING THE RESULTS: at the top of a ranked list every candidate meets every criterion, so criteria-met count does NOT discriminate up there — use matchRate and depth. A criterion with verdictFound=false is reported as result "unknown": that means no evidence was found, NOT that the candidate fails it. Never treat an unknown as a negative. If the search has never been executed, this errors — open it in the app and press "Run search" once. |
| jb_countA | Size a filter set WITHOUT running a search — the tuning primitive. Free and side-effect free, so permute filters and compare before committing to a run. The endpoint is VERIFIED DETERMINISTIC (same body, same count on repeat), which is what makes the comparisons below trustworthy. queryInput is a PATCH, not a whole body. It is merged over a ~164-key template harvested live from a saved search, because a PARTIAL body does not error — it returns result:0, which reads exactly like "nobody matches your filters". Pass only the keys you want to change. Use searchId to choose which saved search supplies the template; the response echoes ALWAYS CHECK SOME FILTERS EXPAND RATHER THAN RESTRICT, which is the opposite of the intuition and was measured on one search (baseline 1413): dropping |
| jb_run_searchA | CREATE and RUN a new Juicebox search from a natural-language prompt, then return its ranked candidates. This is the ONLY tool here that WRITES: it leaves a real saved search in the workspace, visible to the whole seat. Confirm with the user before calling it, and do not call it speculatively in a loop — each call is a persistent object someone has to look at. THE PROMPT IS THE CONTROL SURFACE, and it beats filter tuning. Juicebox extracts filters from the prompt and does it well: "roughly $10M to $100M revenue" became revenueRanges ["$10m-$25m","$25m-$50m","$50m-$100m"], and "exclude enterprise megacaps and independent consultants" became an extra ranking criterion. Measured head-to-head against the best hand-tuned search on the same intent, the prompt-built one returned 42/44 usable candidates versus 22/30. So state the company shape, the geography, the seniority, the number the person must own, and what to EXCLUDE, in plain prose. WRITE THE EXCLUSIONS EXPLICITLY. Two pollution categories dominate this market and both respond to being named: enterprise mega-caps (a "VP CS" at Microsoft or IBM owns a structurally different job) and independent consultants / fractional advisors / founders of CS consultancies. DO NOT tune for a small pool. Pool size and top-of-list quality are uncorrelated — the better of two measured searches had 3.4x the pool. Tune for ranking, not reach. matchRate is NOT comparable ACROSS searches: it is scored against each search's own criteria, so a stricter criteria set produces LOWER scores on BETTER people. Only the ordering within one search means anything. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: list saved searches, fetch ranked results, tune filter counts, and create/run a new search. No two tools overlap in function, making misselection unlikely.
All tools follow the consistent pattern of 'jb_' prefix + verb_noun (list_searches, get_results, run_search) with count as a concise verb. This is predictable and uniform.
Four tools is well-scoped for a talent sourcing server. Each tool earns its place and covers the core workflow without redundancy or bloat.
The surface covers the essential lifecycle: listing existing searches, retrieving results, tuning filters without execution, and creating new searches. Minor gaps like deleting or updating saved searches exist but are not critical for the primary use case.