parse_quote
Analyze a roofing contractor quote (full replacement or repair). Extracts price, material, roof size, contractor, scope of work (tear-off, underlayment, flashing, ice shield, drip edge, ventilation, decking, disposal, permit, warranty), and runs an audit against industry standards. Flags scope gaps, price concerns vs Medicare-style state-adjusted benchmarks, and warranty issues. Accepts text or one or more base64-encoded image data URLs (format: 'data:image/png;base64,...'). Returns parsed structured data plus a list of audit findings the user can dispute.
check_errors
Audit a roofing quote for scope gaps, price concerns, warranty issues, and documentation problems. Returns a list of findings ranked by severity (high/medium/low) with specific dispute actions. Accepts either a previously-parsed quote object (from parse_quote) OR raw quote text/images for a fresh parse. Use this when you've already run parse_quote and want to re-extract findings, OR when the user wants only the issue list without the structured parse.
lookup_average_price
Look up the typical per-square ($/100 sqft installed) and total price for a roofing job, adjusted by state, pitch, complexity, and tear-off layers. Useful for benchmarking specific contractor quotes against market rates. Covers the most common materials: 3-tab asphalt, architectural shingles, designer/luxury shingles, standing-seam metal, and corrugated/exposed-fastener metal. Includes brand recommendations and product tier guidance.
draft_dispute
Draft a written dispute or scope-clarification letter to a roofing contractor. Use this when the customer wants to formally request changes, demand missing scope items, dispute pricing, or push back on a specific issue identified by check_errors. The letter is firm but professional and references industry standards.
negotiation_script
Generate a phone or in-person negotiation script for a roofing contractor conversation. Tailored to common scenarios: leveraging multiple quotes for a price match, negotiating after a higher quote came back lower elsewhere, asking for warranty extension, or negotiating decking change-order caps. Includes opening framing, specific asks, common pushback responses, and closing/follow-up steps.