Work Log: Building a Local Directory From Public Records
Of 200 candidate plumbing websites for St. Petersburg, 88 passed a real-browser check as local plumbers with proof of service area. This log shows each stage of the work, what is done and what is not.
What the Work Is
A directory page is only as good as its list. We start with who is allowed to work, then find who has a website, then check each site.1
The first slice is one trade in one city: plumbers in St. Petersburg, Florida. Clearwater sits next door. Our tests showed the two cities share about 80% of the same companies within a radius. So a city page lists only companies with an office inside that city.2 The guide on service area versus address explains why that matters.
Stage by Stage
The table follows our internal process document. Statuses are as of October 7, 2026. A date appears where our records give one.
| Stage | What happens | Status | Date |
|---|---|---|---|
| National list of websites | Free open datasets of US places are downloaded whole. Each website gets one key, so duplicates collapse. The list holds 11.09 million sites. | Done. Monthly refresh: next | Not dated |
| License frame | Florida's contractor license file lists everyone allowed to work. We hold a saved copy from a public web archive, because the state site blocks automated downloads. | In progress: freshness not guaranteed | Not dated |
| City domain list | Sites with a plumbing category or name, inside city limits or near the boundary, are pulled from the national list. | Done | Oct 1, 2026 |
| Other candidate sources | Paid search listings for the city, building permits (only counties on one permit system), the state business entity registry. | In progress: permits partial, paid listings by hand | Not dated |
| Merge into companies | Records join on license number, then phone, then name and city, then final domain after redirects. | Done for pilot counties. License file as a source of new companies: next | Not dated |
| Place addresses in city limits | A mailing city is not the city boundary. Some St. Petersburg ZIP codes reach into Seminole, Kenneth City and Pinellas Park. | Next | Not dated |
| Website check in a real browser | Each home page opens in a real browser from a US connection. A language model judges site type and trade. Code proves the service area. | Done | Oct 1, 2026 |
| Fact extraction | Prices, 24/7 claims, hours, insurance, warranty, license numbers and service area are read from the site. A claim without a quote becomes "unknown". | Tools done. Writing full cards into the main database: in progress | Not dated |
| State records per company | License number, type and status. Board discipline and recovery fund claims. Federal records such as loans and safety inspections. | In progress: Florida workers' comp not yet | Not dated |
| Signals and scores | Facts become signals and scores. Checks make sure a score does not simply follow permit counts or star ratings. | Done (working version) | Not dated |
| Human review of sample cards | Every reviewer checks the same set of cards field by field. The next round uses a different set. | First set done. Next sets: next | Oct 2, 2026 |
| City page | A prototype list page exists on a private test copy. Publication checks are done by hand. | In progress | Not dated |
| Scheduled re-checks | A new site in the active slice runs every stage and waits for a moderator. Slice sites get re-checked monthly. | Next (decided) | Sept 28, 2026 |
Collecting the List
Two lists feed every slice. The state license file says who may legally work. The national website list says who is online.1 Neither is complete alone. Our Florida contractor license guide covers the license types we match against.
New domains from any source run high at first. Many are dead, lead-generation pages or second domains of known firms. So we count only sites that survive the merge and the browser check.1
Checking Each Website
On Oct 1 we stopped judging sites from raw page code. A quick check of the raw page now answers only "alive" or "no DNS".2
For a verdict, the page opens in a real browser. Code then looks for proof of service area:
- a phone number that matches other sources;
- a ZIP code inside the area;
- the city name next to the state name.
US sites are checked from a US connection, because some do not answer requests from abroad. For St. Petersburg, a rough check found 83 real sites among 200 candidates, with 30 needing a browser. The browser check settled on 88 local plumbers.2 How we sort these sites is in sorting plumbing websites.
Matching Sites to State Records
A website claim counts toward a score only after it matches a public record. A "licensed" badge proves nothing alone. The license number has to match the state file.2,4 We also check the state business entity registry.5 Our note on public business records lists what each record shows.
Facts With Sources
Each fact keeps its source and date. Anything that can be found by an exact rule is found by code. A model is used only where text needs reading.2 Services are checked against a list of 338 services.1
Before the current slice, our research found about 400 data sources. A company that clearly does plumbing had 9 independent facts on average.3
Human Review
On Oct 2 we started field-by-field review of sample cards. All reviewers see the same first set of 10 cards. That lets us compare their answers. The next round uses other cards.2
What Is Published and What Is Not
Published: these notes and guides. Not published for search: city lists, company cards and scores.
On Oct 6 we built test pages for all 88 St. Petersburg companies, kept out of search engines. A company page goes public only above a data threshold: a license match plus several verified record facts.2
Milestones, October 1 to 7, 2026
| Date | Milestone |
|---|---|
| Oct 1 | Data collection follows one staged process, one slice at a time. Step one of any slice is the full set of its websites. |
| Oct 1 | St. Petersburg plumbers: 200 candidate domains. The browser check found 88 local plumbers with service-area proof. |
| Oct 1 | Site checks move to a real browser on a US connection. Raw-page checks give only "alive" or "no DNS". |
| Oct 1 | Search demand for quick filters measured in the Tampa media market. Details in what Floridians search for. |
| Oct 2 | Florida state records collected first, at a slow public pace. Other states follow. |
| Oct 2 | Human review of sample cards starts with a shared set of 10. |
| Oct 4 | Company page rule set: publish only above a data threshold. |
| Oct 5 | Scope set: Florida, plumbers first, AC repair and HVAC second. The second trade starts after the first passes indexing checks. |
| Oct 6 | Collection and processing move to a dedicated data server. Test pages built for all 88 companies, kept out of search. |
| Oct 7 | This work log written from the process document and decision log. |
What Comes Next
- Use the license file as a source of new companies, not only as a cross-check.
- Place every address inside or outside city limits.
- Write full extracted cards into the main database.
- Add Florida workers' comp records.
- Schedule monthly re-checks of slice websites.
Until then, the guide before you hire shows how to run the same checks yourself.
Sources
- Nearbia project data, data collection process document (stages A to I with tool readiness), status as of Oct 2026.
- Nearbia project data, decision log, dated entries Oct 1 to Oct 6, 2026.
- Nearbia project data, project plan, state as of Sept 25, 2026.
- Florida Department of Business and Professional Regulation, license search, https://www.myfloridalicense.com/, accessed Oct 7, 2026.
- Florida Department of State, Division of Corporations (Sunbiz), https://dos.fl.gov/sunbiz/, accessed Oct 7, 2026.