← Back to selected work

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.

System flow Architecture overview
  1. 01 / Ingest

    Documents

    Résumé and job description

    Document ingestion
    Embedding pipeline
  2. 02 / Retrieve

    Semantic search

    Relevant source evidence

    PostgreSQL + pgvector
    Tenant-scoped access
  3. 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.