Check the Setup
- Python 3.10 or newer
- An internet connection
- The requests and openpyxl Python packages
BLS county employment and wage annual-average archives for comparing local labor-market conditions.
Report a ProblemFrom Source to Product Signal
BLS publishes County High-Level Excel ZIPs apart from its Public Data API. Start with one row from the 2025 annual-average workbook; HouseHunter also pins 2024. QCEW covers jobs subject to unemployment-insurance laws, not every worker or current job openings.
Install the packages, then run the notebook cell.
python -m pip install requests openpyxl
import io
import itertools
import zipfile
import requests
from openpyxl import load_workbook
url = "https://data.bls.gov/cew/data/files/2025/xls/2025_all_county_high_level.zip"
response = requests.get(url, timeout=60)
response.raise_for_status()
with zipfile.ZipFile(io.BytesIO(response.content)) as archive:
name = next(n for n in archive.namelist() if n.endswith("allhlcn25.xlsx"))
workbook = load_workbook(io.BytesIO(archive.read(name)), read_only=True, data_only=True)
for row in itertools.islice(workbook.active.values, 3):
print(row[:6])
workbook.close()Test a Useful Signal
Compare fixed-year county employment and wages at one ownership and industry grain.
U.S. Bureau of Labor Statistics is a government source. Last verified 2026-09-28. Temporal coverage: annual QCEW county averages; HouseHunter pins final 2024 and 2025 archives.