Jev directory
CommunityJev Agents & MCP
GrantScout
An autonomous research agent that searches grant sources daily, scores each lead's fit with Jev, and emails one ranked HTML digest with deadlines, amounts, and apply links. Python runs the loop; Composio supplies the search, page-fetch, and Gmail tools.
- Stars
- 1
- Reading time
- 2 min
- Published by
- Community
- Added
- Nov 2026
Highlights
- Planner runs up to three rounds, asking Jev which unused search angle to try and whether enough open grants exist to stop.
- Scorer asks Jev for the deadline, award amount, openness, 501(c)(3) eligibility, and fit score for each lead.
- A lead is filed Open at fit 2.0 or above with deadline confidence 0.60, fit confidence 0.45, eligibility 0.60, and open 0.50.
- Budgets cap the run at 3 planner rounds, 2 queries per channel, 25 Jev calls per channel, 30 page fetches, and 250 Jev calls.
- seen_grants.json records emailed grants so later runs send only new grants plus closing-soon reminders.
Questions about this entry
Short answers drawn from the linked project or page.
Use Python 3.12, the version the daily workflow uses. Create a virtual environment, run pip install -r requirements.txt, copy .env.example to .env, and fill in the keys on your own machine.
The run checks that COMPOSIO_API_KEY and TYPESAFE_API_KEY are set. Composio provides the search, page-fetch, and Gmail tools, while Grants.gov is called directly. Search tools run as COMPOSIO_USER_ID and Gmail runs as GMAIL_USER_ID.
One HTML email lists each grant's name, funder, amount, deadline, fit score from 0 to 4, and apply link, split into New grants ready to apply, Needs review, and Closing soon sections. When no award amount is found, the amount cell says See page.
A lead is filed as Open when the fit score is at least 2.0 and all checks clear: deadline confidence at least 0.60, fit confidence at least 0.45, eligibility at least 0.60, and open at least 0.50. A lead at fit 1.5 or above that misses one check goes to Needs review.
budget.py is a thread-safe counter: 3 planner rounds, 2 queries per channel, 25 Jev calls per channel, and 30 page fetches plus 250 Jev calls for the whole run. A call that would pass its cap is refused and that kind of work stops.
No. The live path sends exactly one message, and only to the address on the connected Gmail profile. The log prints that address with the name masked, and API keys are read from the environment and never printed.
A dry run writes a digest.html preview and does not send mail or update memory. A channel that errors is logged and skipped while the other channels keep going, and leads with no future deadline or an unreadable page are skipped and never emailed.
Reactions & coverage
Posts, threads, and videos about this entry from around the web.
X: Agent Handoff Gate: agents verify what they hand off
X: Jev as an LLM guardrail inside Agentgateway
X: Vercel's fx safety reviewer, measured at 18× faster
Reddit: Early experiments wiring Jev into Pi as a safety layer and model router.
From the Jev guides
Original write-ups on what this entry is for.
From the Jev AI model community
Posts from builders shipping with Jev right now.