How jobContext exposes its tools over HTTP, SSE, and WebSocket for iPad, browser, and Open WebUI clients without breaking existing local stdio MCP support.
Add remote and mobile access so jobContext can be used from iPad, browser clients, Open WebUI, VS Code tunnels, and future web UIs without touching the existing Claude Desktop stdio path.
Claude Desktop
↓ stdio
jobContextMCP ┌─────────────────────┐
│ Claude Desktop │
│ (existing stdio) │
└──────────┬──────────┘
│ stdio
┌──────────▼──────────┐
│ jobContextMCP │
│ core tools/services │
└──────────┬──────────┘
│
┌─────────────────┼─────────────────┐
│ │ │
REST SSE WebSocket
│ │ │
▼ ▼ ▼
Open WebUI Browser UI iPad clients
Custom app Streaming Remote agentsBusiness logic must not be tightly coupled to any transport layer. The layered architecture:
transport/
mcp_stdio/ ← existing Claude Desktop path (untouched)
http/ ← FastAPI REST + SSE
websocket/ ← future iPad/agent clients
services/
resume_service.py
job_analysis_service.py
retrieval_service.py
tone_service.py
langgraph_service.py
repositories/
vector_store/
documents/
embeddings/
workflows/
langgraph/MCP tools become thin wrappers around the shared service layer. No duplicated logic between HTTP and MCP.
FastAPI endpoints for job analysis, resume generation, story retrieval, and tone search. JSON in, structured data out.
Streaming progress for resume generation, live job analysis, and multi-step LangGraph workflows. Essential for browser and iPad UX.
Bidirectional channel for iPad clients and remote agent sessions requiring low-latency two-way communication.
Existing Claude Desktop transport. Preserved exactly as-is. MCP tools delegate to services rather than owning logic.
POST /api/jobs/analyze
{
"job_description": "...",
"target_role": "...",
"resume_id": "default"
}Returns keyword extraction, match score, missing skills, recommended STAR stories, and suggested resume edits.
POST /api/resumes/generate
Returns a tailored resume in markdown and ATS-optimized form. PDF export available via the LaTeX pipeline.
GET /api/workflows/stream/{session_id}SSE stream of multi-step LangGraph workflow progress. Resumable sessions planned.
POST /api/stories/search POST /api/tone/search
Semantic search over STAR stories and tone samples with relevance scores.
API keys initially, JWT when needed.
Authorization: Bearer <token>
Token stored in .env. Microsoft Entra ID (MSAL) integration for the hosted dashboard.
Tailscale-compatible, LAN-safe by default, configurable host binding. Not exposed publicly without explicit opt-in.
HOST=127.0.0.1 PORT=8000 ENABLE_REMOTE=false