Skip to main content
Glama
jnot807

Juicebox MCP

by jnot807

jb_run_search

Turn a natural-language prompt into a ranked candidate list. Saves the search to the workspace; confirm before running.

Instructions

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
needNoHow many candidates to return (default 30). Each 15 costs one DOM page walk, because LinkedIn URLs are encrypted in the API and have to be joined off the rendered cards. Juicebox ranks well, so the first two pages are usually the whole value.
promptYesNatural-language description of who to find. Include seniority + function, geography, years, the metric they must own, the company shape (revenue band works — say it in dollars), and explicit exclusions.
projectIdNoJuicebox project id — a ~20-character key like c5PheL2fANnX6uBQVUdo, taken from the /project/<id>/ part of a Juicebox URL. Optional: omit it to use the default project discovered at sign-in.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden — and it delivers. It discloses the mutation side effect, persistence ('leaves a real saved search in the workspace, visible to the whole seat'), hidden costs (DOM page walks per 15 candidates), and the matchRate cross-search non-comparability caveat. This is exactly the kind of behavioral context an agent needs and that annotations would normally supply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well front-loaded — purpose, write-warning, and confirmation instruction all land in the opening. But it runs several dense paragraphs and includes persuasive detail (the 42/44 versus 22/30 head-to-head benchmark) that, while informative, goes beyond what a call-time decision strictly needs. Mostly earns its sentences but is longer than ideal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and no annotations, coverage is unusually extensive: side effects, confirmation requirement, prompt construction strategy, and result-comparability caveat are all addressed. The one gap is that the description never says whether the created search's ID/reference is returned, which matters for chaining calls to the sibling ID-based tools afterward.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds real semantic depth to the prompt parameter beyond the schema: it explains that Juicebox extracts filters from prose, states what to include (seniority, geography, metric, etc.), and dictates explicit exclusions. This materially changes how the agent would construct the prompt, going beyond the schema's field list.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Leads with a specific verb+resource+outcome: 'CREATE and RUN a new Juicebox search from a natural-language prompt, then return its ranked candidates.' It explicitly distinguishes itself from the read-only siblings with 'This is the ONLY tool here that WRITES,' so an agent can immediately separate it from jb_list_searches, jb_get_results, and jb_count without opening their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides strong when-not guidance: confirm with the user before calling, do not call speculatively in a loop, do not tune for a small pool. It signals the write nature versus siblings ('ONLY tool here that WRITES'), making the read-vs-write split clear. However, it never names the sibling alternatives explicitly with conditions (e.g., 'use jb_get_results for an existing search'), leaving that substitution implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jnot807/juicebox-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server