This project was vibe coded. Built rapidly with AI-assisted development — expect rough edges, have fun, and contribute if you spot improvements!
GhostCite is a local-first web app that checks whether the references in an academic PDF are real. Upload a document, and GhostCite will extract every reference it finds, look each one up on Crossref, and tell you which ones appear to be genuine and which might be fabricated or "hallucinated".
- PDF & DOCX upload — drag-and-drop or select a file (up to 20 MB) through a simple web UI.
- Automatic reference extraction — detects the reference/bibliography section and parses individual entries, handling numbered, Harvard, and bracketed citation styles.
- Crossref verification — queries the Crossref API for each reference and classifies it as ✅ Verified,
⚠️ Partial Match, or ❌ Not Found. - Summary report — download a standalone summary PDF listing every reference and its verification status.
- Fully local & private — runs entirely on your machine via Docker. Your documents are never sent to a third-party service (only individual reference strings are queried against Crossref's public API).
- Docker and Docker Compose installed on your machine.
./start.shThis builds the Docker image and starts the container. Once ready, open your browser at:
- Open http://localhost:8000 in your browser.
- Upload a PDF or DOCX file containing academic references.
- Wait for GhostCite to extract and verify the references (this may take a moment depending on the number of references).
- Review the results table showing each reference and its verification status.
- Download the summary report PDF listing each reference and its status.
# Build and start in background
docker compose up --build -d
# View logs
docker compose logs -f
# Stop the app
docker compose down- Python 3.12 with Flask and Gunicorn
- pypdf and ReportLab for PDF reading and report generation
- python-docx for DOCX support
- Crossref REST API for reference verification
- Docker for containerised deployment
For questions or queries about GhostCite, contact Dan at daniel.leightley@kcl.ac.uk.
This project is provided as-is.