CHIRPdb
A production backend API for CHIRP's maritime incident-reporting system. Ingests UK MAIB accident reports via scraping or PDF upload, structures them, and serves them for semantic search.
About
A production backend API for CHIRP, the maritime safety reporting charity, built with Tandem Creative Dev and Zig Zag AI. It ingests UK MAIB accident reports through two pipelines: GOV.UK URL scraping and direct PDF upload. A spaCy NLP stage extracts sentences, sections and structured metadata; an asynchronous per-section LLM correction pass verifies and corrects the extraction before records land as provisional. SHA-256 deduplication prevents duplicate reports across ingestion runs and a domain-specific SHIELD-code taxonomy classifies each incident. 384-dimension embeddings in Supabase pgvector are the foundation for semantic search. The pipeline is designed to extend toward an evaluation harness and multi-jurisdiction ingestion. I contributed documentation, a knowledge graph of the codebase and Claude Code configuration to support ongoing development.
Highlights
- Dual ingestion pipelines: GOV.UK URL scraping and PDF upload, both producing structured incident records.
- SHA-256 deduplication prevents duplicate reports across ingestion runs.
- Domain-specific SHIELD-code taxonomy for maritime incident classification.
- Supabase pgvector for 384-dimension semantic search embeddings.
- Commercial client work: production-deployed behind Cloudflare on Tandem infrastructure.
By the numbers
- Commits
- 585
- Lines added
- +130,538
- Lines removed
- −82,410
- Source files
- 48,255
of 1,202 total
