Engineering case study / JobOps AI
Evidence first.
Analysis second.
A deployed, multi-tenant application combining document ingestion, semantic retrieval, and grounded RAG to connect job requirements with résumé evidence.
01 / The problem
Make the basis of an assessment visible.
A résumé and a job description contain different kinds of information. JobOps brings them together at the requirement level, so the reader can inspect what is supported by source evidence.
Each requirement is classified as Supported, Partially Supported, or Not Supported. The application does not produce numeric ATS scores or hiring predictions.
- 01 / Ingest
Documents
Résumé and job description
Document ingestion
Embedding pipeline - 02 / Retrieve
Semantic search
Relevant source evidence
PostgreSQL + pgvector
Tenant-scoped access - 03 / Ground
Requirement analysis
Classifications tied to evidence
Grounded RAG
Provenance validation
Supported · Partially Supported · Not Supported
02 / My role
Full-stack, self-directed engineering.
I built the application across the ingestion and embedding pipeline, API and database layers, grounded AI outputs, frontend, automated backend tests, and Railway deployment.
03 / Architecture
From source documents to grounded output.
Ingestion & retrieval
Documents enter an ingestion and embedding pipeline. PostgreSQL with pgvector supports semantic retrieval of relevant evidence for the analysis.
Generation & provenance
OpenAI powers grounded RAG. Server-controlled provenance validation requires AI-generated citations to resolve to application-owned source evidence.
Application & data
A Next.js frontend connects to FastAPI APIs. Tenant-scoped access is enforced in SQL, with session and CSRF authentication and Alembic database migrations.
Deployment & checks
The containerized Railway deployment has a public frontend and private backend/database services. Automated backend tests and GitHub Actions CI quality gates support development.
04 / Engineering decisions
Keep evidence and access under application control.
- Requirement-level classifications. Readers can examine individual requirements and their supporting evidence without relying on a single numeric score.
- Server-owned provenance. Citation references must resolve to sources owned by the application; generated text alone is not the source of truth.
- Tenant-scoped SQL. Data access is scoped to the tenant at the query layer.
- Private application services. Railway exposes the frontend while the backend and database remain private services.
05 / Scope & tradeoffs
Support a human assessment.
A supported classification indicates résumé evidence for a requirement. It is not a prediction of performance, employability, or hiring outcomes. Provenance validation checks that citations resolve to application evidence; it does not by itself establish that every interpretation is correct.
Requirement-level evidence makes the result inspectable, while leaving judgment with the reader. No accuracy, adoption, or time-saving metrics are claimed here.