← Use cases

Use case

Export Kanawha County, West Virginia Roofing Contractors

Every WVCLB-licensed roofing contractor in Kanawha County, with phone, mailing address, classifications and expiry date.

Say you run a roofing supply yard in Charleston and you want your counter staff calling every licensed roofer in Kanawha County before the spring re-roof season: a company name, a phone number and the trades each firm holds, so a call about shingles can also mention siding. In West Virginia that list is the Contractor Licensing Board’s (WVCLB) ROOFING classification. On 2026-10-12 the board filed 64 current roofing licences under Kanawha County, out of 802 Kanawha licences of every trade.

The manual way, and what it costs

The West Virginia Contractor Licensing Board Contractor Search page
WVCLB's Contractor Search. Phone on every result, 20 results to a page, no export.

The board’s search at wvclboard.wv.gov/verify/ is free and it does show the phone. The catch is the Classification menu: it lists 17 classes, and ROOFING is not one of them. Roofing is a sub-class of SPECIALTY, which 17,377 of the state’s 17,495 licences hold, so the closest you can get is every Kanawha licence, 802 of them across 41 pages of 20, reading each row’s class list for the word roofing and copying the 64 matches across by hand. That is 802 rows to read for 64 you keep, and the list is only as fresh as the day you copied it. If you only want the five roofers closest to the yard, search by city and do it by hand.

The faster way

West Virginia Contractor License Lookup & Leads Scraper (WVCLB) runs the county search once and filters every row on its full class list.

{
  "county": "Kanawha",
  "classification": "roofing",
  "maxResults": 500
}

county is the board’s own county field, read against its live list of 57 county codes. classification as the word roofing matches the ROOFING sub-class on every row, wherever it falls in the list. maxResults at 500 sits well above the 64 that match, so nothing is cut off; the log says “Kanawha: WVCLB reports 802, kept 64”. On Apify on 2026-10-12 the run took 20 seconds.

What comes back

A real row from that run:

{
  "license_number": "WV042167",
  "business_name": "BLAKE CONSULTING LLC",
  "dba_name": "BLAKE SUPPLY COMPANY(BSC)",
  "phone": "(304) 395-4322",
  "address": "1009 WALNUT ROAD",
  "city": "CHARLESTON",
  "address_state": "WV",
  "zip_code": "25314",
  "county": "KANAWHA",
  "classification": "GENERAL BUILDING; SPECIALTY; ROOFING; COMMUNICATION & SOUND; FLOOR COVERING",
  "classifications": [
    "GENERAL BUILDING",
    "SPECIALTY",
    "ROOFING",
    "COMMUNICATION & SOUND",
    "FLOOR COVERING"
  ],
  "expiration_date": "2027-08-24",
  "matched_by": "export",
  "status": null,
  "license_type": "Contractor License",
  "state": "WV",
  "source_url": "https://wvclboard.wv.gov/verify/"
}
FieldExample valueMeaning
phone(304) 395-4322Business phone as the board lists it
dba_nameBLAKE SUPPLY COMPANY(BSC)Doing-business-as name, when filed
classificationsGENERAL BUILDING, ROOFING, …Every class on the licence, as a list
address / zip_code1009 WALNUT ROAD / 25314Mailing address (can be a PO box)
expiration_date2027-08-24Licence expiry date

phone is what turns this into calls: all 64 rows had one, and 64 distinct numbers, so no two licences share a line. classifications is the second reason to pull it this way. Every one of the 64 holds more than one class, and 35 also hold SIDING, 20 RESIDENTIAL and 18 GENERAL BUILDING, which tells the counter which roofers also buy siding and trim. 18 firms file a DBA, usually the name on the truck.

What you’d do with it

Export to CSV and load it into the CRM keyed on license_number, so the next pull updates rows instead of duplicating them. Split it by mailing city if two people share the calls: 31 rows are Charleston, 9 South Charleston and 6 Elkview, and the busiest ZIPs were 25302 (7 licences), 25311 (6) and 25071 (6). Then use expiration_date: 7 of the 64 expire before the end of 2026 and 25 by the end of March 2027, a reason to call that is not a sales pitch. Re-run monthly and compare licence numbers to catch new ones.

Worth knowing

These are licences the board files under Kanawha, not every roofer who works there: a Putnam or Boone roofer taking Charleston jobs is not on it, so add those to counties to widen the net. The address is a mailing address, and 9 of the 64 are PO boxes; 2 of the 64 even have an out-of-state mailing address (Maryland and Missouri) while the board files them under Kanawha. There is no email, since the board publishes none, and no owner or qualifier name. The list is current licences only, read live from the board’s search on the day you run it.


Run it yourself: How to run West Virginia Contractor License Lookup & Leads Scraper (WVCLB) walks the whole thing step by step, including the full 17,495-licence export.

To check the roofers you already buy from rather than find new ones, Verify West Virginia Contractor Licenses runs their WV numbers and reads back each expiry. 16 of these roofers also hold HVAC; if your yard sells into the Ohio side of the river too, Ohio Contractor License Lookup & Leads Scraper (OCILB) exports Ohio’s licensed HVAC, electrical and plumbing contractors with phone.

Last updated 2026-10-12