Jesse Waites' AI Archive Pipeline Flags a Lost 1812 Meteorite, Ships as Open-Source Antiquity
TL;DR
Software engineer Jesse Waites published an October 8 writeup of an AI research pipeline that turned 4.35 million pages of Dutch East India Company records into 5.7 million searchable embeddings in a single 12-hour overnight run on a home GPU, then chained TypeSafe's Jev decision model and Claude Haiku to read only what mattered. The run surfaced an 1812 meteorite fall near Pandharpur that he says appears in none of six catalogues, three live Javan rhinos shipped from Batavia toward the King of Kandy in 1738 to 1740, and three 18th-century eruptions he could not find in the Smithsonian's volcano list. Every finding is still a candidate awaiting specialist review. The workflow now ships as Antiquity, an open-source Go CLI that scaffolds a case folder and briefing so a coding agent like Claude Code can run the same investigation on a different question. Hacker News gave it 184 points and 92 comments, split between the findings and the page's rotating rhino.
The dodo had a sequel
On October 1, historian Benjamin Breen used Claude Opus 5.5 agents to search the GLOBALISE transcriptions of the Dutch East India Company (VOC) archive and found a 1615 ship's log recording dodo hunting on Mauritius. Waites read it and had the reaction every engineer has when a historian does something clever with a computer: I can do this, and I can do it in parallel.
His twist was not a bigger model. It was a cheaper one in front of the expensive one, plus a discipline about proof that most "AI found X" posts skip. Breen searched for one thing. Waites asked a Deep Research assistant to rank thirteen open historical questions by whether existing online data could plausibly answer them and, crucially, whether any answer could be checked against a scan of an original page. Then he built a pipeline with Claude Code to work the list.
The pipeline
The reading material was the GLOBALISE corpus (4.35 million VOC pages from the 1600s to the 1790s, which the Huygens Institute is transcribing with its own AI tooling), the Dutch national library's Delpher newspaper archive, two centuries of American newspapers, and a handful of ship logbooks. At two minutes a page, eight hours a day, Waites estimates a human reading just the VOC pages would need about 70 years. His GPU embedded all 5.7 million passages overnight.
Embeddings matter here for a reason beyond scale. Seventeenth-century clerks spelled "rhinoceros" about fifteen different ways, and OCR on old print adds its own noise, so keyword search misses most of what you want. Searching by meaning instead of spelling is what let the pipeline catch a meteorite report that never uses the word "meteorite" (the word barely existed in English in 1812).
Jev as the bouncer
A single semantic query can return tens of thousands of hits, which is too many to hand to a capable model at any sane price. So the first read goes to Jev, TypeSafe's "System One" decision model, which answers only narrow typed questions: is this a real animal, is it wild, where is it. TypeSafe lists Jev at $0.042 per million input tokens. Waites says having it read 59,000 mentions of elephants cost him about $3, and that doing the same job with Haiku alone would have cost "significantly more" and taken longer. Only the passages Jev flags go to Haiku, which translates the survivors and pulls out dates and places, and only those go to the Claude Code agent to open the original scan and check the transcription.
Think of it as a nightclub door. Jev is the bouncer who checks IDs in half a second and turns away the obvious no's; Haiku is the interviewer inside who actually talks to the few who got in. Waites says the tiered filter was his idea, not the model's: Claude Code's Fable model had to have the concept of a decision model explained to it before they could build around one.
The buried wristwatch
The rule Waites says mattered most is the one that makes the negative results meaningful. Before searching for anything new, the pipeline had to re-find things already known to be in the corpus: Breen's dodo, the 1783 Laki eruption, Tambora in 1815, and a dozen other events. His own analogy is testing a metal detector by burying your wristwatch in the yard. If the detector cannot find the watch, its silence elsewhere tells you nothing. Only once the controls passed did the real search start.
What it found
Three families of candidates survived the full chain. Waites is explicit that each one has been checked against original scans and the catalogues he could reach, but not yet by the curators who maintain those catalogues.
A stone from a thunder-cloud, 1812
The headline find came from Delpher, not the VOC letters. On December 19, 1812, the English-language Java Government Gazette, printed in Batavia during Britain's brief occupation of Java, reprinted a letter from the Bombay Gazette. A British officer camped near Pandharpur described "a stone precipitated from a Thunder-cloud" near the village of Cokurrgaum on August 6, "greatly impregnated with iron, and coated with a thin black crust." It buried itself a foot deep, the thunder sounded "like a rustling fire of Musquetry," and the village headman had to be talked out of praying to it. Booming, an iron-rich stone, a fusion crust, a small crater: a textbook fall.
Waites says he checked six catalogues, from Chladni's 1819 list to the current Meteoritical Bulletin, and searched a hundred digitised periodicals from 1812 to 1817 for a follow-up, and found nothing. He claims that, once confirmed, it would be the earliest recorded fall in Maharashtra by 26 years. That arithmetic checks out against the Bulletin, whose earliest official Maharashtra fall is Chandakapur, an 8.8 kg L5 chondrite that fell in 1838.
Three rhinos that never reached the king
From the VOC letters: in 1738 the Company caught a live Javan rhinoceros in the forests outside Batavia as a gift for the King of Kandy, whose goodwill kept Ceylon's cinnamon flowing. It reached Colombo and died in the horse stable; the governor substituted a Persian riding horse. In July 1740 the ship Loverendaal sailed with a male and a female. Both died within two weeks, with the officers swearing statements before the ship's bookkeeper. The governor's instructions to his envoys replaced them with "a boar and two sows." The king, Waites notes, had apparently been expecting rhinos, because three years later the court of Ramnad asked for one "as was done for the King of Kandy."
The historical record of Javan rhinos in captivity runs to a few dozen animals, so three dated, named-ship, sworn-testimony specimens would be a real addition if they are not already in the specialist literature. Waites has written to Kees Rookmaaker, author of the standard captive-rhino reference, to find out.
769 eruption reports, three survivors
The volcano search is the clearest illustration of why the verification stages exist. The pipeline pulled 769 eruption reports out of the corpus, and the models' guesses about which volcano was responsible were often wrong (one Java ash fall got blamed on a mountain 1,500 km away). So every candidate had to be placed using the letter's own geography, then cross-referenced against the Smithsonian's Global Volcanism Program list. Three survived: Gamkonora on Halmahera in February 1722, with Ternate's streets ash-covered "as with a white cloth"; Ciremai in West Java in early 1712; and Slamet in Central Java in February 1780. As a sanity check, the same search found Awu's 1711 eruption, which the Smithsonian has to the day.
What did not work
The first mystery on the list was the "Unknown" eruption of 1808/09, one of the largest of the last 500 years by ice-core evidence, with no known location. Waites searched American and Dutch newspapers, ship logbooks, South American colonial press, all 633 articles of Batavia's first newspaper and India's news digests, and found nothing. Because the controls passed, he reads that as evidence the reports are simply not in those sources.
The toolkit
Antiquity is deliberately small. It is a Go CLI (Go 1.27, Bubble Tea v2 for the interactive prompts) that does not search archives or call models itself. antiquity new my-investigation scaffolds a case folder with an AGENTS.md briefing encoding the rules and traps from the writeup, a CASE.md for the question and plan, a keys.example.yml for model roles and providers, and folders for sources, queries, evidence, findings and drafts. The case is git-initialised with a pre-commit hook that refuses to commit keys.yml or anything that looks like an API key. Your coding agent, Claude Code or Codex, does the investigation inside the folder.
The briefing encodes the same seven stages: calibrate on a known event, retrieve wide with embeddings, sort cheap with a small decision model, read carefully with a bigger one, verify against the original scan, check novelty against specialist catalogues, then save evidence and write up. The README names no specific models; you pick them in the keys file. At the time of writing the repository has 35 stars, 12 commits and no LICENSE file, which is worth fixing before anyone builds on it.
What Hacker News argued about
The thread split in two. One half debated the findings: one commenter asked how reliable the translations of High Dutch and German letters are, another called the claims "rather dubious," and a third framed the whole thing as "a societal verification problem where work has become hard to evaluate," which is exactly the problem the control step exists to answer. The other half debated the page itself, which shipped with a rotating 3D rhino, a meteor impact and scroll effects that one reader said made it "look almost satirical." Waites responded by adding a button to turn the effects off. The rhino, for the record, has defenders.
Caveats
- Every finding is self-reported and labelled a candidate. The meteorite, rhino and eruption claims await replies from the curators and volcanologists Waites has contacted, and he has committed to updating the post if any turn out to be known.
- The "26 years earlier" meteorite claim matches the Meteoritical Bulletin's Chandakapur entry, but that confirms the arithmetic, not the fall. An 1812 newspaper letter is evidence of a report, not a recovered stone.
- The $3 Jev figure and the 12-hour embedding run are the author's numbers; no total project cost is given, and the GPU and embedding model are not named.
- Antiquity has no license file as of this writing, so legally you cannot yet reuse its code, only its ideas.
Key Takeaways
- A home GPU embedded 5.7 million passages from 4.35 million VOC pages in one 12-hour overnight run; the search cost is in the models that read the hits, not in the index.
- Putting a $0.042-per-million-token decision model in front of Claude Haiku let Waites screen 59,000 elephant mentions for about $3 and send only survivors to the expensive reader.
- Calibrate before you search: the pipeline had to re-find the dodo, Laki and Tambora before its failure to find the 1808/09 eruption meant anything.
- Candidates: an 1812 Maharashtra meteorite fall absent from six catalogues (26 years before the Bulletin's Chandakapur record), three captive Javan rhinos from 1738 to 1740, and three eruptions not on the Smithsonian list, all pending specialist review.
- Antiquity packages the method as an
AGENTS.md-driven case folder for any coding agent; it is a briefing, not a search engine, and it still needs a license.
Sources: Jesse Waites, "I Pointed AI at 400 Years of Historical Archives", jessewaites/antiquity on GitHub, Hacker News discussion, Benjamin Breen, Res Obscura, GLOBALISE project, Meteoritical Bulletin Database (Chandakapur), TypeSafe AI (Jev pricing)