Customer Reviews

We’re proud of the reputation we’ve built over the last 30 years.

  • May 4th, 2022

    Service was fast and efficient

    Bryan Geisler
  • April 11th, 2022

    I was blown away by Adnan and Josh’s service. Very polite, straightforward, and I wasn’t over sold. They were honest, gave me some options, and let me choose without any pressure. The work was do..

    Shaun Hautly
  • April 9th, 2022

    My sales representative Travis was very professional. Took the time to check everything out and tell me exactly what needed to be done. Very throughly explained the job from top to bottom. He took a t..

    Ian Dal
  • April 1st, 2022

    Very professional. Identified the problem with my leaking roof. Recommended replacing the whole roof, which we did. They worked with my schedule, and maintained a good communication the whole time up ..

    MrYuK mEaNsN0
  • March 21st, 2022

    Ben H. and Alex came to our house to repair some chimney bricks and mortar issues we had. They were on time and very courteous. They were one of the best crews we've ever had do work on our house. Fro..

    Rebecca Voelkerding
  • March 18th, 2022

    They were punctual and perfessional definitely made right choicegoing with bone dry

    Camille Grant
  • February 7th, 2022

    We needed a chimney cap replaced and it was. Scott went beyond the installation by caulking small cracks he noticed during the installment. Everyone I spoke with was professional and pressure..

    kelly Wetherhote
  • December 30th, 2021

    The work that they did on my roof was simply exquisite. They were fast, friendly, efficient, polite, and punctual. They were extremely helpful throughout the entire process. I have recommended them to..

    Barbara Wallace
  • December 10th, 2021

    Bone dry responded to my work request quickly, professionally and with personality. The price was fair and the workmanship was speedy and well done. I appreciate their dedication to their craft and ho..

    Matthew Laliberte
  • October 26th, 2021

    The guys were great! From the inspection/ quote to communication & their work! They arrived when they said they would. Everything was done very well. Photos were sent from the roof as each step was ..

    Maggie Huggard
  • October 15th, 2021

    We are so grateful to the Bone Dry team. They were a 2nd opinion, after our original roofing company let water leak into our house for 11 months after installing a new roof! Bone Dry found the proble..

    Melissa Wallis
  • October 6th, 2021

    Bone Dry repaired my leaky chimney and sun room roof after years or going through other companies with numerous other solutions that didn't work. They did a great job of identifying the problem and fi..

    Daniel Seyer
  • September 29th, 2021

    They did a great job very efficient, pointed out things other companies did not . Texted photos of work from start to finish.

    Dennis Burjoski
  • September 9th, 2021

    Wow! I cannot write a review that sums up my experience with Bone Dry. Tanner and Shane were amazing. We had quite a stressful situation and they assisted in assuring us everything would be fine every..

    Kellie Tunney
  • September 3rd, 2021

    From the initial inspection of our roof to the completion of a new roof install, I’ve been very pleased with the communication and service provided by Bone Dry. Shane provided a great video explain..

    Sean Disch
  • September 2nd, 2021

    Bone Dry Roofing came in and did Great work. The work was documented with photos of the start and finish. They kept you in the loop if like I was on the roof with them doing the repairs. Everyday I wa..

    John Hill
  • September 1st, 2021

    Their sales rep was very professional, pleasant, and courteous. I received acknowledgment of my request for work from the office staff promptly. Their workman called ahead of time to advise me when..

    Laura Zuk
  • September 1st, 2021

    Alex did a nice job for use repairing some roof damage from a tree. Very friendly and provided pictures of the work as he progressed along the way. Would recommend them to others

    Michael Gones
  • July 8th, 2021

    Bone Dry repaired the flashing on my roof. I was provided pictures of the work being done as well as the completed work. Excellent workmanship! The repairman called to confirm his arrival and even cal..

    Kathie Ball
  • July 6th, 2021

    Before, during, and after the staff was very professional. The photo updates of the progress throughout the day was awesome. Each question was answered and /or explained thoroughly. After the install ..

    Steve Ouellette
  • June 25th, 2021

    We contacted Bone Dry because of a persistent leak from our chimney over the fireplace, which past roofers have been unable to permanently repair. They inspected the chimney (built in 1956) and ident..

    Monty Schrunk
  • June 18th, 2021

    Bone Dry showed up when they said they would, and their crew installed a new roof in one day. The best part was they cleaned up every scrap of debris that was left around our area, including using a m..

    Jim Bower


