all projects
in progressMay 2026 to present

Independent AI project

EFQM/RADAR AI Report Analyzer

A local-first, multi-agent RAG pipeline that performs the first-pass desk assessment of EFQM-based self-assessment reports and produces evidence-linked draft feedback for human assessors.

My role
Project lead and AI/software architect
Context
Independent project, May 2026 to present, leading a team of five
Reading time
12 min read
Independent AI project

01

The problem was bigger than document summarization

An organisational self-assessment report can be hundreds of pages long. An assessor does not simply need a shorter version. They need to connect each claim to evidence, find gaps and contradictions, apply the correct assessment guidance, and trace every conclusion back to the submission.

I started this project to support that first desk-assessment pass without sending confidential reports to an external model API. The output is structured draft feedback for a human assessor to inspect and revise. It is not an automated final decision.

02

The pipeline keeps each responsibility bounded

LangGraph coordinates parallel criterion agents and carries the assessment state between them. Pydantic v2 defines the contracts they exchange, so malformed or incomplete output is rejected before it can reach the report stage. Qdrant retrieval is filtered by assessment item, which keeps guidance and source evidence tied to the question being reviewed.

The runtime stays local by default. Ollama serves Qwen2.5 14B, while nomic-embed-text produces embeddings. PyPDF handles normal extraction, and RapidOCR with ONNX Runtime recovers text from scanned pages and chart content. FastAPI and Jinja2 provide the upload and assessor-review interface.

  • Every scoring statement must carry a valid evidence reference.
  • Metadata filters prevent evidence from drifting between assessment items.
  • The report records strengths, gaps, reasoning, source links, and review diagnostics.
  • Human correction and export are part of the normal workflow.

03

Quality gates run before a report is trusted

The CI release gate checks retrieval precision, recall, and F1, citation coverage, schema validity, question coverage, report completeness, evidence validity, and three-run scoring stability. Each run records its model and execution configuration with a SHA-256 digest, then writes machine-readable metrics to a build artifact and a pull-request summary.

One evidence calibration covered 573 segments and all 38 assessment-guide items. That run recorded zero retrieval or grounding failures, 100 percent schema validity, 100 percent question coverage, and 100 percent evidence-reference validity. The report rendered 84 reasoning records and exported 143 supporting quotes without an unmatched quote.

A corrected PDF-ingestion run routed all 65 Results records: 42 were accepted through OCR and 23 were flagged for review. None were silently lost or attached to the wrong item. A synthetic retrieval fixture reached F1 1.0, which I treat as an engineering regression result rather than proof of real-world assessment accuracy.

04

Missing authority must fail closed

The assessment guide is the scoring authority available to the pipeline. EFQM and RADAR support evidence analysis and report structure, but the software does not fill in unavailable official values with convenient defaults. If an authoritative weight, band, or finalisation rule is missing, official scoring stays blocked and any supported interim output is labelled provisional.

That boundary also limits what the report claims. The system performs document-based desk assessment. It does not claim interviews, site visits, assessor consensus, jury decisions, or external verification. Unsupported claims become gaps or questions for a human assessor, not facts generated by the model.

05

Leading the build while teaching the team

I lead a five-person team whose members began without prior experience in RAG, agent orchestration, structured LLM output, or EFQM/RADAR assessment. I built a seven-day onboarding programme with practical exercises and minimum pass conditions, then divided the system into workstreams for ingestion, evidence governance, retrieval evaluation, review interfaces, reporting, and quality.

Each workstream has an owner, dependencies, acceptance criteria, and weekly deliverables. OpenSpec documents and GitHub issues make the contracts explicit. Protected-branch pull requests must pass tests, Ruff, mypy, security checks, and the project quality gates before integration.

The team-integrated build reached 303 tests at 89.94 percent coverage. A later autonomous implementation expanded the suite to 1,360 tests at 87.48 percent coverage. Those numbers describe engineering coverage, not model accuracy.

06

What's left

The pipeline is already usable for governed desk-assessment drafts, but the remaining work is about defensibility rather than adding more agents. Official scoring and finalisation stay blocked until the missing authoritative scoring configuration is available.

  • Build a gold-labelled real-document benchmark so retrieval precision and recall can be measured outside the synthetic fixture.
  • Broaden OCR and cross-page evidence tests while preserving explicit review diagnostics for uncertain records.
  • Run a controlled human-assessor comparison before publishing any time-saving or efficiency claim.
  • Aggregate quality results across configurations and releases beyond the current three-run stability check.

07

Future work (maybe)

These are optional directions, not committed deliverables. They only make sense after the current governance and evaluation gaps are closed.

  • An assessor comparison view that places source evidence, AI reasoning, and reviewer corrections side by side.
  • A longer-term quality dashboard once enough comparable runs exist to make trends meaningful.
  • Additional local model and embedding adapters, but only when they can pass the same retrieval, grounding, and stability gates.
  • A synthetic or consented benchmark pack that can be shared without exposing confidential submissions.

Outcomes

  1. 01A local upload-to-report workflow with source-linked findings, assessor review, correction, and export.
  2. 02A measured release process covering retrieval, grounding, schema, question coverage, evidence references, report completeness, and repeated-run stability.
  3. 03A fail-closed governance model that blocks unsupported official scoring instead of allowing the AI or team to invent missing values.
  4. 04A five-person delivery structure with bounded ownership and protected integration gates.

What I learned

  1. 01Assessment quality depends on evidence provenance and authority boundaries as much as model capability.
  2. 02A local-first claim has to cover models, embeddings, storage, logs, metrics, and exports.
  3. 03Evaluation fixtures are useful release gates, but they do not replace a labelled real-world benchmark.
  4. 04A team learns unfamiliar AI concepts faster when architecture and acceptance criteria are concrete enough to test.