I had an AI agent climb my family tree

Just outside Egmond-Binnen, a small village at the edge of the North Holland dunes, lies the Adelbertusakker: the early-medieval burial site of Saint Adalbert and the spot where the village first stood before drifting sand pushed it inland. At the entrance, three life-size wooden statues greet visitors. Saint Adalbert, eighth century. Count Dirk II of Holland, tenth century, who founded the abbey there. And a third man, labeled simply "Dirk Schuit, nineteenth-century inhabitant": a farmhand who lived next to the field, and the last named ordinary resident of the place before it became a heritage site.

Ten years ago my parents visited, photographed the statue, and wondered. Schuit is not a common name. Was this an ancestor? Nobody in the family knew; the family's own knowledge stopped at my grandfather, a carpenter in Haarlem, and even that was two lines: roughly when he lived, that the family was Roman Catholic and poor, and a birthplace nobody was sure of.

On a Sunday in May I gave those two lines to Claude Code and asked it to work its way up through the public archives. By the evening it had a documented line back to a baptism in 1790, an inferred generation beyond that, and an answer to my parents' question. Its research log had gone through forty-seven revisions by then, several of them corrections of its own mistakes, some of which I had to catch. This note is about both halves.

What it worked with

Dutch civil and church records are unusually well indexed online, which is what made this feasible at all. The agent used, in rough order of usefulness: Open Archieven (the aggregated index, including its raw JSON API), the Noord-Hollands Archief catalog and its scan viewer, WieWasWie, the CBG family-announcements collection, VPND (a volunteer project that transcribes pre-1811 church registers and publishes the scans as PDFs), the Regionaal Archief Alkmaar person index, and the newspaper viewer of the Noord-Hollands Archief for old address books and death notices. Some sources it could not use: Delpher was unreachable from its environment, FamilySearch and the CBG scans sit behind logins, and the newspaper viewer is behind an anti-bot wall that it got through only by driving my actual browser through the Chrome extension.

The navigation pattern was always the same: search the index, open the record, follow "view on source website" to the archive's own item page, open the scan, read the handwriting. VPND's PDFs it downloaded and read page by page. Over the day it read birth, marriage and death certificates from the nineteenth and early twentieth centuries, a population register, Catholic baptism and marriage registers from the 1780s and 1790s, tax-collector burial books, and a run of city address books.

What it found

I am not going to publish the tree here; it belongs to more people than me. The shape of it is enough. Each generation is tied to the one above by at least one primary record that names the parents: a birth certificate, a marriage certificate, a death certificate, in the best cases all three, cross-checked against each other for dates and ages. The line runs from Haarlem back through a couple of villages north of it to Egmond-Binnen, and from carpenter back through laborer to farmhands in the dunes. Around the time of Napoleon it arrives at a Dirk Schuit: baptized in Egmond-Binnen in 1790, married there in 1818, died there in 1859 at sixty-nine, farmhand, and named as father on the marriage certificate of the next generation down. Baptism, marriage and death all name the same parents for him. It is the best-documented link in the whole chain.

Which is to say: a Dirk Schuit who lived his entire adult life in the nineteenth century in Egmond-Binnen, in a family of farmhands and laborers on the dune edge, is a direct ancestor. The archives do not, of course, mention a statue, and I have not asked the foundation that maintains the site whom exactly they meant. But there are not many candidates. Very probably my parents were looking at great-great-great-grandfather.

The trail goes one generation further, to Dirk's parents, married in 1789 in the same village, and then stops. Not for lack of trying: the register from before about 1780 uses patronymics only. The surname was not in use yet, and there is no name index. Dirk's father is known only from the patronymic his children carried and from the fact that Dirk was named after him. The agent's final deep read of the older baptism register (scans, in Latin, from 1726) confirmed the wall at source level: even if a "Cornelis, son of Dirk" appears there, nothing can attribute him to this family. It called this the "documented ceiling," and I think that is exactly right. Eight generations, the eighth by inference.

Along the way it explained one thing that had puzzled the family for years: every cemetery headstone transcription came back empty. Poor families did not buy a grave; they rented a general one, cleared after about ten years, headstone removed. The burial register would still record the interment, but the stone is long gone.

Where it went wrong

This is the part worth reading if you are thinking of doing the same.

The pattern across all of these: the agent is very good at the mechanics (finding, fetching, reading, cross-checking dates and ages, keeping a per-link source list) and needs a human who knows the family and the sources to keep it honest. Every catch above came from me knowing something it did not, or from me reading its output skeptically. It never invented a record. It did over-generalize from a single record several times, and it did assert its own limits wrongly more than once.

Second opinions

When I sent the result to the family, one of them asked his own Claude session about it and got a different emphasis: the family's base, it said, was in the neighboring Egmond villages, not Egmond-Binnen, and it offered the statue as the clue for how a Dirk born in 1790 ended up there. Two agents, two framings, both consistent with the records. What settled it was not either agent's confidence but the paper trail: I had not started from the statue and worked down, I had started from my grandfather and worked up, and Dirk was where the records led.

The exchange also produced my favorite line of the day. Since surnames were not yet in use when the elder Dirk was born, I told my daughter that it remains technically possible that we descend from the count.

What I make of it

Forty-seven revisions in one day, most of them driven by me pushing back or asking for a deeper read of a specific register. That is a very different mode of working from "ask a question, get an answer": more like supervising an extremely fast, extremely literal research assistant who does not know what it does not know. The result is a family tree with a source next to every link and a clear statement of which link is weakest and why. I would not trust any of it without the source list, and with the source list I trust most of it.

Tool: Claude Code, with the Chrome extension for the sites that block scripted access. Everything it read is public, and every claim in its log carries a reference that can be opened and checked.