Finding Domains for 41,000 Companies with Domain Inference Script
A Python domain inference script found at least one live website for all 41,299 companies in a dataset by guessing and checking common domain patterns, setting up a crawling and verification pass next.
Turning a spreadsheet of 41,299 company names into a list of working websites sounds tedious, but it's exactly the kind of problem a script can chew through overnight. This late-night walkthrough runs a domain inference script against that full dataset and gets a working domain for every single company, then lays out what comes next to make sure each domain is actually correct.
What domain inference does
The script takes each company name and guesses at likely domain patterns built from it, then checks whether any of those guessed domains actually has a live website behind it. If a pattern gets back a legitimate HTTP response, that URL gets saved. Because a company can own more than one variant of its name as a domain, the script sometimes keeps two or three URLs for a single company rather than assuming there's only one right answer.
A 100% success rate
Run against all 41,299 companies in the dataset, the script found at least one working URL for every single one. That's a strong result, but it comes with an immediate caveat: finding a domain that responds isn't the same as confirming it belongs to the right company. A name like "Whisker Acquisition" could plausibly belong to a pet care company, a hedge fund, or a whiskey company, and pattern matching alone can't tell those apart.
Why crawling comes next
The next stage is web crawling and verification. The plan is to start at each discovered domain's homepage, follow its internal links, and extract the text from those pages, specifically watching for key pages like jobs, careers, team or people pages, and about pages. From that text, the process checks whether the page actually mentions the company by name, confirming the match, and then infers what the company does and whether it's likely to be hiring, based on industry, size, and content signals.
A worked example: Clever Care Health Plan
The walkthrough traces this process for one company, Clever Care Health Plan. Domain inference finds a candidate domain like clevercare.com, the crawler visits the homepage and follows links to pages like /about, /careers, /team, and /contact, extracts the text from those pages, and verifies that the text actually mentions "Clever Care Health Plan." From there it finds a jobs page and infers that this is a healthcare company, likely at a Series B stage, probably hiring.
What crawling will extract
Once verification runs at scale, the crawl is expected to surface job page URLs pointing directly to career opportunities, the ATS platforms companies use (Greenhouse, Lever, Workday, and similar systems), plain-language company descriptions pulled from the site's own copy, team pages that carry size and diversity signals, about pages with mission and funding stage mentions, and contact information for additional validation.
Key takeaways
- Domain inference guesses likely domain patterns from a company name and checks each one for a live HTTP response.
- The script achieved a 100% success rate, finding at least one working URL for all 41,299 companies in the dataset.
- A responding domain isn't automatically the right company; ambiguous names like "Whisker Acquisition" need content verification.
- The next stage, crawling, follows internal links from each homepage and extracts text to confirm the company name appears on the site.
- Crawling is designed to surface job pages, ATS platforms, company descriptions, team pages, and funding or mission signals in one pass.
- This is a standard pipeline: domain inference, web crawling, content extraction, verification, and enrichment.
Who this is for
This is a practical, code-adjacent walkthrough for anyone building a data enrichment pipeline from a large company list, particularly useful for projects connecting company data to hiring signals, such as identifying which companies are likely to sponsor or hire international students, a use case referenced directly in this Humanitarians AI project.
Chapters
Full transcript(auto-generated, with timestamps)
Running the Domain Inference Script
[0:01]Okay, I ran the domain infrance script. So what this thing does, it actually th 100% domains. Um, again, everything needs to be checked. So let me explain what this thing does. We take the cavity name and we sort of guess at what the name may be and then we check does one of these things actually have a website. So it just visits it, looks for the the response. If it gets a legit webpage
How Domain Pattern Matching Works
[0:30]Response, then it saves whichever one of these or even sometimes more than one because a you know you could be cloud forge io and cloud for the coa and cloud they could own all three of these domains. Um so I actually thought 100%. um we still need to that as if one of these um actually responded with an actual website and it 100% did. So for all
100% Success Rate: All 41K Companies
[1:03]Whatever 41,000 of them we have a URL or more than one URL to check. It's light and I'm tired so I'm not going to do that now. But basically and this is going to take a little bit more time because then we're going to start scraping these sites. So, for example, we're going to go here and we're just going to start looking, you know, we're going to start here and looking at what it links to that's within there. And then what that links to within then there and just basically
Why Multiple Domains Per Company
[1:30]For vert.com, we're going to get a bunch of HTML uh HTML pages that are, you know, all ver whatever mud.job this, whatever we can find by crawling. And what crawling means is we just started page one. We find links and check are those links also on the same domain. Follow those. Follow the links on those. Follow the links on those, etc. So, um, get us light. So, I'm not
What Verification Means
[2:01]Going to do that now. Um, again, 100%. It got all 41,299. It got some URL for it, but again, a lot of this is checking. So what we want to do is we some of them, you know, if one of these is actually, you know, a real like this one, good chance that it's right. Nobody else wants the domain except for them. So uh but we'll see. So basically what what
Next Step: Web Crawling Explained
[2:31]The bot will do is it'll go here. It'll start crawling. It'll look at the pages and if those look like, you know, they're talking about about our business, you know, Carver, Clever, Care, Health Plan, etc. Then we'll mark that as yeah, that's the company's domain. And the good thing about this approach is there's a good chance we find job sites, who's there, etc., etc., just because they put it on their website. Uh, and so we'll we'll use that sort of text that we grab from crawling to look for some particularly important pages like people pages, job pages, whatever. And all of the text in general just to make an inference. Is that text, you know, related to Whisker acquisition?
Example: Clever Care Health Plan
[3:16]That text can also help us sort of infer what this company does. Is it really something that's likely to hire a whisker acquisition? That could be a, you know, a whiskey company. It could be a hedge fund. Who knows what that is, right? Um, and so, uh, we'll have we'll just gather all the stacks. we'll sort of figure out what it does. Uh does it really make sense that it's
What We'll Extract From Crawling
[3:46]This company here and if so then we'll add it to our you know data file of here's the URL um and then um go from there. So again it's late um so I won't do this right now but uh we'll you know step by step. So we we will um to start you know scrolling stuff and then from that inferring a lot of stuff about these companies. Okay, take care.
More videos
2:08Bridging the Pixel Gap in Browser Automation.
2:23How One Narrow Safety Rule Can Make an AI Less Safe Everywhere Else.
2:04Why splitting a chunk from its document makes it retrieve for the wrong question
4:20Three You Can Take Back. One You Can't.
2:21Why a 50-turn agent pays for the same screenshot 35 times unless it caches the pixels
1:53