Skip to main content

Roofing Jobs in Minnesota

-

Minnesota · Roofing careers

Find the work that fits

Explore roofing work around Minneapolis–St. Paul, Rochester, Duluth, and St. Cloud. Compare installation, repair, service, sales, estimating, and field leadership roles by the actual worksite and pay arrangement.

Use the listings

Results below use the Minnesota state filter. Open a posting to confirm its real worksite, project type, and travel territory.

Before you apply

Ask how much of the year is installation work and what happens to hours during winter. Check whether the role is employee or subcontractor work and who provides tools, safety equipment, and training.

Work areas to compare

Minneapolis–St. Paul

For a Minneapolis–St. Paul posting, confirm whether the day centers on residential replacement, commercial installation, or repair. Check the crew’s usual work radius.

Rochester

In Rochester, compare field and service work by dispatch point, on-call expectations, and whether travel between jobs is paid.

Duluth

For Duluth openings, ask how estimating, project oversight, or sales duties are divided and whether leads or a vehicle are provided.

Minnesota conditions and the offer

NOAA’s Minnesota summary describes long cold winters and increasing spring precipitation. Ask how the employer plans around these conditions; weather alone does not establish hiring demand. Read the NOAA state summary.

  • Field work: compare hourly pay, overtime terms, equipment, and paid travel.
  • Sales: ask about base pay, leads, commission timing, and cancellations.
  • Estimating and leadership: clarify territory, reporting duties, and vehicle use.

Roofer wages in Minnesota

The 2025 BLS wage estimates published by O*NET report a median of $35.81 per hour and $74,490 per year for roofers in Minnesota. The middle half of reported hourly wages runs from $26.76 (25th percentile) to $44.05 (75th percentile). These percentiles describe the wage distribution; they are not apprentice, journeyman, or foreman pay grades.

State and available regional medians: roofers, SOC 47-2181
Survey geography Hourly median Annual median
Minnesota $35.81 $74,490
Duluth, MN-WI $35.03 $72,860
Fargo, ND-MN $29.62 $61,610
Grand Forks, ND-MN $24.40 $50,750
Mankato, MN $24.16 $50,250
Minneapolis-St. Paul-Bloomington, MN-WI $36.25 $75,400
Northwest Minnesota nonmetropolitan area $23.59 $49,060
Rochester, MN $29.78 $61,940
Sioux Falls, SD-MN $23.50 $48,880
Southeast Minnesota nonmetropolitan area $23.56 $49,000
St. Cloud, MN $38.10 $79,250

Compare an offer with the row that covers its actual worksite. A metro may cross a state border, and nonmetropolitan estimates cover a broader area than one town. An omitted region has no row in the table checked here; its wage should not be inferred from a neighboring metro.

These estimates concern employee roofers. They do not establish sales commissions, self-employed contractor income, prevailing-wage obligations, or guaranteed annual earnings. Benefits, overtime, paid travel and seasonal hours affect an offer’s value. The median is not a legal minimum.

Source: O*NET local wages for roofers in Minnesota, identifying BLS 2025 wage data. Retrieved October 23, 2026.

Among the published regional rows for Minnesota, Sioux Falls, SD-MN has a median of $23.50 per hour and St. Cloud, MN has a median of $38.10. These are regional benchmarks, not a ranking of employers or a forecast of vacancies. Compare the worksite geography before treating a statewide figure as local pay.

Explore roofing jobs by city in Minnesota

Use these local guides to compare reporting points, regional wages, and practical questions for employers. A city page is a starting point; confirm the project address in each listing.

More jobs coming soon