Overview
JobPulse RAG aggregates job postings from 12 sources and generates tailored, RAG-grounded cover letters that draw on the candidate's own experience corpus rather than generic templates.
Architecture
- Backend: FastAPI with Pydantic v2 request/response models and SQLAlchemy 2.0 async.
- Retrieval: pgvector (HNSW index) over an embedded experience and job corpus; hybrid retrieval with reranking before generation.
- LLM layer: Multi-provider abstraction across OpenAI and Anthropic Claude, with retry/backoff, timeouts, cost circuit breakers, and content-hash response caching in Redis.
- Background work: Celery workers handle ingestion, embedding (batched), and generation so the HTTP request lifecycle never blocks on an LLM call.
- Resilience: AI features fail open — an LLM outage degrades gracefully instead of blocking job discovery.
Highlights
- 12-source ingestion pipeline with deduplication and structured normalization.
- RAG-grounded cover letters keyed to each posting and the candidate's real history.
- Versioned prompt registry with changelogs; eval suite run on every prompt change.