../data/raw relative to WORKDIR /app resolves to /data/raw which is outside the volume mount (./data:/app/data). The scraper wrote 583 pages to the ephemeral container filesystem and they were lost on exit. Changed to /app/data/raw in both scraper and indexer so the JSONL file lands inside the mounted volume and persists between containers. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>