Alabama Commercial Contractor Directory & Leads (LBGC) avatar

Alabama Commercial Contractor Directory & Leads (LBGC)

Pricing

$0.002 / contractor record

Go to Apify Store
Alabama Commercial Contractor Directory & Leads (LBGC)

Alabama Commercial Contractor Directory & Leads (LBGC)

Every LBGC-licensed commercial contractor and subcontractor in an Alabama county, by classification — business name, phone, fax, mailing address, ZIP, licence, classifications and bid limit.

Pricing

$0.002 / contractor record

Rating

0.0

(0)

Developer

ScrapeBench

ScrapeBench

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Pain points

  • LBGC publishes its whole roster as a free CSV (8,917 licensees on 2026-10-06), but it has no county column, so 'every building contractor in Jefferson County' cannot be filtered out of it — only cities and ZIPs.
  • More than half of that roster is not in Alabama: 4,729 of the 8,917 licensees (53%) have an out-of-state mailing address, which is noise when you want local firms.
  • Its Specialty column joins every classification with commas, and the descriptions contain commas too ('SUBCONTRACTOR: ABATEMENT, DEMOLITION'), so splitting it in a spreadsheet breaks 1,890 rows.

What we solve

  • Pick a county and a classification and get every matching LBGC licensee in one run, with phone, fax and mailing address, ready for a CRM.
  • Assigns each Alabama licensee a county from its mailing ZIP or city using U.S. Census tables, and says on every row which method decided it.
  • Splits classifications at each code, so 'BC' finds Building Construction licensees and not the BC-S subclassifications, and a word like 'paving' finds every classification that mentions it.

Summary

Build a prospect list of Alabama commercial contractors for any county in one run. Choose a county (or several) and an LBGC classification — Building Construction (BC), Municipal and Utility (MU), Highways and Streets (HS), Heavy and Railroad (H/RR), Electrical, any subclassification, or registered subcontractors — and get back every licensee that matches: business name, phone, fax, mailing address, PO-box flag, city, ZIP, county, licence number, status, expiry date, every classification held, and the LBGC bid limit. The data is the Alabama Licensing Board for General Contractors' own roster, read fresh on every run. LBGC publishes no county and no email; the county is derived from the mailing ZIP or city and every row says how. Leave the classification empty for every licensee in the county. Pay only per contractor returned.

Who it's for

  • Sales teams selling materials, equipment, insurance or software to commercial contractors in an Alabama territory
  • General contractors building a subcontractor shortlist by classification before bidding a public or commercial job
  • Surety and bonding agents prospecting for licensed commercial contractors by county
  • Market researchers sizing licensed commercial contractor coverage across Alabama counties

How to use

Set the input, run the actor, and collect results from the run's dataset (export to JSON/CSV/Excel, or pull via the Apify API). Example input:

{
"county": "Jefferson",
"trade": "BC"
}

See Inputs below for every available field.

What you get

One row per record:

FieldDescription
business_nameLicensee name as LBGC lists it
phonePhone number on file with LBGC
faxFax number, when listed
addressMailing street address as filed (may be a PO box)
is_po_boxTrue when the mailing address is a PO box or drawer
cityMailing city
zip_codeMailing ZIP code
countyAlabama county derived from the mailing ZIP or city — LBGC publishes none; null when it cannot be told
county_methodzip, city, zip_majority (the ZIP spans counties; largest by land area) or null
license_numberLBGC licence number ('S-' prefix = registered subcontractor)
statusActive, 'Active (extended)', or Inactive
expiration_dateLicence expiry date (M/D/YYYY)
extension_dateRenewal extension date, when LBGC lists one
classificationsEvery LBGC classification held, as 'CODE: DESCRIPTION'
classification_codesThe distinct codes held, e.g. BC, MU-S, SUBCONTRACTOR
bid_limitLBGC bid limit: 'Unlimited' or a dollar amount
address_stateState of the mailing address
requested_countyThe county search that returned the row
requested_tradeThe classification search that returned the row
source_urlLBGC's licence verification list

Sample:

