DEBUG: Raw major_slug = ""
DEBUG: Initial offers_url = "https://www.collegefactual.com/majors/construction-trades/carpenters/offers.json", major_slug = ""
DEBUG: After cleaning major_slug = ""
DEBUG: Before URL cleaning = "https://www.collegefactual.com/majors/construction-trades/carpenters/offers.json"
DEBUG: After TrimSuffix = "https://www.collegefactual.com/majors/construction-trades/carpenters/offers.json"
DEBUG: After HTTPS placeholder = "HTTPS_TEMP_PLACEHOLDERwww.collegefactual.com/majors/construction-trades/carpenters/offers.json"
DEBUG: After slash cleaning = "HTTPS_TEMP_PLACEHOLDERwww.collegefactual.com/majors/construction-trades/carpenters/offers.json"
DEBUG: After URL cleaning = "https://www.collegefactual.com/majors/construction-trades/carpenters/offers.json"
DEBUG: offers_url = https://www.collegefactual.com/majors/construction-trades/carpenters/offers.json
DEBUG: major_slug = ""
DEBUG: offers_url is valid, proceeding to fetch data
DEBUG: offers_data.offers found, count = 8
DEBUG: Specific major detected (cip4 = 46.02), keeping min_relevance at 0.8
DEBUG: Starting relevance filtering - min_relevance = 0.8, max_relevance = 1
DEBUG: Checking offer "Trade & Vocational Programs (Carpenter)" with relevance 1
DEBUG: ✓ Offer "Trade & Vocational Programs (Carpenter)" ACCEPTED (relevance 1)
DEBUG: Checking offer "Trade & Vocational Programs" with relevance 0.8
DEBUG: ✓ Offer "Trade & Vocational Programs" ACCEPTED (relevance 0.8)
DEBUG: Checking offer "Trade & Vocational Programs (Woodworker)" with relevance 0.8
DEBUG: ✓ Offer "Trade & Vocational Programs (Woodworker)" ACCEPTED (relevance 0.8)
DEBUG: Checking offer "MS in Management - Construction Management" with relevance 0.8
DEBUG: ✓ Offer "MS in Management - Construction Management" ACCEPTED (relevance 0.8)
DEBUG: Checking offer "Trade & Vocational Programs (Construction Trades)" with relevance 0.7
DEBUG: ✗ Offer "Trade & Vocational Programs (Construction Trades)" REJECTED (relevance 0.7)
DEBUG: Checking offer "Trade & Vocational Programs (Home Remodeling & Repair)" with relevance 0.7
DEBUG: ✗ Offer "Trade & Vocational Programs (Home Remodeling & Repair)" REJECTED (relevance 0.7)
DEBUG: Checking offer "Construction Management (I Have a HS Diploma or Associate Degree)" with relevance 0.5
DEBUG: ✗ Offer "Construction Management (I Have a HS Diploma or Associate Degree)" REJECTED (relevance 0.5)
DEBUG: Checking offer "Construction Management (I Have a Bachelors)" with relevance 0.5
DEBUG: ✗ Offer "Construction Management (I Have a Bachelors)" REJECTED (relevance 0.5)
DEBUG: relevant_offers count = 4
DEBUG: relevant_offers > 0, checking for ESYOH offers
DEBUG: ESYOH filtering - found 3 ESYOH offers with relevance >= 0.8
DEBUG: esyoh_offers count = 3
DEBUG: ESYOH offers found, rendering ESYOH widget
DEBUG: most_relevant_only = true, filtering for most relevant
DEBUG: Found 1 offers with relevance >= 1.0
Best Schools for Carpentry in Indiana
Below are the schools that deliver the strongest overall carpentry education in Indiana.
Top Schools in Carpentry
Ivy Tech Community College tops our 2026 ranking of the best carpentry schools. Set in the city of Indianapolis, Ivy Tech Community College is a very large public institution. About 440 carpentry degrees were awarded at Ivy Tech Community College in the most recent year. Carpentry graduates of Ivy Tech Community College earn a median of $51,104 early in their careers. Typical student debt for the program is $9,125.
Read more about the carpentry program at Ivy Tech Community College