Training a model to identify AI web content from structure alone
Hey HN! We’re Vincent and Jochen from Sitefire (https://sitefire.ai). We have been working together for years, with backgrounds in RL/optimization at Stanford and software engineering from Technical University Munich (TUM).With Sitefire (YC W26), we help marketing teams get recommended by AI Search (ChatGPT, Google AI Overviews, AI Mode, Claude, etc.). Our software monitors prompts, sees which web pages get cited, and uses these insights to help marketing teams take action, e.g. create YouTube videos or write the right blog posts.This means we have a commercial stake in AI-generated web content. And for now, high-information, AI-generated content works great to get cited and recommended in AI Search.But after talking to hundreds of marketing teams, it became clear that everyone despises AI-generated content (“AI slop”). And yet, everyone still wants to leverage AI to create content. So we asked ourselves: what characterizes AI slop? Can we train a model to identify it from human-generated web pages?Researchers from the University of Maryland and Google DeepMind already asked this question for fiction. Their paper StoryScope (Russell et al., 2026) showed that you can tell AI-written stories from human ones by their structure alone, without looking at the words.We ported their pipeline to commercial web pages. Using the Wayback Machine, we collected 2,250 blog posts from 268 B2B company websites that were written before ChatGPT existed. For each blog post, five AI models (GPT-5.4, Claude Sonnet 4.6, Gemini 3 Flash, DeepSeek V3.2, Kimi K2.5) wrote their own version.Instead of looking at the words, we looked at how each post is built. We had an AI model answer 214 questions about every post, e.g. how hard it pushes its own product, whether it backs up its claims with sources, or whether it quotes a named expert. Then we trained a classifier on these answers.On blog posts it had never seen before, our classifier told AI-generated and human posts apart with
FL score
out of 100
Verdict
high confidence
Competition
No competitor data yet
Trend
No signal yet
A classifier that detects AI-generated web content from structural patterns alone, targeting marketing teams who want to avoid AI slop while still using AI tools.
The pain
The gap
Build angle
Strengths
- Founders have relevant ML and software engineering backgrounds from top institutions.
- Problem is grounded in hundreds of conversations with actual marketing teams.
- Research foundation is published and peer-reviewed, reducing technical risk.
- Dataset construction method is clever and avoids the chicken-and-egg problem of labeling AI content.
- YC backing signals external validation of the team and problem.
Risks
- Willingness to pay is unclear. Marketing teams may not want to admit they use AI or may not care about detection if the content performs well in AI search.
- The classifier may not generalize to content types outside blog posts or to AI models trained after the dataset was created.
- AI writing quality improves rapidly. Structural patterns that distinguish AI today may disappear as models improve, making the classifier obsolete.
- The business model is ambiguous. Is this a SaaS tool, an API, or a feature bundled into Sitefire? Pricing and distribution are not mentioned.
- Competitors could emerge quickly. Google, OpenAI, and Anthropic have stronger incentives and resources to build detection tools.
- The tool may be used for censorship or discrimination against legitimate AI-assisted content, creating reputational risk.
Fly Labs Method
Is the pain real, is there a gap, is it the right time, can one person build it.
- Problem clarity
- 75
- Solution gap
- 68
- Willingness to pay
- 55
- Buildability
- 50
The problem is real and well-articulated, a gap exists in detection tools, but willingness to pay is unclear and the technical approach faces reproducibility challenges.
Value Equation
Dream outcome and how likely it feels, against the time and effort it costs.
The value creation is moderate because detection alone does not directly improve marketing outcomes, and the monetization path requires customers to change behavior based on detection results.
One-Person Business
Curiosity pull, identity fit, and a path from free value to paid for a solo creator.
The idea targets a real frustration but solves a symptom rather than the root desire, which is to create good content efficiently without the stigma of AI involvement.
Viral Frameworks
Hook strength, shareability, and how cheaply it can be tested.
Strong founder credentials and YC backing provide execution confidence, but the core technology depends on structural patterns that may not generalize across content types or evolve as AI writing improves.
Builder Lens
Evidence the problem exists, timing, defensibility, and a model that fits on a napkin.
YC-backed team with relevant expertise and a clear problem statement, but the business model sits awkwardly between a detection tool and a content optimization platform.
Five lenses, one composite. How scoring works
The angle
No market research recorded for this idea yet.
Semble – Code search for agents that uses 98% fewer tokens than grep
Hey HN! We (Stephan and Thomas) recently open-sourced Semble. We kept running into the same problem while using Claude Code on large codebases: when the agent can't find something directly, it falls back to grep, reading full files or launching subagents. This uses a lot of tokens, and often still misses the relevant code. There are existing tools for this, but they were either too slow to index on demand, needed API keys, or had poor retrieval quality.Semble is our solution for this. It combines static Model2Vec embeddings (using our latest static model: potion-code-16M) with BM25, fused via RRF and reranked with code-aware signals. Everything runs on CPU since there's no transformers involved. On our benchmark of ~1250 query/document pairs across 63 repos and 19 languages, it uses 98% fewer tokens than grep+read and reaches 99% of the retrieval quality of a 137M-parameter code-trained transformer, while being ~200x faster.Main features:- Token-efficient: 98% fewer tokens than grep+read- Fast: ~250ms to index a typical repo on our benchmark, ~1.5ms per query on CPU (very large repos may take longer)- Accurate: 0.854 NDCG@10, 99% of the best transformer setup we tested- MCP server: drop-in for Claude Code, Cursor, Codex, OpenCode- Zero config: no API keys, no GPU, no external servicesInstall in Claude Code with: claude mcp add semble -s user -- uvx --from "semble[mcp]" sembleOr check our README for other installation instructions, benchmarks, and methodology:Semble: https://github.com/MinishLab/sembleBenchmarks: https://github.com/MinishLab/semble/tree/main/benchmarksModel: https://huggingface.co/minishlab/potion-code-16MLet us know if you have any feedback or questions!
AI
Postgres extension for BM25 relevance-ranked full-text search
Last summer we faced a conundrum at my company, Tiger Data, a Postgres cloud vendor whose main business is in timeseries data. We were trying to grow our business towards emerging AI-centric workloads and wanted to provide a state-of-the-art hybrid search stack in Postgres. We'd already built pgvectorscale in house with the goal of scaling semantic search beyond pgvector's main memory limitations. We just needed a scalable ranked keyword search solution too.The problem: core Postgres doesn't provide this; the leading Postgres BM25 extension, ParadeDB, is guarded behind AGPL; developing our own extension appeared daunting. We'd need a small team of sharp engineers and 6-12 months, I figured. And we'd probably still fall short of the performance of a mature system like Parade/Tantivy.Or would we? I'd be experimenting long enough with AI-boosted development at that point to realize that with the latest tools (Claude Code + Opus) and an experienced hand (I've been working in database systems internals for 25 years now), the old time estimates pretty much go out the window.I told our CTO I thought I could solo the project in one quarter. This raised some eyebrows.It did take a little more time than that (two quarters), and we got some real help from the community (amazing!) after open-sourcing the pre-release. But I'm thrilled/exhausted today to share that pg_textsearch v1.0 is freely available via open source (Postgres license), on Tiger Data cloud, and hopefully soon, a hyperscalar near you:https://github.com/timescale/pg_textsearchIn the blog post accompanying the release, I overview the architecture and present benchmark results using MS-MARCO. To my surprise, we were not only able to meet Parade/Tantivy's query performance, but exceed it substantially, measuring a 4.7x advantage on query throughput at scale:https://www.tigerdata.com/blog/pg-textsearch-bm25-fu
AI
GlycemicGPT – Open-source AI-powered diabetes management
I'm a Type 1 diabetic and software engineer. Last year I went months between endocrinologists with no clinician reviewing my data. I'm an engineer, so I built the tool I needed — and now I'm open sourcing it. GlycemicGPT is a self-hosted platform that connects continuous glucose monitors, insulin pumps, and existing Nightscout instances to an AI analysis layer running on your own infrastructure. Data sources:Dexcom G7 (cloud API) Tandem t:slim X2 and Mobi pumps (direct BLE) Nightscout (point it at your existing instance and you're running in minutes)What the AI layer does:Daily briefs summarizing overnight and 24-hour patterns Meal response analysis Conversational chat with RAG-backed clinical knowledge Predictive alerting with configurable thresholds and caregiver escalationImportant: this is monitoring and analysis only. GlycemicGPT does not deliver insulin, does not control your pump, and is not a closed-loop system. It reads your data and gives you insight on top of it. Your clinical decisions stay between you and your care team. Architecture:Self-hosted via Docker or K8S — the GlycemicGPT stack runs entirely on your hardware BYOAI — bring your own AI provider. Use Ollama for fully local operation (no data leaves your hardware), or point it at Claude, OpenAI, or any OpenAI-compatible endpoint if you prefer a hosted model. Data flows directly from your instance to the provider you choose; nothing is routed through any centralized service operated by the project. GPL-3.0, no subscriptions, no vendor lock-inStack:Backend API: FastAPI, Python 3.12, PostgreSQL 16, Redis 7 Web Dashboard: Next.js 15, React 19, Tailwind CSS, shadcn/ui AI Sidecar: TypeScript, Express, multi-provider proxy Android App: Kotlin, Jetpack Compose, BLE Wear OS: Kotlin, Wear Compose, Watch Face Push API Plugin SDK: Kotlin interfaces, capability-based, sandboxedLooking for contributors — especially folks with BLE/Android experience or anyone in the diabetes tech spa
AI
Questions about this idea?
FlyBot reads the scoring and gives you a second opinion on “Training a model to identify AI web content from structure alone”.