{
"business_name": "A G GASTON CONSTRUCTION CO INC",
"phone": "(205) 328-0376",
"fax": "(205) 876-1138",
"address": "1820 3RD AVE N SUITE 400",
"is_po_box": false,
"city": "BIRMINGHAM",
"zip_code": "35203",
"county": "Jefferson",
"county_method": "zip",
"address_state": "AL",
"state": "AL",
"license_number": "14788",
"status": "Active",
"expiration_date": "8/31/2027",
"extension_date": null,
"classifications": "BC: BUILDING CONSTRUCTION, HS: HIGHWAYS AND STREETS, MU: MUNICIPAL AND UTILITY",
"classification_codes": [
"BC",
"HS",
"MU"
],
"bid_limit": "Unlimited",
"requested_county": "Jefferson",
"requested_trade": "BC",
"source_url": "https://licensesearch.alabama.gov/genconbd"
}

Inputs

FieldRequiredTypeDefaultDescription
listOptionsOnlynobooleanfalseIf true, skip the search and return the 67 Alabama counties plus every classification code on the Alabama Licensing Board for General Contractors (LBGC) roster, with how many licensees hold it. Free, not charged.
tradenostring"BC"An LBGC classification code, e.g. 'BC' (Building Construction), 'MU' (Municipal and Utility), 'HS' (Highways and Streets), 'BC-S' or 'SUBCONTRACTOR' — a code matches exactly, so 'BC' does not include 'BC-S'. Or a word: 'electrical', 'paving', 'plumbing' finds every classification whose description contains a word starting with it. Leave empty for every classification in the county.
tradesnoarray["BC", "MU"]Several classifications in ONE run, e.g. BC and MU and electrical. Combined with 'Classification / trade' if you fill both. A contractor matching two of them is returned (and billed) once.
countynostring"Jefferson"Alabama county, e.g. 'Jefferson', 'Mobile County', 'saint clair'. LBGC publishes no county, so this matches the county derived from each contractor's MAILING ZIP or city. If it is not an Alabama county, the run returns the free county and classification lists instead of failing.
countiesnoarray["Jefferson", "Shelby"]Several counties in ONE run, e.g. Jefferson and Shelby. Combined with 'County' if you fill both.
includeOutOfStatenobooleanfalseLBGC licenses firms from every state: 4,729 of its 8,917 licensees (53%, 2026-10-06) have a mailing address outside Alabama. Off by default. Only applies when no county is set — a county search is always Alabama addresses.
maxResultsnointeger—Cap on the contractors returned PER county + classification search, not per run, so adding counties can never silently truncate the ones later in the list. Leave empty to return every match.
proxyConfigurationnoobject{"useApifyProxy": false}Optional. LBGC answers direct requests; enable a proxy only if runs come back with a 'blocked' notice.

Pricing (Pay Per Event)

You pay per result (dataset-item) — no charge for empty runs. Example: 123 Jefferson County building contractors at $0.002/result ≈ $0.25.

Discovery Mode and unrecognised inputs return the free county and classification lists. Apify platform usage is billed separately.

Use cases

  • Territory prospecting — pull every Building Construction licensee in Jefferson and Shelby counties and load the phone list into your CRM.
  • Subcontractor sourcing — list every licensee with a paving, electrical or site-work classification near a project, with their bid limit, before you send bid invitations.
  • Market sizing — count LBGC licensees per classification and county to decide where to place a rep.
  • List refresh — re-run monthly and compare status and expiry dates to spot licences that lapsed or were extended.

Why this actor

  • Phone on 545 of 545 Jefferson County licensees and 123 of 123 Jefferson Building Construction licensees, with a ZIP on every one (measured 2026-10-06).
  • Straight from the Alabama Licensing Board for General Contractors' own roster, read fresh on every run — no stale copy.
  • A county on 96% of Alabama licensees (4,019 of 4,188), each labelled with how it was derived, so you can drop the less certain ones.
  • Out-of-state firms (53% of the roster) are left out unless you ask for them, and PO-box addresses are flagged.
  • Pay per contractor returned; the county and classification lists are free.

Limitations & updates