(function(cookieName, domain){ var traffic_source_COOKIE_TOKEN_SEPARATOR = ">>"; //separating between concatenated lead source var traffic_source_date_SEPARATOR = "|>"; var NONE = "(website)"; domain = domain || window.location.hostname; function getCookie(cookieName){ var name = cookieName + "="; var cookieArray = document.cookie.split(';'); //break cookie into array for(var i = 0; i < cookieArray.length; i++){ var cookie = cookieArray[i].replace(/^\s+|\s+$/g, ''); //replace all space with '' = delete it if (cookie.indexOf(name)==0){ return cookie.substring(name.length,cookie.length); // } } return null; } function getURLParameter(param){ var pageURL =; //get the query string parameters without the "?" var URLVariables = pageURL.split('&'); //break the parameters and values attached together to an array for (var i = 0; i -1) { if(end === -1) { end = utmzCookie.length; } cookieCampaignName = "utmz:" + utmzCookie.substring((start + UTMSRC.length), end); //get the value of the UTMZ, without the parameter name } } if(cookieCampaignName != "" && isNotNullOrEmpty(urlParamSRC)){ //if there is a campaign name AND there is SRC value traffic_source = urlParamSRC + traffic_source_COOKIE_TOKEN_SEPARATOR + cookieCampaignName; //concateane the SRC with the existing campaign name // traffic_source = urlParamSRC + currTime() + traffic_source_COOKIE_TOKEN_SEPARATOR + cookieCampaignName; // Optional: add the session time } else if(cookieCampaignName != ""){ //if there is campaign name traffic_source = cookieCampaignName; //just use it for the new cookie } else if(urlParamSRC != null) { //if there is not campaign name but we have SRC traffic_source = decodeURI(urlParamSRC); // decode URI of the SRC parameter // traffic_source = decodeURI(urlParamSRC) + currTime(); // Optional: add the session time } else if(document.referrer != ""){ //if there is not campaign, and no src, check if there is a referrer, var referrerHostName = removeProtocol(document.referrer); var GOOGLE = /; var YAHOO = /; var BING = /; if(GOOGLE.test(referrerHostName)){ traffic_source = "Google Search"; //traffic_source = "Google Search" + currTime(); // + Optional: Add the current session time. Choose one of them. } else if(YAHOO.test(referrerHostName)){ traffic_source = "Yahoo Search"; //traffic_source = "Yahoo Search" + currTime(); } else if(BING.test(referrerHostName)){ traffic_source = "Bing Search"; //traffic_source = "Bing Search" + currTime(); } else { traffic_source = referrerHostName; //traffic_source = referrerHostName + currTime(); } } else { traffic_source = NONE; } setCookie(cookieName, traffic_source); //set the cookie } else if(isNotNullOrEmpty(urlParamSRC)){ //if there is a cookie, add the SRC to the cookie, unless the same src already exists as the first token. var firstToken = getFirstTokenFromCookie(getCookie(cookieName)); if(firstToken !== "" && urlParamSRC !== firstToken) { var newTrafficSourceCookie = urlParamSRC + traffic_source_COOKIE_TOKEN_SEPARATOR + getCookie(cookieName); //concetenate new SRC with old cookie values // var newTrafficSourceCookie = urlParamSRC + currTime() + traffic_source_COOKIE_TOKEN_SEPARATOR + getCookie(cookieName); // Optional: add the time of current session setCookie(cookieName, newTrafficSourceCookie); } } })("traffic_source", ""); function getCookie(name) { //Gets the value of traffic_source var value = "; " + document.cookie; var parts = value.split("; " + name + "="); if (parts.length == 2) return parts.pop().split(";").shift(); } function addTrafficSourceToForm(){ //injects the traffic_source value to the form jQuery(".lead_source input").each(function() { this.value = getCookie("traffic_source"); console.log("Executing"); }); } addTrafficSourceToForm() //initates the process