by Jordan Fulghum, March 2026
My genealogy has always been spotty. Names passed down through word of mouth, half-remembered stories, a few dates. I've always wanted to fill in the blanks, but genealogy research is slow, manual detective work. You chase records, cross-check names, and hope you don't go down the wrong path.
A few days ago I came across autoresearch-genealogy by Matt Prusak. It's heavily inspired by Andrej Karpathy's "autoresearch" idea, which is simple: you give an agent a metric, you give it tools, and you let it run until it optimizes that metric. Autoresearch-genealogy is a lighter version of that pattern. It uses Claude Code and instructs it to hit a minimum number of iterations to optimize for a metric on a scoped basis. Same philosophy, just easier to get going.
The project itself is a set of prompts, guidelines, guardrails, and helpful resources that the agent can use, plus a templated Obsidian vault that gets filled in over time with everything from immigration records to DNA tests.
I wired it up and gave it a starting point: a family tree with fewer than 10 names.
What came out
After a few sessions, the agent expanded that into:
- 168 individuals
- 19+ family lines
- 300+ years of history
- A browsable, searchable dataset with sources attached to almost everything
My oldest confirmed ancestor traces back to an early Jamestown settler, a man named Holt, mentioned in Adventurers of Purse and Person, the definitive record of Virginia's first colonists.
More interesting than the tree itself is what sits behind it: census records, death certificates, DAR applications, church records, newspaper clippings, and even conflicting accounts. Each person is a file and each claim is tied to a source. It's really more like a graph of evidence than a family tree.
A few things it found
Most of this is only interesting to me, but a few stood out:
- My great-great-great-great grandfather rode with Quantrill (and likely alongside Jesse James). The agent found an affidavit, matched timelines, and even surfaced his revolver for sale. My OpenClaw agent is negotiating the price with the seller.
- One ancestor died by suicide in 1705. Under colonial Virginia law, that meant his estate was forfeited to the Crown. The governor petitioned Queen Anne (!) to return it to the children. She approved it.
- My great-grandfather died in a Standard Oil refinery explosion when my grandfather was three. I had never heard this. The agent found the newspaper clipping.
- My grandmother filed for DAR membership. That line traces back to Bailey Anderson, who is documented well enough to have a plaque and published historical references.
- We never knew my paternal grandfather's original birth name. The agent found it.
- My oldest confirmed ancestor, Randolph Holt I (~1607), was an indentured servant listed in the 1624/5 Muster among "Doctor Pott's Men in the Maine: to James' Citty." He served in the household of Dr. John Pott, who himself served as Governor of Virginia and has a Wikipedia article. That an indentured servant in Jamestown is a direct ancestor is kind of wild.
The output
Everything lands in a markdown vault: one file per person, links between people, embedded sources, explicit unknowns.
Claude also built a small Next.js app on top of it so it's actually usable: browse by family line, search across people and places, click through relationships, basic tree visualization.
I deployed it on a tiny Cassette instance so I could share it with family.
I had Claude try a few different genealogy tree JavaScript libraries, and I didn't like any of them. So I just said "forget it, make your own." And it did. It wrote the SVG from scratch that visualizes my entire family tree from the 16th century to now.
Where it breaks
It's not perfect. Records get sparse fast the further back you go. Names shift, spelling changes, people disappear and reappear. Entire branches can look "correct" and still be wrong. The agent helps by flagging single-source claims, preserving conflicts instead of flattening them, and logging failed searches, but you still need judgment.
Next
I want to push this further: add 23andMe data and see what aligns or breaks, pressure test weaker branches, and keep extending lines with stronger sourcing.
I found this genuinely addicting because there's always more. Every branch has a parent. Every dead end might just need a different search. You can always go higher up the tree. And you'll be surprised by what the agent finds. I keep being.
If you want to try it: autoresearch-genealogy, a markdown file, and some patience. That's enough to get started.
Follow me on Twitter for more.