Lee Foot

Content Reviewer (LLM)

Review web content and get AI-powered annotations with improvement suggestions.

Launch the app → View the source

#about

Firecrawl API (/v1/scrape) with 30s timeout, main content extraction, ad removal.

Claude Sonnet 4.5/4, Haiku 4.5 or GPT-4o/4o-mini.

Four review presets: SEO Quality, Technical Accuracy, UX, Conversion.

HTML comment annotations: ISSUE, MISSING, STRENGTH, IMPROVE, SEO.

GPT-4.1 is also selectable.

Streamlit appRequires an API key

Platform
Browser-based (no installation required)
Input
Firecrawl API keyAnthropic or OpenAI API keyURL to review or content paste
Output
Annotated markdown with ISSUE/MISSING/STRENGTH/IMPROVE/SEO comments. Summary section with quick wins.
Category
Content

Use cases

  • Content quality audits
  • Pre-publish content review
  • Competitor content analysis
  • Training content writers

#features

  • Firecrawl scraping: main content only, whitelist of heading/paragraph/list/table tags
  • Paste mode needs no Firecrawl key
  • Four review presets + custom focus
  • Claude Sonnet 4.5/4, Haiku 4.5 or GPT-4o/4o-mini/4.1
  • Inline HTML comment annotations with priority summary
  • Bulk mode: up to 50 URLs per run, 2s pause between URLs

#how-to-use

  1. Enter AI API key (plus Firecrawl key for URL fetching)
  2. Select review focus (SEO/Accuracy/UX/Conversion/Custom)
  3. Provide URL or paste content directly
  4. Review annotated output with inline comments
  5. Download markdown with priority summary

#faq

Do I always need a Firecrawl key?
No, only for fetching URLs. The 'paste content directly' expander reviews pasted markdown or text with just your Anthropic or OpenAI key, so you can skip Firecrawl entirely if you already have the content.
Why is some of my page missing from the review?
The Firecrawl scrape uses onlyMainContent plus an includeTags whitelist of h1-h6, p, li, table and blockquote. Text in other elements (divs, spans, accordions rendered without those tags) and anything Firecrawl classes as navigation or ads never reaches the model, so it cannot be reviewed. Paste the content directly if coverage matters.
Can the annotated output get cut off?
Yes. The review call is capped at 8,000 output tokens, and because the output repeats your full content with annotations inserted, long pages can hit the cap and lose the end of the review, including the summary section. Review very long pages in parts via paste mode.
What are the limits and pacing in bulk mode?
Bulk runs are capped at 50 URLs per run (slider, default 10) with a fixed 2 second pause between URLs. Each URL costs one Firecrawl scrape plus one LLM call over the full fetched content, so token spend scales directly with page length.
Are the annotations machine-readable?
They are HTML comments inserted into the markdown (ISSUE, MISSING, STRENGTH, IMPROVE, SEO), which means they are invisible when the markdown is rendered but easy to grep or parse from the downloaded file.

/contact

Want me to run this for you? I run this tool as a managed service, or build something custom around your data. You get the insights without touching the code.