Docs
CommunityJev Integrations & Adapters
Competitor Monitor with Jev
An official Mastra template that checks pricing, changelog, and documentation pages against saved captures, has Jev classify each change with its evidence, and routes it to ignore, record, request review, or alert.
- Format
- Docs
- Reading time
- 2 min
- Published by
- Community
- Author
- Mastra
- Last verified
- Oct 2026
- Languages
- TypeScript
- Platforms
- Vercel AI Gateway
- Capabilities
- Requires API key
Highlights
- Scaffold with npx create-mastra@latest competitor-monitor --template competitor-monitor-jev --no-install, then npm ci and cp .env.example .env.
- Two routes to Jev: TYPESAFE_AI_API_KEY with jev-latest by default, or JEV_ACCESS_MODE=vercel-gateway plus AI_GATEWAY_API_KEY for typesafe-ai/jev.
- Unchanged pages with no pending work skip Jev, each chat request runs one check, and the first successful check saves a baseline instead of reporting changes.
- Each monitor covers 3 sites by default, MAX_SOURCES accepts 1 to 20, SOURCE_CONCURRENCY=3 controls fetches up to 5, and each competitor needs its own monitorId.
- The optional scheduler runs daily at 09:00 UTC from scheduled-monitors.json, and only scheduled checks dispatch notifications such as Markdown reports.
Watch out
Official but opinionated: it monitors public English-language pages only, because the template says Jev's accuracy is best in English, and it needs access to openai/gpt-6-luna for the Studio chat plus a TypeSafe or gateway key. Browser fallback is restricted, so sites needing cross-origin resources may not render useful content.
Questions about this entry
Short answers drawn from the linked project or page.
You tell the Studio chat which product to monitor, share its public page URLs, and describe what matters; the monitor compares pricing, changelog, and documentation pages with saved history, Jev classifies the changes, and an LLM explains results with source links and before/after excerpts.
Run npx create-mastra@latest competitor-monitor --template competitor-monitor-jev --no-install, cd in and npm ci, copy .env.example to .env, keep EXECUTION_MODE=local so local databases are created, then npm run dev and open Mastra Studio.
OPENAI_API_KEY for the Studio chat using openai/gpt-6-luna, and TYPESAFE_AI_API_KEY to classify changes with Jev. As an alternative you can set JEV_ACCESS_MODE=vercel-gateway and AI_GATEWAY_API_KEY, which routes through typesafe-ai/jev on the Vercel AI Gateway.
Three by default. Set MAX_SOURCES to a value from 1 to 20, and SOURCE_CONCURRENCY to control how many sites are fetched at once, up to 5. Use a separate monitorId per competitor so their histories stay independent.
Only scheduled checks create and dispatch notifications; baselines and manual checks stay silent. Failed classification preserves evidence for a later scheduled check, failed deliveries are retried, and custom providers must deduplicate eventId to handle retries safely.
Because Jev's primary training language is English and that is where its accuracy is currently best; it can process other languages but they do not perform equally well, so the template limits monitored pages to English for more reliable change classification.
It collects public English-language pages that allow automated access, without login or CAPTCHA, and redirected destinations must also permit access through robots.txt. The browser fallback permits same-origin scripts and modules only, does not browse autonomously, and performs no page actions.
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.