flowchart TB
subgraph "nonscrape.nonarkara.org"
U([user]) --> F["/api/scrape"]
F --> Q[queue, 1 job at a time]
Q --> E[engine chain: firecrawl, crawl4ai, scrapling, scrapy, plain, markitdown, browseruse]
Q --> P[provider chain: groq, cerebras, gemini, openrouter, nim, ollama]
Q --> S[(SQLite: jobs, documents, entities, edges, findings, http_cache, watches)]
Q --> R[read + map + findings + CSV]
R --> U
end
subgraph "tunnel"
F -.-> T([Cloudflare])
T -.-> U
end
flowchart TB
subgraph "books → skills pipeline"
B[/file: PDF, EPUB, MOBI/] --> X[extract: zipfile + bs4 / pdftotext / tesseract OCR]
X --> S[slice 75k chars]
S --> L[one LLM call: purpose-tuned system prompt]
L --> K[SKILL.md + chapters/ + glossary/ + patterns/ + cheatsheet/]
K --> P[public skillhub: GET /api/skill/list]
K --> D[download .md, copy to ChatGPT]
end
U2([user]) --> B
P --> U2
D --> U2