Covers licensees on the Alabama Licensing Board for General Contractors roster: commercial contractors and registered subcontractors. Residential home builders are licensed by a different board and are not included. LBGC publishes no email and no county; the county is derived from the mailing ZIP or city with U.S. Census 2020 tables, is the county of the mailing address (25% of Alabama licensees file a PO box), and is null for 4% of Alabama licensees whose PO-box ZIP and city both span counties. A firm working in several counties appears only under its mailing county. If LBGC does not answer, the run returns a free row saying so instead of an empty dataset.

FAQ

Where does the data come from?

From the Alabama Licensing Board for General Contractors (LBGC): its full licence roster download at licensesearch.alabama.gov, fetched on every run. County is added by this actor from U.S. Census 2020 ZIP-to-county and place-to-county tables.

Can't I just download LBGC's roster myself?

Yes, it is free, and if you want the whole state once you should. This actor is for when you want one county and one classification on demand, with out-of-state firms removed, classifications split correctly, and a county on each row.

How is the county worked out?

LBGC publishes no county. If the mailing ZIP's Census area lies at least 90% in one county, that county is used (county_method 'zip', 2,938 of 4,188 Alabama licensees on 2026-10-06). Otherwise, if the mailing city is a Census place in exactly one county, that one ('city', 719). Otherwise the county holding most of the ZIP's land area ('zip_majority', 362). 169 (4%) — mostly PO-box ZIPs in cities that span counties, like Decatur and Huntsville — stay null rather than be guessed. It is the county of the mailing address, not of where the firm works.

How many contractors does a county return?

Counted 2026-10-06, all classifications: Jefferson 545, Mobile 402, Baldwin 336, Shelby 268, Madison 237, Tuscaloosa 222, Montgomery 201. Jefferson Building Construction (BC) alone is 123.

How do I name a classification?

By LBGC code ('BC', 'MU', 'HS', 'H/RR', 'BC-S', 'SUBCONTRACTOR') for an exact match, or by a word from the description ('paving', 'electrical', 'plumbing'), which matches at the start of a word. Turn on Discovery Mode for all codes with how many licensees hold each, free.

Is there an email address?

No. LBGC's roster has no email field at all, so no row has one. You get phone (on 4,185 of 4,188 Alabama licensees), fax where listed, and the mailing address.

Does this include home builders and residential roofers?

No. LBGC licenses commercial work and registers subcontractors. Residential home builders are licensed by a different board, the Alabama Home Builders Licensure Board, which this actor does not cover.

How am I charged?

One event per contractor returned ($0.002). A contractor that matches two of your searches is returned and charged once. The county and classification lists, and any row explaining a source problem, are free.

Which actor to choose

Part of the contractor-data suite — pick the one that fits your goal:

  • Alabama Contractor License Lookup & Verify (LBGC) — You have a contractor's name or licence number and want to check that one LBGC licence.
  • Arkansas Contractor Directory & Leads Scraper (ACLB) — You need the same county-by-trade contractor list for Arkansas, with email.
  • California Contractor Directory by Trade & County (CSLB) — You need the same trade-by-county contractor list for California.
  • Texas Contractor Directory & Leads Scraper (TDLR) — You need a county-scoped roster of Texas TDLR-licensed contractors.
  • Virginia Contractor Directory & Leads Scraper (DPOR) — You need the same county-by-trade contractor list for Virginia, with email and mailing address.

Guides & use cases

Written up on scrapebench.dev — the bench that runs and verifies this actor against the live source every night:

More actors, coverage and nightly verification results: scrapebench.dev

Works with AI assistants (MCP)

Callable as an MCP tool, so Claude, Cursor, VS Code Copilot and other MCP clients can run it directly. Grab the config from the MCP tab on this page — Apify hosts the server and keeps that snippet current, and OAuth signs you in on first connect, so no API token goes in your config file.

Then just ask:

"List the LBGC Building Construction (BC) licensees with a Jefferson County, Alabama mailing address, with their phone numbers."

Each row also carries the contractor's LBGC bid limit and every classification it holds, so you can ask for the ones with an unlimited bid limit. Runs started this way bill exactly like any other run.