Two passes over FamilyTreeNow
For each row the thread searches the site by name and location, pages through the results and then opens every candidate's profile. A parser turns the profile HTML into structured data: phone numbers, current and past addresses, and the other names a person is listed under. Names get normalized on the way in, from middle names to suffixes written as "JR" or ", Jr.", so names from different jobs compare cleanly. Most pages come over cURL; for pages that need a real browser, a second engine drives headless Chrome through Selenium WebDriver in Docker, and Whitepages plugs in as a second source behind the same interface.


