Bengaluru AI Job Radar
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Bengaluru AI Job Radar
Bengaluru AI Job Radar is a Python FastMCP server that helps an AI agent search for AI internship and early-career AI roles in Bengaluru, save them to a local JSON job tracker, and render a Prefab dashboard UI.
Built with FastMCP 3.4.x, Prefab UI 0.20.x, Tavily for internet search, and JSON for local persistence.
Assignment Mapping
Assignment Requirement | Implementation |
Custom MCP server | Python FastMCP server ( |
Internet-related function |
|
Local file CRUD |
|
UI communication |
|
Web app / dashboard | Prefab-rendered dashboard inside MCP-compatible host |
Prompt forcing all 3 tools | Included in |
Related MCP server: swissdevjobs
Architecture
User prompt
→ Agent calls search_ai_jobs (Tavily internet search)
→ Agent saves results via job_tracker_db (JSON CRUD)
→ Agent reads records via job_tracker_db (JSON CRUD)
→ Agent calls render_job_dashboard (Prefab UI)
→ Prefab dashboard appears in MCP hostMCP Tools
Tool | Purpose | Category |
| Search Tavily for AI/ML/GenAI internships and junior roles in Bengaluru | Internet |
| Create, read, update, delete, and manage job leads in a local JSON database | Local CRUD |
| Render a rich Prefab UI dashboard with summary metrics, job table, and charts | UI |
Setup (Windows)
cd C:\Cursor\EAGv3\S4
cd bengaluru-ai-job-radar
python -m venv .venv
.venv\Scripts\activate
pip install -e ".[dev]"
copy .env.example .env
# Edit .env and add your TAVILY_API_KEYSetup (macOS / Linux)
cd /path/to/bengaluru-ai-job-radar
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env
# Edit .env and add your TAVILY_API_KEYEnvironment Variables
Create a .env file (or set system environment variables):
TAVILY_API_KEY=tvly-xxxxxxxxxxxxxxxxx
DATABASE_PATH=data/bengaluru_ai_job_radar.dbTAVILY_API_KEY(required): Get one free at tavily.com.DATABASE_PATH(optional): Defaults todata/bengaluru_ai_job_radar.dbrelative to the project root.
Running the MCP Server
Direct Python execution
python -m bengaluru_ai_job_radar.serverUsing FastMCP CLI
fastmcp run src/bengaluru_ai_job_radar/server.pyApp preview (if supported)
fastmcp dev src/bengaluru_ai_job_radar/server.pyConnecting to an MCP Host
Add this to your MCP host configuration (Claude Desktop, Cursor, VS Code, etc.):
{
"mcpServers": {
"bengaluru-ai-job-radar": {
"command": "python",
"args": ["-m", "bengaluru_ai_job_radar.server"],
"cwd": "C:\\Cursor\\EAGv3\\S4\\bengaluru-ai-job-radar",
"env": {
"TAVILY_API_KEY": "your_key_here",
"DATABASE_PATH": "data/bengaluru_ai_job_radar.db"
}
}
}
}Note: Exact MCP host configuration may differ depending on Claude Desktop, Cursor, VS Code, ChatGPT MCP Apps, or another host.
Demo Prompt
Copy this prompt into your MCP-connected AI agent to exercise all 3 tools:
Use the Bengaluru AI Job Radar MCP server to complete this full workflow.
First, use the MCP internet search tool
search_ai_jobsto find companies currently hiring AI Interns, ML Interns, GenAI Interns, LLM Engineer Interns, AI Implementation Engineer Interns, or Junior AI Engineers in Bengaluru.Prioritize roles involving Python, LLMs, RAG, AI agents, embeddings, prompt engineering, fine-tuning, model training, NLP, or AI backend development.
Save at least 5 relevant job leads to the local JSON job tracker using the MCP CRUD tool
job_tracker_db.Then read the saved records back using
job_tracker_dbwith thelist_jobsoperation.Finally, render the saved results using the FastMCP Prefab UI tool
render_job_dashboard.Do not answer from memory. Do not skip any step. You must call all 3 tools:
search_ai_jobs
job_tracker_db
render_job_dashboard
The full prompt is also available in demo_prompt.md.
Example Workflow
1. Search for roles
The agent calls search_ai_jobs with:
{
"role_query": "AI Intern",
"location": "Bengaluru",
"max_results": 10
}2. Save job leads
The agent calls job_tracker_db for each result:
{
"operation": "create_job",
"payload": {
"company": "Sarvam AI",
"role_title": "AI Intern",
"role_type": "internship",
"location": "Bengaluru",
"skills": ["Python", "LLM", "RAG"],
"fit_score": 85,
"source_platform": "LinkedIn",
"source_url": "https://linkedin.com/jobs/view/123"
}
}3. List saved jobs
{
"operation": "list_jobs",
"payload": {"min_fit_score": 50}
}4. Update a role status
{
"operation": "update_status",
"payload": {
"job_id": "...",
"new_status": "applied",
"event_note": "Applied via company careers page"
}
}5. Add a note
{
"operation": "add_note",
"payload": {
"job_id": "...",
"note": "Reach out to founder on LinkedIn"
}
}6. Render dashboard
The agent calls render_job_dashboard → a Prefab UI dashboard appears with summary cards, a job table, recent activity, and skill frequency.
Running Tests
pytest tests/ -vTests cover:
Fit score calculator — scoring rubric, caps, keyword boosts
Normalization — company names, slug IDs, role type inference, skill extraction
JSON store — full CRUD lifecycle, upsert, deduplication, dashboard aggregation
Project Structure
bengaluru-ai-job-radar/
README.md
pyproject.toml
.env.example
.gitignore
demo_prompt.md
src/
bengaluru_ai_job_radar/
__init__.py
server.py # FastMCP server entrypoint
config.py # Environment variable loading
schemas.py # Pydantic validation models
tools/
__init__.py
search.py # search_ai_jobs MCP tool
database.py # job_tracker_db MCP tool
dashboard.py # render_job_dashboard MCP tool (Prefab UI)
services/
__init__.py
tavily_service.py # Tavily API integration
fit_score.py # Deterministic fit-score calculator
normalization.py # Company/role normalization, skill extraction
storage/
__init__.py
json_store.py # JSON CRUD store (JobRadarStore)
data/
.gitkeep # JSON DB created here at runtime
tests/
test_fit_score.py
test_normalization.py
test_json_store.pyKnown Limitations
Tavily search result quality depends on public indexing of job boards.
Some job platforms may block direct scraping, so the tool relies on Tavily snippets and source links.
Compensation data may be unavailable for many listings — shown as "unknown".
Prefab UI APIs are actively evolving; dependency pinning to
prefab-ui>=0.20.0,<1.0.0is used.Dashboard interactivity depends on the MCP host's support for FastMCP Apps / Prefab rendering.
Company name extraction from search results is best-effort; some may show as "unknown".
The fit-score algorithm is deterministic and rule-based — it does not use ML or LLM reasoning.
Dependencies
Package | Purpose |
| MCP server framework + Prefab app support |
| Prefab UI components (Card, DataTable, Badge, etc.) |
| Request/response validation |
| .env file loading |
| HTTP client (Tavily fallback) |
| Tavily search SDK |
| Rich terminal output |
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Search AI-native jobs, inspect application forms, and fetch free interview-prep resources.
Job search for your AI: save jobs, research companies, keep stories, track applications.
Search ~1.4M open jobs from 24k company career boards: Greenhouse, Lever, Ashby, Workday and more
Job platform for AI agents. Track tech jobs from companies that match your stack.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables automated job searching from multiple boards, filtering matches against saved criteria, deduplicating seen postings, and tracking application statuses. Runs locally and integrates with Claude Desktop for natural-language queries and updates.-
- FlicenseNot gradedqualityAmaintenanceLets AI agents search, filter, and apply to salary-transparent tech jobs across nine job boards in eight countries, filtering by pay, remote work, tech stack, and location while tracking applications to avoid duplicates. It returns JSON-first results so an agent can drive job discovery and application end-to-end from the terminal or chat.-
- FlicenseNot gradedqualityAmaintenanceEnables AI agents to search and filter thousands of tech job postings across nine boards and eight countries — including salary-transparent listings and Swiss and Singapore government portals — and to apply directly. It also tracks prior applications locally so already-applied roles are hidden from results.-
- FlicenseNot gradedqualityAmaintenanceEnables AI agents to search, filter, and apply across nine job boards in eight countries — including ~4,700 salary-transparent tech postings plus ~50,000 Swiss and ~9,000 Singapore IT listings — with salary, remote, tech, and date filters. It also tracks applications locally so already-applied jobs are returned as data rather than errors.-