AI Policy Tracker & Stance Comparator
Aggregate and diff official AI policy statements from major labs to surface where they agree, diverge, or shift over time.
Difficulty: weekend | Stack: Python, FastAPI, SQLite, BeautifulSoup/feedparser, OpenAI API (structured output), React, shadcn/ui
Who this is for
Policy researchers, journalists, and startup founders who need to quickly understand the regulatory landscape and where each major player stands — without reading every corporate blog post manually.
Build steps
- Build a scraper/RSS poller that fetches policy pages and blog posts from a curated list of AI lab URLs (OpenAI, Anthropic, Google DeepMind, Meta AI) on a schedule
- Use an LLM with structured output to extract named stances per document: topic (e.g. ‘mandatory incident reporting’), position (‘supports’/‘opposes’/‘neutral’), and a verbatim quote as evidence
- Store extracted stances in SQLite with source URL, lab name, and publish date so you can query changes over time
- Build a simple React UI with a comparison matrix (labs as columns, policy topics as rows, color-coded stance) and a timeline view showing when a lab’s position on a topic changed
- Add an email/webhook alert when a new document is detected and its stances differ from the lab’s previous on record
Risks
- Lab policy pages don’t use RSS and change their HTML structure, breaking scrapers silently — mitigate by storing raw HTML and alerting on parse failures
- LLM stance extraction is fuzzy: ‘thoughtful regulation’ can look like support or hedging depending on prompt design — requires a small hand-labeled eval set to tune prompts before shipping
- Policy topics are not standardized across documents, so clustering them into comparable categories requires careful taxonomy work that can balloon scope