Case study
Open Policy Finder
Work on a Jisc product surface where open access compliance depended on policy, journal, and transitional-agreement data being searchable, legible, and trusted.
Tension
The product problem beneath the work.
Open access compliance is practical work. Users arrive with questions about policies, journals, agreements, and eligibility, while internal teams need documentation that can change safely. The interface had to support fuzzy, acronym-heavy search behaviour and a content workflow that stayed editable without hiding the shape of the underlying data.
Threads
Three parts of the work that connect through the page.
Owned
What I was responsible for, and what it changed.
| Thread | Work | Signal |
|---|---|---|
| Search surface | Built search and result surfaces around Elasticsearch-backed indexes, fuzzy matching, ranking, and filters. | Search became a practical route through a complex compliance dataset rather than a thin lookup box. |
| Content system | Built a Markdown-to-AST-to-React parser and patched in connection blocks for easier editing. | The repo could remain the source of truth while content synced into Directus for headless-CMS-style publishing. |
| Data quality | Led the data-quality effort with the data team: massaging records, checking percentage errors, and tracing missing or incorrect fields. | Reduced glaring missing or incorrect data failures from roughly 70% to zero before launch. |
Mechanism
The technical layers behind those responsibilities.
| Layer | Detail |
|---|---|
| Search index | Elasticsearch, fuzzy search, ranking, filters, and result shaping. |
| Data quality | Verification passes, percentage-error checks, record cleanup, and source-data feedback. |
| Content model | Markdown source, AST parsing, React rendering, connection blocks, and Directus sync. |
| Documentation | Help and API-facing documentation for users, stakeholders, and consumers. |
Shape
How the work moved from user need to reliable surface.
- A user starts with a policy or journal question.
- Fuzzy search and ranking narrow the problem into inspectable results.
- Markdown content becomes structured React surfaces through an AST parser.
- Connection blocks keep related guidance editable for content teams and developers.
- Verification catches missing and incorrect fields that had previously gone unnoticed.
- Data cleanup brings the failure rate from roughly 70% down to zero.
Reflection
What the project clarified about building trustworthy systems.
The important part was not only building search pages. It was making a compliance product easier to operate and easier to trust, from fuzzy search and ranking through to the repo-backed content model, Directus sync, documentation, and the verification work that made the underlying records safe to expose.