← Journal

My Genealogy Brick Wall — and What Came Out of It

Vladimir Viktorov

My Genealogy Brick Wall — and What Came Out of It

In genealogy, almost everyone eventually hits a brick wall. You know the person you're looking for exists somewhere in the archives. You even know which record sets or census books are worth searching. The problem is scale.

When you're dealing with dozens of files, you can still get through them by hand. When you're dealing with thousands of pages, the search turns into months — or years — of work.

The problem

I have one ancestor — my great-great-great-grandfather — who I've been chasing for over a year now. I know his name. I even have a theory that he's connected to a family that's already been fairly well researched. But to confirm or rule out that theory, I need his father's name.

The trouble is, none of the later records — from the era of the first independent Latvian Republic — list a father's name. So I need to find him in the 1897 census. That's exactly what I've been failing to do for more than a year.

His social estate makes it harder still. He originally belonged to the minor nobility (szlachta), and was later reclassified as a townsman. Unlike peasants, people in that position moved around a lot, which makes searching by a fixed location far less reliable.

The idea

I'm a software engineer by trade. At some point I caught myself wondering: why am I doing a search engine's job by hand? Why am I paging through thousands of scanned sheets hunting for a handful of surnames?

That's how the idea was born — to automatically recognize archival census sheets and build a search index over historical documents.

Finding the right recognition approach

I started with the obvious approach and tried standard text recognition tools. It became clear pretty fast that archival documents are nothing like modern scanned books or office paperwork. Tables need straightening, pages need cropping, and different document types need different settings. Even then, the result depends heavily on scan quality and handwriting.

The bigger problem was that none of this scaled. A pipeline tuned for one document type usually had to be rebuilt almost from scratch for another.

So I started experimenting with more advanced recognition approaches instead. They're far from perfect either — they make mistakes and still need constant quality control. But with the right setup, they can work with a document's full context, not just isolated text.

System and post-processing

What started as a simple experiment gradually turned into a full pipeline for processing archival documents. Beyond recognition, it runs automated checks, flags suspicious entries, fixes a share of the errors, and merges different spelling variants of the same surname.

I don't have any illusions about a perfect way to recognize archival documents. Whatever recognition method you use, errors are inevitable. Scan quality, handwriting quirks, document damage, and historical spelling variants make 100% accuracy essentially out of reach.

That's exactly why the project puts as much weight on post-processing as on recognition itself. A "perfect" first-pass read matters far less to me than a system that can catch its own mistakes, flag suspicious records, cross-check data across sources, and steadily raise the quality of the database over time.

Down the line, I'm also weighing a crowdsourcing layer, so researchers and genealogists could help correct and refine the data themselves. I haven't worked out the details yet — how to build it or what to offer contributors — but collective review could turn out to be one of the most effective ways to improve the database's quality.

The end result: instead of thousands of page images, you get a searchable database where finding a person takes seconds, not months.

What's next

Did I find my great-great-great-grandfather? Not yet.

But along the way, I've already turned up a few unexpected matches — including another family with a fairly rare surname that might well be connected to my own branch. Even if that lead doesn't pan out, the project has already surfaced things I'd almost certainly never have found by hand.

Right now the main focus is the 1897 census in Latgale — that's where my own research started, so it made sense to start there too.

Going forward, I want to grow the database step by step: first into other regions of Latvia, then into other types of archival records.

I might not find my great-great-great-grandfather tomorrow, or even a year from now. But if this project ever helps someone break through their own brick wall — mine included — it'll all have been worth it.