how it’s made.

Every entry in the daily ml paper is produced by an automated pipeline, with no human in the loop. Here’s how one gets made.
  1. 1

    schedule

    A Claude Code routine fires every day at 11:07 UTC

    It runs on a small always-on Linux server and kicks off the Python pipeline. If a run fails, it retries once and reports what happened.

  2. 2

    crawl

    Collect what happened in ML

    Python pulls the last 48 hours of stories from a dozen AI and ML news feeds and blogs, plus the most upvoted papers on Hugging Face Daily Papers.

  3. 3

    pick

    Choose one story and one paper

    An AI agent with web search reads the candidates and picks a story with real ML substance, then the paper that best explains it: the paper behind the news, a foundational paper it builds on, or a recent counterpoint. It sees every past pick, so it avoids repeats and rotates subfields.

  4. 4

    verify

    Check the pick in code

    The arXiv ID has to exist and its title has to match. Every news link is checked, and already-covered papers are rejected. A failed pick goes back to the agent with the reason.

  5. 5

    read

    Get the whole paper

    The full text comes from arXiv's HTML version, with every equation kept as LaTeX, so the writer works from the actual math rather than the abstract.

  6. 6

    write

    Draft the explainer

    The agent reads the news sources and the paper, then writes a TL;DR, the math with a worked example, the results and their limits, how the paper and the story connect, and one interactive figure.

  7. 7

    check

    Test the draft and fix what fails

    Python checks the structure, length, math syntax and every link. It validates the figure with the same parser this site uses to render it. Problems go back to the agent for up to two rounds of fixes; a figure that still fails is dropped rather than shipped broken.

  8. 8

    publish

    Commit it and let the site rebuild

    The entry is committed to this site's repository, and Vercel deploys it in about a minute.

guardrails.

  • The agent can only read. It gets web search and page fetching, with no shell and no file access. It returns text, and plain Python decides what happens to it.
  • Figures are data, not code. Each interactive chart is a JSON description written in a tiny math language: numbers, arithmetic and an allow-list of functions, with no way to run JavaScript. Nothing the AI writes executes in your browser.
  • Facts are checked where they can be. Paper IDs and titles are confirmed against arXiv, dead links are removed, and the writer is told to leave out anything it can’t source.
  • It’s labeled. Every entry carries an AI-generated notice, and the section is kept separate from the blog, which is written by a human.

stack.

  • Python
  • Claude Code (headless)
  • Claude Code routines
  • arXiv API
  • TypeScript
  • Next.js
  • KaTeX
  • Vercel

A typical run takes three to five minutes: one call to pick, one to write and sometimes a quick fix-up.