CINXE.COM

Cleaning Service San Francisco | Handy

<!DOCTYPE html> <html class='no-js' data-request-country='US' dir='ltr' lang='en'> <head> <link rel="shortcut icon" type="image/x-icon" href="https://cache-landingpages.services.handy.com/assets/favicon-465fb4e7d7152f5abb6b2ecf7330aefa8a067f174110dcd80324b56aeedfea59.ico" /> <meta charset='utf-8'> <script>window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"fee8387e35","applicationID":"153245944","transactionName":"IQwNRkoKXlVcSh5KAwQKDVdKHB1JWF9US0kRCwxF","queueTime":0,"applicationTime":1036,"agent":""}</script> <script>(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={licenseKey:"fee8387e35",applicationID:"153245944"};;/*! For license information please see nr-loader-rum-1.283.1.min.js.LICENSE.txt */ (()=>{var e,t,r={122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function u(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},217:(e,t,r)=>{"use strict";r.d(t,{D0:()=>m,gD:()=>v,xN:()=>h});r(860).K7.genericEvents;const n="experimental.marks",i="experimental.measures",o="experimental.resources",a=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var s=r(614),c=r(944),u=r(384),l=r(122);const d="[data-nr-mask]",f=()=>{const e={feature_flags:[],experimental:{marks:!1,measures:!1,resources:!1},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{get capture_marks(){return e.feature_flags.includes(n)||e.experimental.marks},set capture_marks(t){e.experimental.marks=t},get capture_measures(){return e.feature_flags.includes(i)||e.experimental.measures},set capture_measures(t){e.experimental.measures=t},capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:s.wk,inactiveMs:s.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){a(t)?e.mask_selector="".concat(t,",").concat(d):""===t||null===t?e.mask_selector=d:(0,c.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){a(t)?e.block_selector+=",".concat(t):""!==t&&(0,c.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,c.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},spa:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]}}},g={},p="All configuration objects require an agent identifier!";function m(e){if(!e)throw new Error(p);if(!g[e])throw new Error("Configuration for ".concat(e," was never set"));return g[e]}function h(e,t){if(!e)throw new Error(p);g[e]=(0,l.a)(t,f());const r=(0,u.nY)(e);r&&(r.init=g[e])}function v(e,t){if(!e)throw new Error(p);var r=m(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>d});var n=r(122),i=r(384),o=r(154),a=r(324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0,harvester:void 0},l={};function d(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!l[e])throw new Error("Runtime for ".concat(e," was never set"));return l[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");l[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(l[e],"harvestCount")||Object.defineProperty(l[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=l[e])}},324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,xv:()=>n});const n="1.283.1",i="PROD",o="CDN"},154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>c,RI:()=>i,WN:()=>l,bv:()=>o,gm:()=>a,mw:()=>s,sb:()=>u});var n=r(863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s=Boolean("hidden"===a?.document?.visibilityState),c=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=c&&"undefined"==typeof SharedWorker,l=((()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);Array.isArray(e)&&e.length>=2&&e[1]})(),Date.now()-(0,n.t)())},687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>d,x3:()=>u});var n=r(836),i=r(606),o=r(860),a=r(646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};l(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),g(e,t,!1),s[e].size&&f(e))}function l(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function d(e="",t="feature",r=!1){if(l(e),!e||!s[e].get(t)||r)return g(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),g(e,t)})))}function g(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(990),o=r(371),a=r(646),s=r(607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},l={},d=!1;try{d=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=g(n),c=m(e),l=c.length,d=0;d<l;d++)c[d].apply(a,r);var p=v()[s[e]];p&&p.push([f,e,r,a]);return a},get:h,listeners:m,context:g,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:d?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:d};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function g(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=m(e).concat(t)}function m(e){return n[e]||[]}function h(t){return l[t]=l[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),l=(0,n.Zm)();l.ee||(l.ee=u)},646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(566).bz)()},566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,bz:()=>a});var n=r(154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}},614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(836),i=r(154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>l,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>d});var n=r(154),i=r(863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function l(e,t){a()[e]=t}function d(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(836),i=r(607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];l(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return l(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,l,d;try{a=this,o=[...arguments],l="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],l],e)}i(r+"start",[o,a,s],l,c);try{return d=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],l,c),e}finally{i(r+"end",[o,a,d],l,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function l(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},993:(e,t,r)=>{"use strict";r.d(t,{A$:()=>o,ET:()=>a,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o={OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},a="log";n.K7.logging},773:(e,t,r)=>{"use strict";r.d(t,{z_:()=>o,XG:()=>s,TZ:()=>n,rs:()=>i,xV:()=>a});r(154),r(566),r(384);const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},344:(e,t,r)=>{"use strict";r.d(t,{G4:()=>i});var n=r(614);r(860).K7.sessionReplay;const i={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"};n.g.ERROR,n.g.FULL,n.g.OFF},234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(836),i=r(687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},603:(e,t,r)=>{"use strict";r.d(t,{j:()=>K});var n=r(860),i=r(555),o=r(371),a=r(908),s=r(836),c=r(687),u=r(289),l=r(154),d=r(944),f=r(773),g=r(384),p=r(344);const m=["setErrorHandler","finished","addToTrace","addRelease","recordCustomEvent","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],h=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(863),b=r(614),y=r(993);var w=r(646),R=r(434);const A=new Map;function E(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,d.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,R.YM)(i),a=new w.y(s.P);a.level=n.level,a.customAttributes=n.customAttributes;const c=t[r]?.[R.Jt]||t[r];return A.set(c,a),o.inPlace(t,[r],"wrap-logger-",(()=>A.get(c))),i}function _(){const e=(0,g.pV)();m.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,d.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const x={};function N(e,t,g=!1){t||(0,c.Ak)(e,"api");const m={};var w=s.ee.get(e),R=w.get("tracer");x[e]=b.g.OFF,w.on(p.G4.REPLAY_RUNNING,(t=>{x[e]=t}));var A="api-",_=A+"ixn-";function N(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),j(A,n,!0,o||null===r?"session":void 0)(t,r)}function k(){}m.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,w),function(e,t,r={},i=y.p_.INFO){(0,a.p)(f.xV,["API/logging/".concat(i.toLowerCase(),"/called")],void 0,n.K7.metrics,e),(0,a.p)(y.ET,[(0,v.t)(),t,r,i],void 0,n.K7.logging,e)}(w,e,t,r)},m.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,w),E(w,e,t,{customAttributes:r,level:i})},h.forEach((e=>{m[e]=j(A,e,!0,"api")})),m.addPageAction=j(A,"addPageAction",!0,n.K7.genericEvents),m.recordCustomEvent=j(A,"recordCustomEvent",!0,n.K7.genericEvents),m.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,j(A,"setPageViewName",!0)()},m.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return N(e,t,"setCustomAttribute",r);(0,d.R)(40,typeof t)}else(0,d.R)(39,typeof e)},m.setUserId=function(e){if("string"==typeof e||null===e)return N("enduser.id",e,"setUserId",!0);(0,d.R)(41,typeof e)},m.setApplicationVersion=function(e){if("string"==typeof e||null===e)return N("application.version",e,"setApplicationVersion",!1);(0,d.R)(42,typeof e)},m.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,w),w.emit("manual-start-all")}catch(e){(0,d.R)(23,e)}},m[p.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,w)},m[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,w)},m.interaction=function(e){return(new k).get("object"==typeof e?e:{})};const T=k.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,w),g||(0,a.p)(_+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,w),function(){if(R.emit((o?"":"no-")+"fn-start",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw R.emit("fn-err",[arguments,this,t],r),t}finally{R.emit("fn-end",[(0,v.t)()],r)}}}};function j(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,w),i&&(0,a.p)(e+t,[r?(0,v.t)():performance.now(),...arguments],r?null:this,i,w),r?void 0:this}}function I(){r.e(296).then(r.bind(r,778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,d.R)(27,e),w.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{T[e]=j(_,e,void 0,g?n.K7.softNav:n.K7.spa)})),m.setCurrentRouteName=g?j(_,"routeName",void 0,n.K7.softNav):j(A,"routeName",!0,n.K7.spa),m.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,w),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!x[e]],void 0,n.K7.jserrors,w)},l.RI?(0,u.GG)((()=>I()),!0):I(),m}var k=r(217),T=r(122);const j={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},I={};var O=r(284);const S=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let P=!1;function K(e,t={},r,n){let{init:a,info:c,loader_config:u,runtime:d={},exposed:f=!0}=t;d.loaderType=r;const p=(0,g.pV)();c||(a=p.init,c=p.info,u=p.loader_config),(0,k.xN)(e.agentIdentifier,a||{}),function(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");I[e]=(0,T.a)(t,j);const r=(0,g.nY)(e);r&&(r.loader_config=I[e])}(e.agentIdentifier,u||{}),c.jsAttributes??={},l.bv&&(c.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,c);const m=(0,k.D0)(e.agentIdentifier),h=[c.beacon,c.errorBeacon];P||(m.proxy.assets&&(S(m.proxy.assets),h.push(m.proxy.assets)),m.proxy.beacon&&h.push(m.proxy.beacon),_(),(0,g.US)("activatedFeatures",O.B),e.runSoftNavOverSpa&&=!0===m.soft_navigations.enabled&&m.feature_flags.includes("soft_nav")),d.denyList=[...m.ajax.deny_list||[],...m.ajax.block_internal?h:[]],d.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,d),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=N(e.agentIdentifier,n,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=f),P=!0}},374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>u,K7:()=>s,P3:()=>c,XX:()=>i,qY:()=>n,v4:()=>a});const n="events",i="jserrors",o="browser/blobs",a="rum",s={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},c={[s.pageViewEvent]:1,[s.pageViewTiming]:2,[s.metrics]:3,[s.jserrors]:4,[s.spa]:5,[s.ajax]:6,[s.sessionTrace]:7,[s.softNav]:8,[s.sessionReplay]:9,[s.logging]:10,[s.genericEvents]:11},u={[s.pageViewEvent]:a,[s.pageViewTiming]:n,[s.ajax]:n,[s.spa]:n,[s.softNav]:n,[s.metrics]:i,[s.jserrors]:i,[s.sessionTrace]:o,[s.sessionReplay]:o,[s.logging]:"browser/logs",[s.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>"nr-rum-1.283.1.min.js",i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.283.1.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),l=0;l<u.length;l++){var d=u[l];if(d.getAttribute("src")==r||d.getAttribute("data-webpack")==t+o){s=d;break}}if(!s){c=!0;var f={296:"sha512-OUuNnugvDrqo9dEpgJAMqx7AmFewwGmFEG5KVEzFm/yvWGBOULQhkrf+RoL0zFNkEEwT+qmLNG6JA2owv/79WA=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var g=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(g.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=g.bind(null,s.onerror),s.onload=g.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={374:0,840:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.283.1.PROD"]=self["webpackChunk:NRBA-1.283.1.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(374);var e=i(944),t=i(344),r=i(566);class n{agentIdentifier;constructor(){this.agentIdentifier=(0,r.LA)(16)}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}recordCustomEvent(e,t){return this.#e("recordCustomEvent",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(217);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var l=i(603);var d=i(687),f=i(234),g=i(289),p=i(154),m=i(384);const h=e=>p.RI&&!0===(0,s.gD)(e,"privacy.cookies_enabled");function v(e){return!!(0,m.dV)().o.MO&&h(e)&&!0===(0,s.gD)(e,"session_trace.enabled")}var b=i(389);class y extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,d.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,b.J)((()=>{(0,d.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if(h(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(296).then(i.bind(i,861));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(!this.#t(this.featureName,o))return(0,d.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(296).then(i.bind(i,103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),t.runtime.harvester.initializedAggregates.push(this.featAggregate),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,d.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,g.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return v(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var w=i(630);class R extends y{static featureName=w.T;constructor(e,t=!0){super(e,w.T,t),this.importAggregator(e)}}var A=i(908),E=i(843),_=i(878),x=i(782),N=i(863);class k extends y{static featureName=x.T;constructor(e,t=!0){super(e,x.T,t),p.RI&&((0,E.u)((()=>(0,A.p)("docHidden",[(0,N.t)()],void 0,x.T,this.ee)),!0),(0,_.sp)("pagehide",(()=>(0,A.p)("winPagehide",[(0,N.t)()],void 0,x.T,this.ee))),this.importAggregator(e))}}var T=i(773);class j extends y{static featureName=T.TZ;constructor(e,t=!0){super(e,T.TZ,t),this.importAggregator(e)}}new class extends o{constructor(t){super(),p.gm?(this.features={},(0,m.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(R),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,l.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,m.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[R,k,j],loaderType:"lite"})})()})();</script> <meta content='width=device-width, initial-scale=1, maximum-scale=1' name='viewport'> <title>Cleaning Service San Francisco | Handy</title> <script type="text/javascript"> window.NREUM||(NREUM={}),__nr_require=function(t,n,e){function r(e){if(!n[e]){var o=n[e]={exports:{}};t[e][0].call(o.exports,function(n){var o=t[e][1][n];return r(o||n)},o,o.exports)}return n[e].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o<e.length;o++)r(e[o]);return r}({1:[function(t,n,e){function r(t){try{s.console&&console.log(t)}catch(n){}}var o,i=t("ee"),a=t(15),s={};try{o=localStorage.getItem("__nr_flags").split(","),console&&"function"==typeof console.log&&(s.console=!0,o.indexOf("dev")!==-1&&(s.dev=!0),o.indexOf("nr_dev")!==-1&&(s.nrDev=!0))}catch(c){}s.nrDev&&i.on("internal-error",function(t){r(t.stack)}),s.dev&&i.on("fn-err",function(t,n,e){r(e.stack)}),s.dev&&(r("NR AGENT IN DEVELOPMENT MODE"),r("flags: "+a(s,function(t,n){return t}).join(", ")))},{}],2:[function(t,n,e){function r(t,n,e,r,s){try{p?p-=1:o(s||new UncaughtException(t,n,e),!0)}catch(f){try{i("ierr",[f,c.now(),!0])}catch(d){}}return"function"==typeof u&&u.apply(this,a(arguments))}function UncaughtException(t,n,e){this.message=t||"Uncaught error with no additional information",this.sourceURL=n,this.line=e}function o(t,n){var e=n?null:c.now();i("err",[t,e])}var i=t("handle"),a=t(16),s=t("ee"),c=t("loader"),f=t("gos"),u=window.onerror,d=!1,l="nr@seenError",p=0;c.features.err=!0,t(1),window.onerror=r;try{throw new Error}catch(h){"stack"in h&&(t(8),t(7),"addEventListener"in window&&t(5),c.xhrWrappable&&t(9),d=!0)}s.on("fn-start",function(t,n,e){d&&(p+=1)}),s.on("fn-err",function(t,n,e){d&&!e[l]&&(f(e,l,function(){return!0}),this.thrown=!0,o(e))}),s.on("fn-end",function(){d&&!this.thrown&&p>0&&(p-=1)}),s.on("internal-error",function(t){i("ierr",[t,c.now(),!0])})},{}],3:[function(t,n,e){t("loader").features.ins=!0},{}],4:[function(t,n,e){function r(t){}if(window.performance&&window.performance.timing&&window.performance.getEntriesByType){var o=t("ee"),i=t("handle"),a=t(8),s=t(7),c="learResourceTimings",f="addEventListener",u="resourcetimingbufferfull",d="bstResource",l="resource",p="-start",h="-end",m="fn"+p,w="fn"+h,v="bstTimer",y="pushState",g=t("loader");g.features.stn=!0,t(6);var b=NREUM.o.EV;o.on(m,function(t,n){var e=t[0];e instanceof b&&(this.bstStart=g.now())}),o.on(w,function(t,n){var e=t[0];e instanceof b&&i("bst",[e,n,this.bstStart,g.now()])}),a.on(m,function(t,n,e){this.bstStart=g.now(),this.bstType=e}),a.on(w,function(t,n){i(v,[n,this.bstStart,g.now(),this.bstType])}),s.on(m,function(){this.bstStart=g.now()}),s.on(w,function(t,n){i(v,[n,this.bstStart,g.now(),"requestAnimationFrame"])}),o.on(y+p,function(t){this.time=g.now(),this.startPath=location.pathname+location.hash}),o.on(y+h,function(t){i("bstHist",[location.pathname+location.hash,this.startPath,this.time])}),f in window.performance&&(window.performance["c"+c]?window.performance[f](u,function(t){i(d,[window.performance.getEntriesByType(l)]),window.performance["c"+c]()},!1):window.performance[f]("webkit"+u,function(t){i(d,[window.performance.getEntriesByType(l)]),window.performance["webkitC"+c]()},!1)),document[f]("scroll",r,{passive:!0}),document[f]("keypress",r,!1),document[f]("click",r,!1)}},{}],5:[function(t,n,e){function r(t){for(var n=t;n&&!n.hasOwnProperty(u);)n=Object.getPrototypeOf(n);n&&o(n)}function o(t){s.inPlace(t,[u,d],"-",i)}function i(t,n){return t[1]}var a=t("ee").get("events"),s=t(18)(a,!0),c=t("gos"),f=XMLHttpRequest,u="addEventListener",d="removeEventListener";n.exports=a,"getPrototypeOf"in Object?(r(document),r(window),r(f.prototype)):f.prototype.hasOwnProperty(u)&&(o(window),o(f.prototype)),a.on(u+"-start",function(t,n){var e=t[1],r=c(e,"nr@wrapped",function(){function t(){if("function"==typeof e.handleEvent)return e.handleEvent.apply(e,arguments)}var n={object:t,"function":e}[typeof e];return n?s(n,"fn-",null,n.name||"anonymous"):e});this.wrapped=t[1]=r}),a.on(d+"-start",function(t){t[1]=this.wrapped||t[1]})},{}],6:[function(t,n,e){var r=t("ee").get("history"),o=t(18)(r);n.exports=r,o.inPlace(window.history,["pushState","replaceState"],"-")},{}],7:[function(t,n,e){var r=t("ee").get("raf"),o=t(18)(r),i="equestAnimationFrame";n.exports=r,o.inPlace(window,["r"+i,"mozR"+i,"webkitR"+i,"msR"+i],"raf-"),r.on("raf-start",function(t){t[0]=o(t[0],"fn-")})},{}],8:[function(t,n,e){function r(t,n,e){t[0]=a(t[0],"fn-",null,e)}function o(t,n,e){this.method=e,this.timerDuration=isNaN(t[1])?0:+t[1],t[0]=a(t[0],"fn-",this,e)}var i=t("ee").get("timer"),a=t(18)(i),s="setTimeout",c="setInterval",f="clearTimeout",u="-start",d="-";n.exports=i,a.inPlace(window,[s,"setImmediate"],s+d),a.inPlace(window,[c],c+d),a.inPlace(window,[f,"clearImmediate"],f+d),i.on(c+u,r),i.on(s+u,o)},{}],9:[function(t,n,e){function r(t,n){d.inPlace(n,["onreadystatechange"],"fn-",s)}function o(){var t=this,n=u.context(t);t.readyState>3&&!n.resolved&&(n.resolved=!0,u.emit("xhr-resolved",[],t)),d.inPlace(t,y,"fn-",s)}function i(t){g.push(t),h&&(x?x.then(a):w?w(a):(E=-E,O.data=E))}function a(){for(var t=0;t<g.length;t++)r([],g[t]);g.length&&(g=[])}function s(t,n){return n}function c(t,n){for(var e in t)n[e]=t[e];return n}t(5);var f=t("ee"),u=f.get("xhr"),d=t(18)(u),l=NREUM.o,p=l.XHR,h=l.MO,m=l.PR,w=l.SI,v="readystatechange",y=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],g=[];n.exports=u;var b=window.XMLHttpRequest=function(t){var n=new p(t);try{u.emit("new-xhr",[n],n),n.addEventListener(v,o,!1)}catch(e){try{u.emit("internal-error",[e])}catch(r){}}return n};if(c(p,b),b.prototype=p.prototype,d.inPlace(b.prototype,["open","send"],"-xhr-",s),u.on("send-xhr-start",function(t,n){r(t,n),i(n)}),u.on("open-xhr-start",r),h){var x=m&&m.resolve();if(!w&&!m){var E=1,O=document.createTextNode(E);new h(a).observe(O,{characterData:!0})}}else f.on("fn-end",function(t){t[0]&&t[0].type===v||a()})},{}],10:[function(t,n,e){function r(t){var n=this.params,e=this.metrics;if(!this.ended){this.ended=!0;for(var r=0;r<d;r++)t.removeEventListener(u[r],this.listener,!1);if(!n.aborted){if(e.duration=a.now()-this.startTime,4===t.readyState){n.status=t.status;var i=o(t,this.lastSize);if(i&&(e.rxSize=i),this.sameOrigin){var c=t.getResponseHeader("X-NewRelic-App-Data");c&&(n.cat=c.split(", ").pop())}}else n.status=0;e.cbTime=this.cbTime,f.emit("xhr-done",[t],t),s("xhr",[n,e,this.startTime])}}}function o(t,n){var e=t.responseType;if("json"===e&&null!==n)return n;var r="arraybuffer"===e||"blob"===e||"json"===e?t.response:t.responseText;return h(r)}function i(t,n){var e=c(n),r=t.params;r.host=e.hostname+":"+e.port,r.pathname=e.pathname,t.sameOrigin=e.sameOrigin}var a=t("loader");if(a.xhrWrappable){var s=t("handle"),c=t(11),f=t("ee"),u=["load","error","abort","timeout"],d=u.length,l=t("id"),p=t(14),h=t(13),m=window.XMLHttpRequest;a.features.xhr=!0,t(9),f.on("new-xhr",function(t){var n=this;n.totalCbs=0,n.called=0,n.cbTime=0,n.end=r,n.ended=!1,n.xhrGuids={},n.lastSize=null,p&&(p>34||p<10)||window.opera||t.addEventListener("progress",function(t){n.lastSize=t.loaded},!1)}),f.on("open-xhr-start",function(t){this.params={method:t[0]},i(this,t[1]),this.metrics={}}),f.on("open-xhr-end",function(t,n){"loader_config"in NREUM&&"xpid"in NREUM.loader_config&&this.sameOrigin&&n.setRequestHeader("X-NewRelic-ID",NREUM.loader_config.xpid)}),f.on("send-xhr-start",function(t,n){var e=this.metrics,r=t[0],o=this;if(e&&r){var i=h(r);i&&(e.txSize=i)}this.startTime=a.now(),this.listener=function(t){try{"abort"===t.type&&(o.params.aborted=!0),("load"!==t.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof n.onload))&&o.end(n)}catch(e){try{f.emit("internal-error",[e])}catch(r){}}};for(var s=0;s<d;s++)n.addEventListener(u[s],this.listener,!1)}),f.on("xhr-cb-time",function(t,n,e){this.cbTime+=t,n?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof e.onload||this.end(e)}),f.on("xhr-load-added",function(t,n){var e=""+l(t)+!!n;this.xhrGuids&&!this.xhrGuids[e]&&(this.xhrGuids[e]=!0,this.totalCbs+=1)}),f.on("xhr-load-removed",function(t,n){var e=""+l(t)+!!n;this.xhrGuids&&this.xhrGuids[e]&&(delete this.xhrGuids[e],this.totalCbs-=1)}),f.on("addEventListener-end",function(t,n){n instanceof m&&"load"===t[0]&&f.emit("xhr-load-added",[t[1],t[2]],n)}),f.on("removeEventListener-end",function(t,n){n instanceof m&&"load"===t[0]&&f.emit("xhr-load-removed",[t[1],t[2]],n)}),f.on("fn-start",function(t,n,e){n instanceof m&&("onload"===e&&(this.onload=!0),("load"===(t[0]&&t[0].type)||this.onload)&&(this.xhrCbStart=a.now()))}),f.on("fn-end",function(t,n){this.xhrCbStart&&f.emit("xhr-cb-time",[a.now()-this.xhrCbStart,this.onload,n],n)})}},{}],11:[function(t,n,e){n.exports=function(t){var n=document.createElement("a"),e=window.location,r={};n.href=t,r.port=n.port;var o=n.href.split("://");!r.port&&o[1]&&(r.port=o[1].split("/")[0].split("@").pop().split(":")[1]),r.port&&"0"!==r.port||(r.port="https"===o[0]?"443":"80"),r.hostname=n.hostname||e.hostname,r.pathname=n.pathname,r.protocol=o[0],"/"!==r.pathname.charAt(0)&&(r.pathname="/"+r.pathname);var i=!n.protocol||":"===n.protocol||n.protocol===e.protocol,a=n.hostname===document.domain&&n.port===e.port;return r.sameOrigin=i&&(!n.hostname||a),r}},{}],12:[function(t,n,e){function r(){}function o(t,n,e){return function(){return i(t,[f.now()].concat(s(arguments)),n?null:this,e),n?void 0:this}}var i=t("handle"),a=t(15),s=t(16),c=t("ee").get("tracer"),f=t("loader"),u=NREUM;"undefined"==typeof window.newrelic&&(newrelic=u);var d=["setPageViewName","setCustomAttribute","setErrorHandler","finished","addToTrace","inlineHit","addRelease"],l="api-",p=l+"ixn-";a(d,function(t,n){u[n]=o(l+n,!0,"api")}),u.addPageAction=o(l+"addPageAction",!0),u.setCurrentRouteName=o(l+"routeName",!0),n.exports=newrelic,u.interaction=function(){return(new r).get()};var h=r.prototype={createTracer:function(t,n){var e={},r=this,o="function"==typeof n;return i(p+"tracer",[f.now(),t,e],r),function(){if(c.emit((o?"":"no-")+"fn-start",[f.now(),r,o],e),o)try{return n.apply(this,arguments)}catch(t){throw c.emit("fn-err",[arguments,this,t],e),t}finally{c.emit("fn-end",[f.now()],e)}}}};a("setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","),function(t,n){h[n]=o(p+n)}),newrelic.noticeError=function(t){"string"==typeof t&&(t=new Error(t)),i("err",[t,f.now()])}},{}],13:[function(t,n,e){n.exports=function(t){if("string"==typeof t&&t.length)return t.length;if("object"==typeof t){if("undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer&&t.byteLength)return t.byteLength;if("undefined"!=typeof Blob&&t instanceof Blob&&t.size)return t.size;if(!("undefined"!=typeof FormData&&t instanceof FormData))try{return JSON.stringify(t).length}catch(n){return}}}},{}],14:[function(t,n,e){var r=0,o=navigator.userAgent.match(/Firefox[\/\s](\d+\.\d+)/);o&&(r=+o[1]),n.exports=r},{}],15:[function(t,n,e){function r(t,n){var e=[],r="",i=0;for(r in t)o.call(t,r)&&(e[i]=n(r,t[r]),i+=1);return e}var o=Object.prototype.hasOwnProperty;n.exports=r},{}],16:[function(t,n,e){function r(t,n,e){n||(n=0),"undefined"==typeof e&&(e=t?t.length:0);for(var r=-1,o=e-n||0,i=Array(o<0?0:o);++r<o;)i[r]=t[n+r];return i}n.exports=r},{}],17:[function(t,n,e){n.exports={exists:"undefined"!=typeof window.performance&&window.performance.timing&&"undefined"!=typeof window.performance.timing.navigationStart}},{}],18:[function(t,n,e){function r(t){return!(t&&t instanceof Function&&t.apply&&!t[a])}var o=t("ee"),i=t(16),a="nr@original",s=Object.prototype.hasOwnProperty,c=!1;n.exports=function(t,n){function e(t,n,e,o){function nrWrapper(){var r,a,s,c;try{a=this,r=i(arguments),s="function"==typeof e?e(r,a):e||{}}catch(f){l([f,"",[r,a,o],s])}u(n+"start",[r,a,o],s);try{return c=t.apply(a,r)}catch(d){throw u(n+"err",[r,a,d],s),d}finally{u(n+"end",[r,a,c],s)}}return r(t)?t:(n||(n=""),nrWrapper[a]=t,d(t,nrWrapper),nrWrapper)}function f(t,n,o,i){o||(o="");var a,s,c,f="-"===o.charAt(0);for(c=0;c<n.length;c++)s=n[c],a=t[s],r(a)||(t[s]=e(a,f?s+o:o,i,s))}function u(e,r,o){if(!c||n){var i=c;c=!0;try{t.emit(e,r,o,n)}catch(a){l([a,e,r,o])}c=i}}function d(t,n){if(Object.defineProperty&&Object.keys)try{var e=Object.keys(t);return e.forEach(function(e){Object.defineProperty(n,e,{get:function(){return t[e]},set:function(n){return t[e]=n,n}})}),n}catch(r){l([r])}for(var o in t)s.call(t,o)&&(n[o]=t[o]);return n}function l(n){try{t.emit("internal-error",n)}catch(e){}}return t||(t=o),e.inPlace=f,e.flag=a,e}},{}],ee:[function(t,n,e){function r(){}function o(t){function n(t){return t&&t instanceof r?t:t?c(t,s,i):i()}function e(e,r,o,i){if(!l.aborted||i){t&&t(e,r,o);for(var a=n(o),s=h(e),c=s.length,f=0;f<c;f++)s[f].apply(a,r);var d=u[y[e]];return d&&d.push([g,e,r,a]),a}}function p(t,n){v[t]=h(t).concat(n)}function h(t){return v[t]||[]}function m(t){return d[t]=d[t]||o(e)}function w(t,n){f(t,function(t,e){n=n||"feature",y[e]=n,n in u||(u[n]=[])})}var v={},y={},g={on:p,emit:e,get:m,listeners:h,context:n,buffer:w,abort:a,aborted:!1};return g}function i(){return new r}function a(){(u.api||u.feature)&&(l.aborted=!0,u=l.backlog={})}var s="nr@context",c=t("gos"),f=t(15),u={},d={},l=n.exports=o();l.backlog=u},{}],gos:[function(t,n,e){function r(t,n,e){if(o.call(t,n))return t[n];var r=e();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(t,n,{value:r,writable:!0,enumerable:!1}),r}catch(i){}return t[n]=r,r}var o=Object.prototype.hasOwnProperty;n.exports=r},{}],handle:[function(t,n,e){function r(t,n,e,r){o.buffer([t],r),o.emit(t,n,e)}var o=t("ee").get("handle");n.exports=r,r.ee=o},{}],id:[function(t,n,e){function r(t){var n=typeof t;return!t||"object"!==n&&"function"!==n?-1:t===window?0:a(t,i,function(){return o++})}var o=1,i="nr@id",a=t("gos");n.exports=r},{}],loader:[function(t,n,e){function r(){if(!x++){var t=b.info=NREUM.info,n=l.getElementsByTagName("script")[0];if(setTimeout(u.abort,3e4),!(t&&t.licenseKey&&t.applicationID&&n))return u.abort();f(y,function(n,e){t[n]||(t[n]=e)}),c("mark",["onload",a()+b.offset],null,"api");var e=l.createElement("script");e.src="https://"+t.agent,n.parentNode.insertBefore(e,n)}}function o(){"complete"===l.readyState&&i()}function i(){c("mark",["domContent",a()+b.offset],null,"api")}function a(){return E.exists&&performance.now?Math.round(performance.now()):(s=Math.max((new Date).getTime(),s))-b.offset}var s=(new Date).getTime(),c=t("handle"),f=t(15),u=t("ee"),d=window,l=d.document,p="addEventListener",h="attachEvent",m=d.XMLHttpRequest,w=m&&m.prototype;NREUM.o={ST:setTimeout,SI:d.setImmediate,CT:clearTimeout,XHR:m,REQ:d.Request,EV:d.Event,PR:d.Promise,MO:d.MutationObserver};var v=""+location,y={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",agent:"js-agent.newrelic.com/nr-1071.min.js"},g=m&&w&&w[p]&&!/CriOS/.test(navigator.userAgent),b=n.exports={offset:s,now:a,origin:v,features:{},xhrWrappable:g};t(12),l[p]?(l[p]("DOMContentLoaded",i,!1),d[p]("load",r,!1)):(l[h]("onreadystatechange",o),d[h]("onload",r)),c("mark",["firstbyte",s],null,"api");var x=0,E=t(17)},{}]},{},["loader",2,10,4,3]); ;NREUM.info={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",licenseKey:"fee8387e35",applicationID:"133284765",sa:1} </script> <meta name="description" content="Cleaning Services. Find the best cleaning services in San Francisco. Handy connects you with cleaning service professionals. Compare, read reviews and book professional cleaning services online." /> <meta name="author" content="Handy for Pros is Now Angi Services" /> <meta name="og:site_name" content="Handy for Pros is Now Angi Services" /> <link href="https://www.handy.com/services/cleaning-service/san-francisco" rel="canonical" /> <link rel="stylesheet" media="screen" href="https://cache-landingpages.services.handy.com/assets/application-8e3b5bddd30409183109ef077d3d60e9a558b46e85802923ff5df36c30e1eb3a.css" /> <!-- asynchronous google analytics snippet --> <script type="text/javascript"> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-31442860-1', 'auto'); ga('send', 'pageview'); </script> <!-- End Google Analytics --> <script class="handy-analytics" id="handy-analytics--properties"> window.Handy = window.Handy || {}; (function setupHandyAnalytics(){ window.Handy.analytics = window.Handy.analytics || {"utm":{"handy_utm_source":null,"handy_utm_campaign":null,"handy_utm_coupon":null,"handy_utm_term":null,"handy_utm_medium":null,"handy_utm_content":null},"env":{"scully_fingerprint":["f61e014e-5439-4aec-b1d2-39ac89120a5e","936de6b5-bd9b-4c89-ad4d-c5d48742b09b","f02f2481-da6a-4612-b5cc-f3cd24c3d273","80179280-47c2-44b9-9b61-e76d576affaa","8262a1e2-4111-4016-97f6-b3379cf61f43","f76bb87a-24d8-4f46-84fe-e3f2cd131a26","ad30d738-4fee-4801-9852-8f37c732e2db","148a89d5-a2dd-4fde-ae5b-af77c162b066","9d39ed29-6db1-4512-8367-892b9167c51c","22f1e458-b0a0-459d-bed5-5c5fe7fa2c7e","9085bc5d-35ff-40a9-a7a8-37ff61c626d3","4a005674-3d4f-409a-88a9-d413af06e5fd","8a27e092-a629-4bc8-8c5a-5a74cd8041d0","022ae9ae-f5c5-40ef-bb5c-3dccfd6930ab","0b12fa2e-0a04-47b9-9150-edf9162bb68f","a48b4f5d-5bc2-473b-af88-25c2756d1008","20def8ec-aece-496e-80bc-8b608943c526","32faf179-c8fc-488f-a8d1-ff864e3be35e","72128813-e90f-45bf-8610-42980db57e90","0982159d-bc11-4173-b706-3123595ec604","b108499f-2e65-44e0-bb1d-fb8adfd675ef","30ecbfb0-ac32-4782-89c9-7aa751b9c540","3ef14d53-b7e4-408b-bb82-11106f2e12f4","78476689-4e12-4656-b509-f50e7c7190ee","34264c8c-942e-4051-b79f-bb3b67a4b9e9","8b1b9adb-5c3e-4fb1-a3d3-04a5db56a0d0","f39efb97-6942-4f29-ab22-19872ff8138c","7eb84b52-de6a-420f-ab00-739b72dcc716","281f397f-066f-4cca-8161-184db8a399e2","aee2200d-50e7-4cdb-b707-47bfea3e57fc","66d4b66b-ca20-4259-9fed-e0cd6856997c","65cf9460-893b-4155-bf93-a20ebb96167f","b5bbd335-1824-4e09-9810-2564222500c9","0d8c92ef-07bb-4bdb-9e78-698da974ba61","2db075b9-0c02-4e1e-9e81-2afaeeb4156b","bf779d91-45fa-44ed-98d7-05802e5c24b3","e975b5e5-c2d3-4991-a9d1-a399b27b1b37","1dcebcb7-550f-4c69-873e-57fc6734b2d3","0644d3ac-1eec-4513-9d16-7c41a61c41cf","37dffef4-caf2-47ec-a0b7-effc326b18aa","f7166369-537f-4cc5-8076-9fc369d1f33a"],"browser_uid":"IXHNK+9w0WJ+mqM+h16YT/rgAsLvH8PbI0QFl0LF3nFpBFKFDox6HISTV/pgQHqBEdKrHtY4jg8TPdRfBYcMTA==","from_native":false,"native_session_uid":null},"user":{"impersonating":false,"brand":"handy","new":false},"booking":{},"quote_request":{},"pageInfo":{"bookingId":null,"conversionType":null,"serviceName":null,"serviceCategory":null,"serviceId":null,"recurringFrequency":null,"zipcode":null,"dateOfBooking":null,"timeOfBooking":null,"dateAdded":null,"hourlyRate":null,"bookingHrs":null,"discount":null,"couponCode":null,"confirmedBooking":false,"cleaningType":null,"numberCreatedBookings":0,"isCleaning":0,"isCommit":0,"isOneTime":0,"isRecurring":0},"customerInfo":{"newUser":1,"userLoggedIn":false,"userHasAccount":false}}; }()); window.dataLayer ||= []; window.dataLayer.push(window.Handy.analytics); </script> <script type="text/javascript">(function(e,a){if(!a.__SV){var b=window;try{var c,l,i,j=b.location,g=j.hash;c=function(a,b){return(l=a.match(RegExp(b+"=([^&]*)")))?l[1]:null};g&&c(g,"state")&&(i=JSON.parse(decodeURIComponent(c(g,"state"))),"mpeditor"===i.action&&(b.sessionStorage.setItem("_mpcehash",g),history.replaceState(i.desiredHash||"",e.title,j.pathname+j.search)))}catch(m){}var k,h;window.mixpanel=a;a._i=[];a.init=function(b,c,f){function e(b,a){var c=a.split(".");2==c.length&&(b=b[c[0]],a=c[1]);b[a]=function(){b.push([a].concat(Array.prototype.slice.call(arguments, 0)))}}var d=a;"undefined"!==typeof f?d=a[f]=[]:f="mixpanel";d.people=d.people||[];d.toString=function(b){var a="mixpanel";"mixpanel"!==f&&(a+="."+f);b||(a+=" (stub)");return a};d.people.toString=function(){return d.toString(1)+".people (stub)"};k="disable time_event track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config reset people.set people.set_once people.unset people.increment people.append people.union people.track_charge people.clear_charges people.delete_user".split(" "); for(h=0;h<k.length;h++)e(d,k[h]);a._i.push([b,c,f])};a.__SV=1.2;b=e.createElement("script");b.type="text/javascript";b.async=!0;b.src="undefined"!==typeof MIXPANEL_CUSTOM_LIB_URL?MIXPANEL_CUSTOM_LIB_URL:"file:"===e.location.protocol&&"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//)?"https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js":"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";c=e.getElementsByTagName("script")[0];c.parentNode.insertBefore(b,c)}})(document,window.mixpanel||[]); mixpanel.init("285f70ac22992c5c5a2a0639a095aa59");</script> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-31442860-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA‌-31442860-1', { 'optimize_id': 'GTM-MDBGCQC'}); </script> <!-- Google Tag Manager --> <script class="handy-analytics" id="gtm">(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5JWM6VD');</script> <!-- End Google Tag Manager --> <link href='https://www.handy.com/services/cleaning-service/san-francisco?page=2' rel='next'> <script type="application/ld+json"> {"@context":"http://schema.org","@type":"LocalBusiness","parentOrganization":{"@type":"Organization","name":"Handy"},"name":"Handy","image":"https://cache-landingpages.services.handy.com/assets/handy-pros-592276a0b34bc70437438bd93f150b9f9677f128f118bf2a901e0181191f42d4.png","openingHours":"07:00-23:00","aggregateRating":{"@type":"AggregateRating","ratingValue":4.6,"reviewCount":187437,"bestRating":5,"worstRating":0}} </script> <script> window.mixpanelMetadata = {"product_type":"consumer","referer":null,"browser_uid":"IXHNK+9w0WJ+mqM+h16YT/rgAsLvH8PbI0QFl0LF3nFpBFKFDox6HISTV/pgQHqBEdKrHtY4jg8TPdRfBYcMTA==","device":"web","session_id":"6ea806d1e833294a","session_uid":"IXHNK+9w0WJ+mqM+h16YT/rgAsLvH8PbI0QFl0LF3nFpBFKFDox6HISTV/pgQHqBEdKrHtY4jg8TPdRfBYcMTA==_6ea806d1e833294a","session_event_count":0,"logged_in":false}; var onLoadMixpanelData = null; // in case onLoadMixpanelData is not set if (onLoadMixpanelData != null) { var eventName = onLoadMixpanelData["event"]; delete onLoadMixpanelData["event"]; var allProperties = Object.assign( {}, onLoadMixpanelData, window.mixpanelMetadata ); //merge properties together mixpanel.track(eventName, allProperties); } </script> </head> <body class='template-region_v2' id='san-francisco-page'> <!-- Google Tag Manager --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5JWM6VD" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <div class='off-canvas position-right' data-content-scroll='false' data-off-canvas='' id='off-canvas-right-push'> <ul class='mobile-nav-menu menu vertical drilldown' data-back-button='&lt;li class=&#39;js-drilldown-back&#39;&gt;&lt;a class=&#39;back-title&#39;&gt;&lt;/a&gt;&lt;/li&gt;' data-drilldown=''> <br> <li class='nav-link'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='login' data-mixpanel-trigger='click' href='/login'> Log In </a> </li> <li class='nav-link'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='help' data-mixpanel-trigger='click' href='/help'> Help </a> </li> <li class='nav-link'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='apply' data-mixpanel-trigger='click' href='/apply'> Become a Professional </a> </li> <div class='nav__line'></div> <li class='nav-link'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services' data-mixpanel-trigger='click' href='/services'> All Services </a> </li> <li class='nav-link'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services' data-mixpanel-trigger='click' href='#'> Services by Category </a> <ul class='menu vertical nested'> <li> <a href='#'> Cleaning </a> <ul class='menu vertical nested'> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_home_cleaning' data-mixpanel-trigger='click' href='/services/home-cleaning'> Home Cleaning </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_move_out_in_cleaning' data-mixpanel-trigger='click' href='/services/move-out-in-cleaning'> Move Out Cleaning </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_office_cleaning' data-mixpanel-trigger='click' href='/services/office-cleaning'> Office Cleaning </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_deep_cleaning' data-mixpanel-trigger='click' href='/services/deep-cleaning-service'> Deep Cleaning </a> </li> </ul> </li> <li> <a href='#'> Installation </a> <ul class='menu vertical nested'> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_mount_tv' data-mixpanel-trigger='click' href='/services/mount-tv'> TV Mounting </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_hanging_pictures_shelves' data-mixpanel-trigger='click' href='/services/hanging-pictures-shelves'> Picture or Shelf Hanging </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_light_fixtures' data-mixpanel-trigger='click' href='/services/light-fixtures'> Light Fixtures </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_ceiling_fan' data-mixpanel-trigger='click' href='/services/ceiling-fan'> Ceiling Fans </a> </li> </ul> </li> <li> <a href='#'> Handyman </a> <ul class='menu vertical nested'> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_furniture_assembly' data-mixpanel-trigger='click' href='/services/furniture-assembly'> Furniture Assembly </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_other_handyman_service' data-mixpanel-trigger='click' href='/services/other-handyman-service'> General Handyman </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_other_plumbing' data-mixpanel-trigger='click' href='/services/other-plumbing'> General Plumbing </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_faucets_replacement' data-mixpanel-trigger='click' href='/services/faucets-replacement'> Faucets </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_toilet_trouble' data-mixpanel-trigger='click' href='/services/toilet-trouble'> Toilets </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_other_electrical' data-mixpanel-trigger='click' href='/services/other-electrical'> General Electric </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_outlets' data-mixpanel-trigger='click' href='/services/outlets'> Outlets and Switches </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_moving_help' data-mixpanel-trigger='click' href='/services/moving-help'> Moving Help </a> </li> </ul> </li> <li> <a href='#'> Outdoor Projects </a> <ul class='menu vertical nested'> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_lawn_care_maintenance_service' data-mixpanel-trigger='click' href='/services/lawn-care-maintenance-service?redirect_source=nav_bar'> Lawn Care </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_gutter_installation' data-mixpanel-trigger='click' href='/services/gutter-installation?redirect_source=nav_bar'> Gutters and Downspouts </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_tree_removal' data-mixpanel-trigger='click' href='/services/tree-removal?redirect_source=nav_bar'> Tree Removal </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_tree_trimming' data-mixpanel-trigger='click' href='/services/tree-trimming?redirect_source=nav_bar'> Tree Trimming </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_fence_installation' data-mixpanel-trigger='click' href='/services/fence-installation?redirect_source=nav_bar'> Wood Fence Installation </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_deck_and_porch_repair' data-mixpanel-trigger='click' href='/services/deck-and-porch-repair?redirect_source=nav_bar'> Deck and Porch Repairs </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_deck_repair_installation' data-mixpanel-trigger='click' href='/services/deck-repair-installation?redirect_source=nav_bar'> Deck Installation </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_exterior_painting' data-mixpanel-trigger='click' href='/services/exterior-painting?redirect_source=nav_bar'> Exterior Painting </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_power_washing' data-mixpanel-trigger='click' href='/services/power-washing?redirect_source=nav_bar'> Exterior Surfaces </a> </li> </ul> </li> <li> <a href='#'> Home Renovations </a> <ul class='menu vertical nested'> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_bathroom_remodeling' data-mixpanel-trigger='click' href='/services/bathroom-remodeling?redirect_source=nav_bar'> Remodel a Bathroom </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_kitchen_remodeling' data-mixpanel-trigger='click' href='/services/kitchen-remodeling?redirect_source=nav_bar'> Remodel a Kitchen </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_basement_remodeling' data-mixpanel-trigger='click' href='/services/basement-remodeling?redirect_source=nav_bar'> Remodel a Basement </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_major_home_renovations' data-mixpanel-trigger='click' href='/services/major-home-renovations?redirect_source=nav_bar'> Major Home Renovations </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_installing_wood_flooring' data-mixpanel-trigger='click' href='/services/installing-wood-flooring?redirect_source=nav_bar'> Refinish Wood Flooring </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_install_asphalt_shingle_roofing' data-mixpanel-trigger='click' href='/services/install-asphalt-shingle-roofing?redirect_source=nav_bar'> Install Roofing </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_repair_asphalt_shingle_roofing' data-mixpanel-trigger='click' href='/services/repair-asphalt-shingle-roofing?redirect_source=nav_bar'> Repair Roofing </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_6_windows_installation' data-mixpanel-trigger='click' href='/services/6-windows-installation?redirect_source=nav_bar'> Install New Windows </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_painting' data-mixpanel-trigger='click' href='/services/painting'> Interior Painting </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_install_window_treatments' data-mixpanel-trigger='click' href='/services/install-window-treatments'> Window Treatments </a> </li> </ul> </li> </ul> </li> <div class='nav__line'></div> <li class='nav-link'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='blog' data-mixpanel-trigger='click' href='/blog'> Blog </a> </li> <li class='nav-link nav-menu__control'> <a href='/about'> About </a> <ul class='menu vertical'> <li class='nav-link'> <a href='/handy-guarantee'> The Handy Happiness Guarantee </a> </li> <li class='nav-link'> <a href='/press'> Press </a> </li> <li class='nav-link'> <a href='/retail'> Retail Partnerships </a> </li> <li class='nav-link'> <a href='http://blog.handy.com/'> Blog </a> </li> <li class='nav-link'> <a href='/careers'> Careers </a> </li> <li class='nav-link'> <a href='/help'> Contact Us </a> </li> <div class='nav__line'></div> <li class='nav-link'> <a href='/privacy'> Privacy </a> </li> <li class='nav-link'> <a href='/privacy#section5a'> CA Pre-Collection Notice </a> </li> <li class='nav-link'> <a href='/do_not_sell'> Do Not Sell or Share My Personal Information </a> </li> <li class='nav-link'> <a href='/cookies'> Cookies </a> </li> <li class='nav-link'> <a href='/terms'> Terms </a> </li> <li> <a> <form html="{:class=&gt;&quot;nav__select&quot;}" action="/country_select" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="&#x2713;" /> <select name="request_country" id="request_country" onchange="this.form.submit()"><option selected="selected" value="US">United States</option> <option value="CA">Canada</option> <option value="GB">United Kingdom</option></select> </form> </a> </li> </ul> </li> </ul> </div> <!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ --> <!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]--> <!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]--> <!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]--> <!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]--> <!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]--> <div class='off-canvas-content' data-off-canvas-content=''> <script src="https://cache-landingpages.services.handy.com/assets/application-97e37d2e044e4420f7ad4a4ea07c375282d14a9487e88cc3057f035a520733c0.js"></script> <script src="https://cache-landingpages.services.handy.com/assets/accessibility-cca6ca545c47db43401f96309237acaf72f7cb060e90d5adc5b893a38c66cd4c.js"></script> <div id='page_container'> <header id='header' role='banner'> <section id='header'> <div class='grid-container'> <div class='navigation'> <nav class='grid-x align-middle navigation--collapsed title-bar' data-hide-for='large' data-responsive-toggle='navigation--expanded'> <div class='navigation__logo left'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='home' data-mixpanel-trigger='click' href='/home'> <img src="https://cache-landingpages.services.handy.com/assets/pages/region/handy_logo-e5d858d96595ec001c5268a2d7a0f91800da2c7c2f963a5307154917289c347a.svg" alt="Handy logo" /> </a> </div> <button class='menu-icon right' data-toggle='off-canvas-right-push' type='button'></button> </nav> <nav class='align-middle stacked-for-medium navigation--expanded top-bar' id='navigation--expanded'> <div class='navigation__logo show-for-large'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='home' data-mixpanel-trigger='click' href='/home'> <img src="https://cache-landingpages.services.handy.com/assets/pages/region/handy_logo-e5d858d96595ec001c5268a2d7a0f91800da2c7c2f963a5307154917289c347a.svg" alt="Handy logo" /> </a> </div> <div class='navigation__left top-bar-left'> <ul class='menu dropdown all-services-menu' data-dropdown-menu='' data-options='closingTime:0;'> <li class='all-services mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services' data-mixpanel-trigger='click' href='/services'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_hover' data-mixpanel-trigger='hover-once' href='/services'> All Services <i class='fal fa-angle-down fa-shown'></i> <i class='fal fa-angle-up fa-hidden'></i> </a> </li> </ul> <div class='grid-container services-panel'> <div class='grid-x'> <div class='cell'> <ul class='four-columns services-columns'> <li> <span> Cleaning </span> <ul> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_home_cleaning' data-mixpanel-trigger='click' href='/services/home-cleaning'> Home Cleaning </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_move_out_in_cleaning' data-mixpanel-trigger='click' href='/services/move-out-in-cleaning'> Move Out Cleaning </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_office_cleaning' data-mixpanel-trigger='click' href='/services/office-cleaning'> Office Cleaning </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_deep_cleaning' data-mixpanel-trigger='click' href='/services/deep-cleaning-service'> Deep Cleaning </a> </li> </ul> </li> <li> <span> Installation </span> <ul> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_mount_tv' data-mixpanel-trigger='click' href='/services/mount-tv'> TV Mounting </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_hanging_pictures_shelves' data-mixpanel-trigger='click' href='/services/hanging-pictures-shelves'> Picture or Shelf Hanging </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_light_fixtures' data-mixpanel-trigger='click' href='/services/light-fixtures'> Light Fixtures </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_ceiling_fan' data-mixpanel-trigger='click' href='/services/ceiling-fan'> Ceiling Fans </a> </li> </ul> </li> <li> <span> Handyman </span> <ul> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_furniture_assembly' data-mixpanel-trigger='click' href='/services/furniture-assembly'> Furniture Assembly </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_other_handyman_service' data-mixpanel-trigger='click' href='/services/other-handyman-service'> General Handyman </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_other_plumbing' data-mixpanel-trigger='click' href='/services/other-plumbing'> General Plumbing </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_faucets_replacement' data-mixpanel-trigger='click' href='/services/faucets-replacement'> Faucets </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_toilet_trouble' data-mixpanel-trigger='click' href='/services/toilet-trouble'> Toilets </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_other_electrical' data-mixpanel-trigger='click' href='/services/other-electrical'> General Electric </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_outlets' data-mixpanel-trigger='click' href='/services/outlets'> Outlets and Switches </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_moving_help' data-mixpanel-trigger='click' href='/services/moving-help'> Moving Help </a> </li> </ul> </li> <li> <span> Outdoor Projects </span> <ul> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_lawn_care_maintenance_service' data-mixpanel-trigger='click' href='/services/lawn-care-maintenance-service?redirect_source=nav_bar'> Lawn Care </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_gutter_installation' data-mixpanel-trigger='click' href='/services/gutter-installation?redirect_source=nav_bar'> Gutters and Downspouts </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_tree_removal' data-mixpanel-trigger='click' href='/services/tree-removal?redirect_source=nav_bar'> Tree Removal </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_tree_trimming' data-mixpanel-trigger='click' href='/services/tree-trimming?redirect_source=nav_bar'> Tree Trimming </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_fence_installation' data-mixpanel-trigger='click' href='/services/fence-installation?redirect_source=nav_bar'> Wood Fence Installation </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_deck_and_porch_repair' data-mixpanel-trigger='click' href='/services/deck-and-porch-repair?redirect_source=nav_bar'> Deck and Porch Repairs </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_deck_repair_installation' data-mixpanel-trigger='click' href='/services/deck-repair-installation?redirect_source=nav_bar'> Deck Installation </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_exterior_painting' data-mixpanel-trigger='click' href='/services/exterior-painting?redirect_source=nav_bar'> Exterior Painting </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_power_washing' data-mixpanel-trigger='click' href='/services/power-washing?redirect_source=nav_bar'> Exterior Surfaces </a> </li> </ul> </li> <li> <span> Home Renovations <span class='new-category'>NEW!</span> </span> <ul> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_bathroom_remodeling' data-mixpanel-trigger='click' href='/services/bathroom-remodeling?redirect_source=nav_bar'> Remodel a Bathroom </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_kitchen_remodeling' data-mixpanel-trigger='click' href='/services/kitchen-remodeling?redirect_source=nav_bar'> Remodel a Kitchen </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_basement_remodeling' data-mixpanel-trigger='click' href='/services/basement-remodeling?redirect_source=nav_bar'> Remodel a Basement </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_major_home_renovations' data-mixpanel-trigger='click' href='/services/major-home-renovations?redirect_source=nav_bar'> Major Home Renovations </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_installing_wood_flooring' data-mixpanel-trigger='click' href='/services/installing-wood-flooring?redirect_source=nav_bar'> Refinish Wood Flooring </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_install_asphalt_shingle_roofing' data-mixpanel-trigger='click' href='/services/install-asphalt-shingle-roofing?redirect_source=nav_bar'> Install Roofing </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_repair_asphalt_shingle_roofing' data-mixpanel-trigger='click' href='/services/repair-asphalt-shingle-roofing?redirect_source=nav_bar'> Repair Roofing </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_6_windows_installation' data-mixpanel-trigger='click' href='/services/6-windows-installation?redirect_source=nav_bar'> Install New Windows </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_painting' data-mixpanel-trigger='click' href='/services/painting'> Interior Painting </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_install_window_treatments' data-mixpanel-trigger='click' href='/services/install-window-treatments'> Window Treatments </a> </li> </ul> </li> </ul> </div> </div> <div class='grid-x align-center'> <div class='cell all-services__button'> <a class='button radius mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services' data-mixpanel-trigger='click' href='/services'> See All Services </a> </div> </div> </div> <script> $('.services-panel').hover( function() { $('.all-services-menu').addClass('chevron-hack'); }, function() { $('.all-services-menu').removeClass('chevron-hack'); } ); </script> <ul class='menu has-submenu dropdown' data-dropdown-menu='' data-options='closingTime:0;'> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='blog' data-mixpanel-trigger='click' href='/blog'> Blog </a> </li> </ul> </div> <div class='navigation__right top-bar-right'> <ul class='menu dropdown' data-dropdown-menu='' data-options='closingTime:0;'> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='apply' data-mixpanel-trigger='click' href='/apply'> Become a Pro </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='help' data-mixpanel-trigger='click' href='/help'> Help </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='login' data-mixpanel-trigger='click' href='/login'> Log In </a> </li> </ul> </div> </nav> </div> </div> </section> </header> <main id='page' role='main'> <section class='hide-for-small-only' id='offer'> <div class='grid-container'> <div class='grid-x offer'> <div class='cell grid-x align-center text-center offer__title'> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> </div> </div> </div> </section> <section class='mixpanel' data-is-cms-page='true' data-mixpanel-event-context='booking_funnel_region' data-mixpanel-event='zip_shown' data-mixpanel-page-region='san-francisco' data-mixpanel-service-name='home_cleaning' data-mixpanel-trigger='shown' id='region-image'> <div class='grid-x region-image'> <div class='cell region-image__image' data-interchange='[, small], [https://cache-landingpages.services.handy.com/assets/regions/large_san_francisco-f06b227c9b75ee8accd7254b2476b09ed867f4924966138cc3dbf7c36284ae48.jpg, medium]'></div> </div> </section> <section id='how-it-works'> <div class='grid-container'> <div class='grid-x how-it-works'> <div class='cell small-12 medium-7'> <div class='cell how-it-works__title show-for-medium'> <h1><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <html><body><p>San Francisco Cleaning Service</p></body></html> </h1> </div> <div class='cell grid-x how-it-works__rating show-for-medium'> <div class='cell small-6 medium-shrink stars'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 60%'></i> </i> </div> </div> </div> <div class='cell small-6 medium-auto reviews'> <a data-smooth-scroll='' href='#customer-reviews'> 187,437 Reviews </a> </div> </div> <div class='cell grid-x how-it-works__media-cards-container'> <div class='media-object stack-for-small align-middle media-card'> <div class='media-object-section media-card__logo'> <img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/pages/region/male_pro_icon-8807bd71063c277c11eed88885087ca744c6594fecc29efd2dd57b71d118cb08.svg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> <div class='media-object-section main-section'> <h3 class='media-card__title'>Vetted professionals</h3> <p class='media-card__description'>Pros using the Handy platform are experienced, friendly, and&nbsp;</p><a class='media-card__link' href='/trust-and-safety'>screened</a>. </div> </div> <div class='media-object stack-for-small align-middle media-card'> <div class='media-object-section media-card__logo'> <img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/pages/region/calendar_icon-67aae12a79a7870d546a9e59a7e53a2e8064b29f9bdc457dee9515fc77222f85.svg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> <div class='media-object-section main-section'> <h3 class='media-card__title'>Next day availability</h3> <p class='media-card__description'>Book online in 60 seconds and schedule your home service for as early as tomorrow.</p> </div> </div> <div class='media-object stack-for-small align-middle media-card'> <div class='media-object-section media-card__logo'> <img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/pages/region/happiness_icon-42eecd0d4f5d332ae57754363c84e798bf462196c6d764574551903e92f2203c.png" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> <div class='media-object-section main-section'> <h3 class='media-card__title'>Our Happiness Guarantee</h3> <p class='media-card__description'>Your happiness is our goal. If you’re not happy,&nbsp;</p><a class='media-card__link' href='/handy-guarantee'>we’ll work hard to make it right</a>. </div> </div> <div class='media-object stack-for-small align-middle media-card'> <div class='media-object-section media-card__logo'> <img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/pages/region/phone_icon-5e135810cd19021640f4427fa881dcf52db2d6ffe84935671fcb8c103b930aa2.svg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> <div class='media-object-section main-section'> <h3 class='media-card__title'>Manage Everything Online</h3> <p class='media-card__description'>Rescheduling, contacting your professional, and paying are just a tap away.</p> </div> </div> </div> </div> <div class='cell small-12 medium-offset-1 medium-4'> <div class='cell grid-x'> <div data-react-class="QuotesFormContainer" data-react-props="{&quot;service&quot;:{&quot;id&quot;:3,&quot;machine_name&quot;:&quot;home_cleaning&quot;,&quot;name&quot;:&quot;Home Cleaning&quot;,&quot;short_display_name&quot;:&quot;Home Cleaning&quot;,&quot;description&quot;:&quot;Relax knowing your home will be cleaned on schedule with one of Handy’s flexible cleaning plans.&quot;,&quot;form&quot;:{&quot;min_base_hours&quot;:3.0,&quot;max_base_hours&quot;:10.0,&quot;need_comment_box&quot;:false,&quot;questions&quot;:[],&quot;all_questions&quot;:[],&quot;base_hours_values&quot;:{&quot;0&quot;:{&quot;0&quot;:3.0,&quot;1&quot;:3.0,&quot;2&quot;:3.0,&quot;3&quot;:3.5,&quot;4&quot;:4.0,&quot;5&quot;:4.5,&quot;6&quot;:5.0,&quot;7&quot;:5.0,&quot;8&quot;:5.0,&quot;9&quot;:5.0,&quot;10&quot;:5.0},&quot;1&quot;:{&quot;0&quot;:3.0,&quot;1&quot;:3.0,&quot;2&quot;:3.5,&quot;3&quot;:4.0,&quot;4&quot;:4.5,&quot;5&quot;:5.0,&quot;6&quot;:5.0,&quot;7&quot;:5.0,&quot;8&quot;:5.0,&quot;9&quot;:5.0,&quot;10&quot;:5.0},&quot;2&quot;:{&quot;0&quot;:3.0,&quot;1&quot;:3.5,&quot;2&quot;:4.0,&quot;3&quot;:4.5,&quot;4&quot;:5.0,&quot;5&quot;:5.5,&quot;6&quot;:6.0,&quot;7&quot;:6.5,&quot;8&quot;:7.0,&quot;9&quot;:7.5,&quot;10&quot;:8.0},&quot;3&quot;:{&quot;0&quot;:3.5,&quot;1&quot;:4.0,&quot;2&quot;:4.5,&quot;3&quot;:5.0,&quot;4&quot;:5.5,&quot;5&quot;:6.0,&quot;6&quot;:4.0,&quot;7&quot;:5.0,&quot;8&quot;:5.0,&quot;9&quot;:6.0,&quot;10&quot;:6.0},&quot;4&quot;:{&quot;0&quot;:4.0,&quot;1&quot;:4.5,&quot;2&quot;:5.0,&quot;3&quot;:5.5,&quot;4&quot;:6.0,&quot;5&quot;:6.5,&quot;6&quot;:5.0,&quot;7&quot;:6.0,&quot;8&quot;:6.0,&quot;9&quot;:7.0,&quot;10&quot;:7.0},&quot;5&quot;:{&quot;0&quot;:4.5,&quot;1&quot;:5.0,&quot;2&quot;:5.5,&quot;3&quot;:6.0,&quot;4&quot;:6.5,&quot;5&quot;:7.0,&quot;6&quot;:7.0,&quot;7&quot;:7.0,&quot;8&quot;:8.0,&quot;9&quot;:8.0,&quot;10&quot;:9.0},&quot;6&quot;:{&quot;0&quot;:5.0,&quot;1&quot;:6.0,&quot;2&quot;:6.0,&quot;3&quot;:6.0,&quot;4&quot;:7.0,&quot;5&quot;:7.0,&quot;6&quot;:7.0,&quot;7&quot;:8.0,&quot;8&quot;:8.0,&quot;9&quot;:9.0,&quot;10&quot;:9.0},&quot;7&quot;:{&quot;0&quot;:6.0,&quot;1&quot;:7.0,&quot;2&quot;:7.0,&quot;3&quot;:8.0,&quot;4&quot;:8.0,&quot;5&quot;:8.0,&quot;6&quot;:9.0,&quot;7&quot;:9.0,&quot;8&quot;:9.0,&quot;9&quot;:10.0,&quot;10&quot;:10.0},&quot;8&quot;:{&quot;0&quot;:6.0,&quot;1&quot;:7.0,&quot;2&quot;:7.0,&quot;3&quot;:8.0,&quot;4&quot;:8.0,&quot;5&quot;:9.0,&quot;6&quot;:9.0,&quot;7&quot;:10.0,&quot;8&quot;:10.0,&quot;9&quot;:10.0,&quot;10&quot;:10.0},&quot;9&quot;:{&quot;0&quot;:7.0,&quot;1&quot;:7.0,&quot;2&quot;:8.0,&quot;3&quot;:8.0,&quot;4&quot;:9.0,&quot;5&quot;:9.0,&quot;6&quot;:9.0,&quot;7&quot;:10.0,&quot;8&quot;:10.0,&quot;9&quot;:10.0,&quot;10&quot;:10.0},&quot;10&quot;:{&quot;0&quot;:7.0,&quot;1&quot;:8.0,&quot;2&quot;:8.0,&quot;3&quot;:9.0,&quot;4&quot;:9.0,&quot;5&quot;:9.0,&quot;6&quot;:10.0,&quot;7&quot;:10.0,&quot;8&quot;:10.0,&quot;9&quot;:10.0,&quot;10&quot;:10.0}},&quot;service_intro&quot;:&quot;Tell us about your place&quot;,&quot;tab_name&quot;:&quot;Rooms&quot;,&quot;default_hours&quot;:3,&quot;comment_box_placeholder&quot;:&quot;Please describe the job in detail. (optional)&quot;,&quot;comment_box_required&quot;:false,&quot;attributes&quot;:[{&quot;name&quot;:&quot;Bedrooms&quot;,&quot;default_value&quot;:1,&quot;hours_value&quot;:null,&quot;description&quot;:null},{&quot;name&quot;:&quot;Bathrooms&quot;,&quot;default_value&quot;:1,&quot;hours_value&quot;:null,&quot;description&quot;:null}]},&quot;meta_data&quot;:{&quot;review_count&quot;:47651,&quot;rating&quot;:&quot;4.6&quot;}},&quot;region&quot;:{&quot;machine_name&quot;:&quot;san-francisco&quot;,&quot;name&quot;:&quot;San Francisco&quot;,&quot;country&quot;:&quot;US&quot;,&quot;zip_clusters&quot;:[{&quot;id&quot;:632,&quot;name&quot;:&quot;Mission, SoMa \u0026 Surrounding Neighborhoods&quot;},{&quot;id&quot;:633,&quot;name&quot;:&quot;Pac Heights \u0026 Surrounding Neighborhoods&quot;},{&quot;id&quot;:634,&quot;name&quot;:&quot;Potrero Hill \u0026 Mission Bay&quot;},{&quot;id&quot;:635,&quot;name&quot;:&quot;Viz Valley, Balboa Park \u0026 Bay View&quot;},{&quot;id&quot;:636,&quot;name&quot;:&quot;Lake Merced \u0026 Twin Peaks&quot;},{&quot;id&quot;:637,&quot;name&quot;:&quot;Inner \u0026 Outer Sunset&quot;},{&quot;id&quot;:638,&quot;name&quot;:&quot;Presidio&quot;},{&quot;id&quot;:639,&quot;name&quot;:&quot;Daly City \u0026 South San Francisco&quot;}]},&quot;metadata&quot;:{&quot;average_rating&quot;:&quot;4.6&quot;,&quot;review_count&quot;:187437,&quot;pro_count&quot;:8821,&quot;reviews_gtet_four_starts&quot;:163022,&quot;reviews_with_min_rating&quot;:163022},&quot;mixpanel_metadata&quot;:{&quot;product_type&quot;:&quot;consumer&quot;,&quot;referer&quot;:null,&quot;browser_uid&quot;:&quot;IXHNK+9w0WJ+mqM+h16YT/rgAsLvH8PbI0QFl0LF3nFpBFKFDox6HISTV/pgQHqBEdKrHtY4jg8TPdRfBYcMTA==&quot;,&quot;device&quot;:&quot;web&quot;,&quot;session_id&quot;:&quot;6ea806d1e833294a&quot;,&quot;session_uid&quot;:&quot;IXHNK+9w0WJ+mqM+h16YT/rgAsLvH8PbI0QFl0LF3nFpBFKFDox6HISTV/pgQHqBEdKrHtY4jg8TPdRfBYcMTA==_6ea806d1e833294a&quot;,&quot;session_event_count&quot;:0,&quot;logged_in&quot;:false},&quot;authenticity_token&quot;:&quot;K+c64uFy8deJ4V80PYfcdY4zviHmG18du5tJuaTmLrCPaVctruQb655Ltob0F2TtsCqSnIDHk/3a/Xu1vgdlQw==&quot;,&quot;userIsLoggedIn&quot;:false,&quot;userZipcode&quot;:null,&quot;quotes_form&quot;:{&quot;default_date_start&quot;:&quot;02/22/2025&quot;,&quot;subscription_offer_coupon&quot;:16583682},&quot;voucher_id&quot;:null,&quot;promotion&quot;:null,&quot;quotes_path&quot;:&quot;/services/quotes&quot;,&quot;ratingStarsHtml&quot;:&quot;\u003cdiv class=&#39;rating-stars&#39;\u003e\n\u003cdiv class=&#39;star&#39;\u003e\n\u003ci class=&#39;fas fa-star&#39;\u003e\u003c/i\u003e\n\u003c/div\u003e\n\u003cdiv class=&#39;star&#39;\u003e\n\u003ci class=&#39;fas fa-star&#39;\u003e\u003c/i\u003e\n\u003c/div\u003e\n\u003cdiv class=&#39;star&#39;\u003e\n\u003ci class=&#39;fas fa-star&#39;\u003e\u003c/i\u003e\n\u003c/div\u003e\n\u003cdiv class=&#39;star&#39;\u003e\n\u003ci class=&#39;fas fa-star&#39;\u003e\u003c/i\u003e\n\u003c/div\u003e\n\u003cdiv class=&#39;star&#39;\u003e\n\u003ci class=&#39;far fa-star&#39;\u003e\n\u003ci class=&#39;fas fa-star&#39; style=&#39;width: 60%&#39;\u003e\u003c/i\u003e\n\u003c/i\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n&quot;,&quot;reviewCountText&quot;:&quot;187,437 Reviews&quot;,&quot;showReviewCount&quot;:true,&quot;serviceSlug&quot;:&quot;\nCleaning Service\n&quot;,&quot;template&quot;:&quot;region_v2&quot;,&quot;mobileFormTitle&quot;:&quot;\nSan Francisco Cleaning Service\n&quot;,&quot;email&quot;:&quot;&quot;,&quot;showPhoneCollection&quot;:false}" class="quote-form-container"></div> </div> </div> </div> </div> </section> <section id='top-professionals'> <div class='grid-container'> <div class='grid-x align-center top-professionals'> <div class='cell small-12 medium-8 top-professionals__title'> <h2>Meet Some of the Top Professionals on Handy</h2> </div> <div class='cell small-12 medium-8 top-professionals__description'> <p>Download the app to search and book top professionals in your area. Build a pro team so that you always have a great group of go-to professionals for all your household needs.</p> </div> <div class='cell grid-x grid-margin-x grid-margin-y small-12 medium-12 top-professionals__cards-container'> <div class='cell small-12 medium-12 large-4 cards'> <div class='media-object align-middle align-center cards__header'> <div class='media-object-section photo'> <img class="lazyload" data-src="https://handy-media.imgix.net/c3fd03f7-c239-44b0-85a2-f40af81b0dc7?ixlib=rb-1.1.0&amp;w=200&amp;h=200&amp;s=ac9c0eef9bc2ed5c741c32c7142ed531" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> <div class='media-object-section text-align-left'> <p class='name'>Lindella B.</p> <div class='rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 29%'></i> </i> </div> </div> </div> <div class='status'> <i class='status__icon'></i> <span class='status__text'>Handy Premium Pro</span> </div> <div class='jobs-counter'> <i class='jobs-counter__icon'></i> <span class='jobs-counter__text'> 55 jobs completed </span> </div> </div> </div> <div class='cell cards__body'> My name is Lindella, a professional cleaner with over 15 years of experience. My services include customized home, apartment, and commercial space cleaning in addition to standard and deep cleaning. I am trustworthy and reliable. I look forward to working for you. </div> </div> <div class='cell small-12 medium-12 large-4 cards'> <div class='media-object align-middle align-center cards__header'> <div class='media-object-section photo'> <img class="lazyload" data-src="https://handy-media.imgix.net/56154951-36e2-4472-b9b8-ac67d30bd9d0?ixlib=rb-1.1.0&amp;w=200&amp;h=200&amp;s=33a931f5969e5e22ab711b23662b6b90" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> <div class='media-object-section text-align-left'> <p class='name'>Leila D.</p> <div class='rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 71%'></i> </i> </div> </div> </div> <div class='status'> <i class='status__icon'></i> <span class='status__text'>Handy Premium Pro</span> </div> <div class='jobs-counter'> <i class='jobs-counter__icon'></i> <span class='jobs-counter__text'> 140 jobs completed </span> </div> </div> </div> <div class='cell cards__body'> I’m been cleaning over 26 years I have a a lot experience and very professional thanks </div> </div> <div class='cell small-12 medium-12 large-4 cards'> <div class='media-object align-middle align-center cards__header'> <div class='media-object-section photo'> <img class="lazyload" data-src="https://handy-media.imgix.net/7c7318b1-c564-49c0-9b0e-f23fdbced5a8?ixlib=rb-1.1.0&amp;w=200&amp;h=200&amp;s=96c83b2b4750deb6528db024be03a61b" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> <div class='media-object-section text-align-left'> <p class='name'>Mauricio R.</p> <div class='rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 56%'></i> </i> </div> </div> </div> <div class='status'> <i class='status__icon'></i> <span class='status__text'>Handy Premium Pro</span> </div> <div class='jobs-counter'> <i class='jobs-counter__icon'></i> <span class='jobs-counter__text'> 233 jobs completed </span> </div> </div> </div> <div class='cell cards__body'> Hi! my name is : Mauricio. I&#39;m a handyman with over 15 years of experience. I paint houses and apartment buildings,exterior and interior, drywall installation and repair, tape and mud ,wood siding repair and installation, light fixtures, faucets repair and installation,rain gutter cleaning and repairs,power washing and water proofing.Please don&#39;t hesitate to book me on the Handy app. Thanks! </div> </div> </div> </div> </div> </section> <section id='service'> <div class='grid-container'> <div class='grid-x align-center service'> <div class='cell service__title'> <div class='cell service__description'> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> </div> <div class='cell service__button'> <a class='button radius' data-smooth-scroll='' href='#san-francisco-page'>Book Now</a> </div> </div> </div> </div> </section> <section id='customer-reviews'> <div class='grid-container'> <div class='grid-x customer-reviews'> <div class='cell grid-x small-12 medium-8'> <div class='cell text-center customer-reviews__title'> <h2>Customer Reviews</h2> </div> <div class='cell text-center customer-reviews__counter'> <h3>187,437 Reviews for Cleaning Service </h3> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Kyle M.</p> </div> <div class='cell professional__description'> <p>When Lee and Shay are your pros, you KNOW the job will be done expertly well! They are far and away the favorite folks we’ve worked with through Handy. Keep them around forever, please!</p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Timan G.</p> </div> <div class='cell professional__description'> <p>N’gaye is the most thorough Handy cleaner I’ve had. He’s friendly and provides tips on how to stay neat and organized. He went above and beyond!</p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Ankit G.</p> </div> <div class='cell professional__description'> <p>This was the first time with Brenda. She was quick and made sure she covered all the areas that I wanted cleaned </p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Brandi F.</p> </div> <div class='cell professional__description'> <p>This was our first booking with Maria (Reina). She was so friendly and personable from the beginning. She was also very kind to our two small dogs. The house looked and smelled so nice and clean when we returned home. Everything we expected her to clean was clean. Thank you Reina!</p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> <div class='star'> <i class='far fa-star'></i> </div> </div> </div> <div class='cell professional__name'> <p>Aditya M.</p> </div> <div class='cell professional__description'> <p>Very hardworking and customer service oriented. Did more than what was requested, and was fun to have around. Slightly clumsy, but in a fun way. One tip for the future: have more cleaning supplies. Some of his predecessors had advanced cleaning supplies, especially for the wet areas of the house, and add-ons like room fresheners. This will reduce his physical effort and increase the efficiency. </p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Anna D.</p> </div> <div class='cell professional__description'> <p>As a perfectionist I’ve struggled to find a cleaner that gives the same attention to detail as I do, so I can’t recommend Dana enough for the spotless job he did of our apartment. I would book him every time. Thank you Dana!</p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Mariel S.</p> </div> <div class='cell professional__description'> <p>Maria was on time and did such a great job! I really look forward to working with her again—so great to find somebody who is thorough and prompt.</p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Monica P.</p> </div> <div class='cell professional__description'> <p>She did an amazing job! My apartment is spotless and she really paid attention to detail, all the nooks and crannies. </p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Paul J.</p> </div> <div class='cell professional__description'> <p>Alexis was great. She cleaned very well and to our expectations and specifications. We were particular as we needed to have our place cleaned before our baby’s arrival and were completely satisfied. </p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Rachel M.</p> </div> <div class='cell professional__description'> <p>I read his reviews, so I already high expectations for N’gaye. I keep my apartment very tidy, so I am always looking for someone who is looking to tackle all the surfaces and hard to reach places. He went above and beyond to make apartment cleaner than it’s been since I moved in. N’gaye is incredibly detail oriented and thorough. He is among the best cleaners I have, and I would recommend his services to anyone looking for a deep clean in a very efficient manner. Morris, N’gaye was inquisitive and respectful so I get comfortable leaving him in my space alone.</p> </div> </div> <div class='cell grid-x align-center'> <div class='cell customer-reviews__pagination'> <nav aria-label='Pagination' class='grid-x' id='pagination'> <div class='cell small-1 pagination-previous'> </div> <ul class='cell pagination text-center'> <li class='current'> <span class='show-for-sr'>You're on page</span> 1 </li> <li> <a aria-label='Page 1' class='mixpanel' data-mixpanel-event-context='review_pagination_click' data-mixpanel-event='review_pagination_click' data-mixpanel-region-name='San Francisco' data-mixpanel-service-name='home_cleaning' data-mixpanel-trigger='click' href='https://www.handy.com/services/cleaning-service/san-francisco?page=2#customer-reviews'>2</a> </li> <li> <a aria-label='Page 1' class='mixpanel' data-mixpanel-event-context='review_pagination_click' data-mixpanel-event='review_pagination_click' data-mixpanel-region-name='San Francisco' data-mixpanel-service-name='home_cleaning' data-mixpanel-trigger='click' href='https://www.handy.com/services/cleaning-service/san-francisco?page=3#customer-reviews'>3</a> </li> <li> <a aria-label='Page 1' class='mixpanel' data-mixpanel-event-context='review_pagination_click' data-mixpanel-event='review_pagination_click' data-mixpanel-region-name='San Francisco' data-mixpanel-service-name='home_cleaning' data-mixpanel-trigger='click' href='https://www.handy.com/services/cleaning-service/san-francisco?page=4#customer-reviews'>4</a> </li> <li> <a aria-label='Page 1' class='mixpanel' data-mixpanel-event-context='review_pagination_click' data-mixpanel-event='review_pagination_click' data-mixpanel-region-name='San Francisco' data-mixpanel-service-name='home_cleaning' data-mixpanel-trigger='click' href='https://www.handy.com/services/cleaning-service/san-francisco?page=5#customer-reviews'>5</a> </li> </ul> <div class='cell small-1 pagination-next'> <a aria-label='Next page' class='mixpanel' data-mixpanel-event-context='review_pagination_click' data-mixpanel-event='review_pagination_click' data-mixpanel-region-name='San Francisco' data-mixpanel-service-name='home_cleaning' data-mixpanel-trigger='click' href='https://www.handy.com/services/cleaning-service/san-francisco?page=2#customer-reviews'> <i class='fas fa-chevron-right'></i> </a> </div> </nav> </div> </div> <div class='cell grid-x align-center'> <div class='cell customer-reviews__button'> <a class='button radius' data-smooth-scroll='' href='#san-francisco-page'>Book Now</a> </div> </div> </div> </div> </div> </section> <section id='region-statistics'> <div class='grid-container'> <div class='grid-x align-center region-statistics'> <div class='cell small-12 text-center region-statistics__title'> <h2>San Francisco Statistics</h2> </div> <div class='cell grid-x grid-x grid-margin-x grid-margin-y small-12 region-statistics__cards-container'> <div class='cell grid-margin-x small-12 large-4 cards'> <div class='cell cards__counter'> 8,821 </div> <div class='cell cards__description'> Active Pros in San Francisco </div> </div> <div class='cell grid-margin-x small-12 large-4 cards'> <div class='cell cards__counter'> 187,437 </div> <div class='cell cards__description'> San Francisco Cleaning Service Reviews </div> </div> <div class='cell grid-margin-x small-12 large-4 cards'> <div class='cell cards__counter'> 87% </div> <div class='cell cards__description'>Positive Reviews</div> </div> <div class='cell small-12 region-statistics__content'> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> </div> </div> </div> </div> </section> <section id='sample-project'> <div class='grid-container'> <div class='sample-projects small-12 medium-10 large-8 columns end small-centered'> <div class='sample-projects__header row'> <h2>Recent Job Requests in San Francisco</h2> </div> <div class='sample-projects__container row'> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Cleaning Service </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> February 6, 2025 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> March 7, 2025 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 94103 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 4.0 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Bedrooms </div> <div class='value'> 1 </div> </div> <div class='item column'> <div class='key'> Bathrooms </div> <div class='value'> 1 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Region Name </div> <div class='value'> San Francisco </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> I have a blue nose pitbull puppy. She is super friendly and sweet however I will keep her in her pen so you do not have to worry. I do not have much cleaning supplies right now, so if you can bring you... </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Cleaning Service </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> February 4, 2025 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> February 13, 2025 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 94103 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 4.5 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Bedrooms </div> <div class='value'> 2 </div> </div> <div class='item column'> <div class='key'> Bathrooms </div> <div class='value'> 2 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Region Name </div> <div class='value'> San Francisco </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> There is street parking but watch for street cleaning. There is also parking behind the building for guests. </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Cleaning Service </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> February 2, 2025 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> March 3, 2025 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 94103 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 2.0 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Bedrooms </div> <div class='value'> 1 </div> </div> <div class='item column'> <div class='key'> Bathrooms </div> <div class='value'> 1 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Region Name </div> <div class='value'> San Francisco </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> Please thoroughly clean the shower by scrubbing the mildew off the glass and tile. </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Cleaning Service </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> January 31, 2025 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> March 1, 2025 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 94109 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 4.0 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Bedrooms </div> <div class='value'> 2 </div> </div> <div class='item column'> <div class='key'> Bathrooms </div> <div class='value'> 2 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Region Name </div> <div class='value'> San Francisco </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> Small golden doodle at home, he is very friendly and will greet you when you arrive. Please clean the bathtubs and drains. </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Cleaning Service </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> January 24, 2025 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> February 22, 2025 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 94121 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 3.0 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Bedrooms </div> <div class='value'> 2 </div> </div> <div class='item column'> <div class='key'> Bathrooms </div> <div class='value'> 2 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Region Name </div> <div class='value'> San Francisco </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> Please make sure to bring a vacuum the floors especially in the living room need to be cleaned! </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Cleaning Service </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> January 24, 2025 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> February 21, 2025 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 94158 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 2.0 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Bedrooms </div> <div class='value'> 1 </div> </div> <div class='item column'> <div class='key'> Bathrooms </div> <div class='value'> 1 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Region Name </div> <div class='value'> San Francisco </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> Hey!Thanks for coming to help me with cleaning. I am sure you are a # Start cleaner and know better than me about how to clean. Here are some note and what I&#39;d like to get help with:-Overall cleaning a... </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Cleaning Service </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> January 23, 2025 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> February 21, 2025 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 94103 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 3.0 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Bedrooms </div> <div class='value'> 1 </div> </div> <div class='item column'> <div class='key'> Bathrooms </div> <div class='value'> 1 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Region Name </div> <div class='value'> San Francisco </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> I am trying to get ready for a puppy (ESA animal) and need to clean the apartment as best as you can. If there is any laundry on the floor, just put it in a garbage bag and I will take care of it speci... </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Cleaning Service </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> January 22, 2025 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> February 20, 2025 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 94102 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 2.0 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Bedrooms </div> <div class='value'> 1 </div> </div> <div class='item column'> <div class='key'> Bathrooms </div> <div class='value'> 1 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Region Name </div> <div class='value'> San Francisco </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> No pets.Focus on e.g. bathrooms floor/tub, carpets, kitchen countertops, hardwood floors.Carpets and *hardwood* floors have already been swept, wet mopped, or vacuumed as appropriate. </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Cleaning Service </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> January 18, 2025 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> February 16, 2025 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 94103 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 6.0 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Bedrooms </div> <div class='value'> 2 </div> </div> <div class='item column'> <div class='key'> Bathrooms </div> <div class='value'> 2 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Region Name </div> <div class='value'> San Francisco </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> Floors are both hardwood and carpeting. Care should be taken when vacuuming and cleaning hardwood floors - Bona is generally used. </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Cleaning Service </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> January 17, 2025 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> February 15, 2025 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 94014 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 3.0 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Bedrooms </div> <div class='value'> 1 </div> </div> <div class='item column'> <div class='key'> Bathrooms </div> <div class='value'> 1 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Region Name </div> <div class='value'> San Francisco </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> I have a relatively new rug which is shedding a fair amount, but currently have no vacuum, so there is a fair amount to be done, there. </div> </div> </div> </div> </div> </div> </div> </div> </section> <section id='happiness-guaranteed'> <div class='grid-container'> <div class='grid-x align-center happiness-guaranteed'> <div class='cell grid-x small-12 medium-8 align-center happiness-guaranteed__media-cards-container'> <div class='media-object align-middle stack-for-small media-card'> <div class='media-object-section media-card__logo'> <img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/pages/region/stamp-d65617ee9a86ea9aee9a17324b1a180a414056a38cf673671fa7624edfc5b083.svg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> <div class='media-object-section main-section'> <h2 class='media-card__title'>Backed by the Handy Happiness Guarantee</h2> <p class='media-card__description'>Your happiness is our goal. If you're not happy,&nbsp;</p><a class='media-card__link' href='/handy-guarantee'>we’ll work hard to make it right</a>. </div> </div> </div> </div> </div> </section> <section id='blog-content'> <div class='grid-container'> <div class='grid-x grid-margin-x'> <div class='cell small-12 medium-8 header'> <h1> Featured Blog Posts </h1> </div> <div class='cell medium-8'> <div class='grid-container full'> <div class='grid-x grid-margin-x'> <div class='cell medium-12 featured-post-card'> <a class="card-link" href="/blog/pros/a-note-to-pros"></a> <h2> A Note to Pros: Handy’s Response to FTC and NYAG Agreement </h2> <h4> Handy Spokesperson | January 7, 2025 </h4> <img src="https://cache-landingpages-images.services.handy.com/2023/05/15/22/36/57/de432563-f3c8-4eee-b46b-d85808d8afad/Blue_Logo_Shrunk.png" alt="Blue logo shrunk" /> </div> </div> </div> </div> <div class='cell small-12 medium-4'> <div class='other-posts'> <a class="card-link" href="/blog/press/walmart-adds-handy"></a> <h2> Walmart Adds Handy to 2,000 stores with $59 Furniture Assembly and $79 TV Mounting </h2> <h4> Handy Blog Team | November 21, 2024 </h4> </div> <div class='other-posts'> <a class="card-link" href="/blog/press/facebook-marketplace"></a> <h2> We’re Working with Facebook to Activate Local Commerce and Strengthen Communities! </h2> <h4> Handy Blog Team | November 21, 2024 </h4> </div> <div class='other-posts'> <a class="card-link" href="/blog/handylife/2018-lend-a-hand"></a> <h2> Handy Announces Successful 3rd Annual “Lend A Hand” Event </h2> <h4> Handy Blog Team | November 21, 2024 </h4> </div> <div class='other-posts'> <a class="card-link" href="/blog/tips/how-to-clean-ovens"></a> <h2> How to Clean Ovens and Oven Racks </h2> <h4> Laura Parker | January 11, 2024 </h4> </div> </div> </div> </div> </section> <section id='handy-is-the-best'> <div class='grid-container'> <div class='grid-x align-center handy-is-the-best'> <div class='cell grid-x small-12'> <div class='cell handy-is-the-best__content'> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> </div> </div> </div> </div> </section> <section id='foot'> <div class='grid-container'> <div class='grid-x align-center foot'> <div class='cell grid-x grid-margin-x medium-margin-collapse grid-margin-y small-12 foot__cards-container'> <div class='cell grid-x grid-margin-x small-12 large-12 cards'> <div class='cell cards__title'> <h3>Top Services in San Francisco</h3> </div> <div class='cell large-auto cards__list'> <ul> <li> <p> <a href='/services/furniture-assembly/san-francisco'> Furniture Assembly in San Francisco </a> </p> </li> <li> <p> <a href='/services/other-handyman-service/san-francisco'> Handyman Service in San Francisco </a> </p> </li> <li> <p> <a href='/services/hanging-pictures-shelves/san-francisco'> Hanging Pictures & Shelves in San Francisco </a> </p> </li> </ul> </div> <div class='cell large-auto cards__list'> <ul> <li> <p> <a href='/services/home-cleaning/san-francisco'> Home Cleaning in San Francisco </a> </p> </li> <li> <p> <a href='/services/housekeeping/san-francisco'> Housekeeping in San Francisco </a> </p> </li> <li> <p> <a href='/services/painting/san-francisco'> Interior Painting in San Francisco </a> </p> </li> </ul> </div> <div class='cell large-auto cards__list'> <ul> <li> <p> <a href='/services/maid-service/san-francisco'> Maid Service in San Francisco </a> </p> </li> <li> <p> <a href='/services/moving-help/san-francisco'> Moving Help in San Francisco </a> </p> </li> <li> <p> <a href='/services/other-plumbing/san-francisco'> Plumbing Service in San Francisco </a> </p> </li> </ul> </div> <div class='cell cards__link'> <a href='/locations/san-francisco'>More Services</a> </div> </div> </div> </div> </div> <br> </section> </main> <footer role='contentinfo'> <script class="handy-analytics" id="bright_tagjs"> window.pageData = {}; (function() { var btjs = document.createElement('script'), s = document.getElementsByTagName('script')[0]; btjs.async = true; btjs.src = '//s.btstatic.com/tag.js#site=FT5eU6D'; s.parentNode.insertBefore(btjs, s); }()); </script> <noscript> <iframe src="//s.thebrighttag.com/iframe?c=FT5eU6D" width="1" height="1" frameborder="0" scrolling="no" marginheight="0" marginwidth="0"></iframe> </noscript> <script src="https://cache-landingpages.services.handy.com/packs/js/application-8884bc3bc56d34cfaa45.js"></script> <section id='crumbs'> <div class='grid-container'> <div class='grid-x align-center crumbs'> <div class='cell crumbs__content'> <ul class='breadcrumbs'> <li> <i class='fa fa-home'></i> <a href="/">Home</a> <li><a href="/services">services</a></li> <li><a href="/services/cleaning-service">cleaning-service</a></li> <li>san-francisco</li> </li> </ul> </div> </div> </div> </section> <section id='footer'> <div class='grid-container'> <div class='grid-x align-center footer'> <div class='cell grid-x footer__navigation hide-for-small-only'> <nav class='cell grid-x small-5'> <ul class='menu vertical'> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='happiness_guarantee' data-mixpanel-trigger='click' href='/handy-guarantee'>The Handy Happiness Guarantee</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='about' data-mixpanel-trigger='click' href='/about'>About</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='press' data-mixpanel-trigger='click' href='/press'>Press</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='careers' data-mixpanel-trigger='click' href='/careers'>Careers</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='blog' data-mixpanel-trigger='click' href='/blog'>Blog</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='help' data-mixpanel-trigger='click' href='/help'>Help</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='help' data-mixpanel-trigger='click' href='/help'>Contact Us</a> </li> <br> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='apply' data-mixpanel-trigger='click' href='/apply?utm_source=home_footer'>Be a Professional</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='retail' data-mixpanel-trigger='click' href='/retail'>Retail Partnerships</a> </li> </ul> </nav> <nav class='cell grid-x small-4'> <ul class='menu vertical'> <li class='menu-text'>LOCATIONS</li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_boston' data-mixpanel-trigger='click' href='/services/home-cleaning/boston'>Boston</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_chicago' data-mixpanel-trigger='click' href='/services/home-cleaning/chicago'>Chicago</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_london' data-mixpanel-trigger='click' href='/services/home-cleaning/london'>London</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_los_angeles' data-mixpanel-trigger='click' href='/services/home-cleaning/los-angeles'>Los Angeles</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_new_york' data-mixpanel-trigger='click' href='/services/home-cleaning/new-york'>New York</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_san_francisco' data-mixpanel-trigger='click' href='/services/home-cleaning/san-francisco'>San Francisco</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_toronto' data-mixpanel-trigger='click' href='/services/home-cleaning/toronto'>Toronto</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_vancouver' data-mixpanel-trigger='click' href='/services/home-cleaning/vancouver'>Vancouver</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations' data-mixpanel-trigger='click' href='/locations'>See all locations</a> </li> <li id='locale'> <form action="/country_select" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="&#x2713;" /> <select name="request_country" id="request_country" onchange="this.form.submit()"><option selected="selected" value="US">United States</option> <option value="CA">Canada</option> <option value="GB">United Kingdom</option></select> </form> </li> </ul> </nav> <nav class='cell grid-x small-3'> <ul class='menu vertical'> <li class='menu-text'>POPULAR SERVICES</li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='services_home_cleaning' data-mixpanel-trigger='click' href='/services/home-cleaning'>Cleaning</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='services_other_handyman_service' data-mixpanel-trigger='click' href='/services/other-handyman-service'>Handyman</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='other_plumbing' data-mixpanel-trigger='click' href='/services/other-plumbing'>Plumbing</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='services_other_electrical' data-mixpanel-trigger='click' href='/services/other-electrical'>Electrical</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='services_moving_help' data-mixpanel-trigger='click' href='/services/moving-help'>Moving Help</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='services_painting' data-mixpanel-trigger='click' href='/services/painting'>Painting</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='services_furniture_assembly' data-mixpanel-trigger='click' href='/services/furniture-assembly'>Furniture Assembly</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='services' data-mixpanel-trigger='click' href='/services'>See all services</a> </li> </ul> </nav> </div> <div class='cell grid-x footer__stores hide-for-small-only'> <a href="https://handy.app.link/app"><img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/app-store-badge-4a71a8c7f185bad9ad8653a3267dafec0a9a649da7d5764c582fec70b8dc9f45.svg" data-alt="Download from Apple Store" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /></a> <a href="https://handy.app.link/app"><img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/play-store-badge-49e311a794277c754af75084413fbc788682c55ad83b651c681c99d6197c6bc1.svg" data-alt="Download from Google Play Market" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /></a> </div> <div class='cell grid-x footer__social hide-for-small-only'> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='twitter' data-mixpanel-trigger='click' href='https://twitter.com/handy' target='_blank'> <i class='fab fa-twitter'></i> </a> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='facebook' data-mixpanel-trigger='click' href='https://facebook.com/handyhq' target='_blank'> <i class='fab fa-facebook'></i> </a> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='instagram' data-mixpanel-trigger='click' href='http://instagram.com/handy_hq' target='_blank'> <i class='fab fa-instagram'></i> </a> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='wikipedia' data-mixpanel-trigger='click' href='https://en.wikipedia.org/wiki/Handy_(company)' target='_blank'> <i class='fab fa-wikipedia-w'></i> </a> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='linkedin' data-mixpanel-trigger='click' href='https://www.linkedin.com/company/handyhq' target='_blank'> <i class='fab fa-linkedin'></i> </a> <a class='mixpanel fa-cb' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='crunchbase' data-mixpanel-trigger='click' href='https://crunchbase.com/organization/handybook' target='_blank'></a> </div> <div class='cell grid-x footer__interlinks'> <div class='cell grid-x headline'>Other Handy Services</div> <div class='cell grid-x medium-5'> <ul class='menu vertical'> <li> <a href="https://www.handy.com/services/cleaning-service/chicago">cleaning services in chicago</a> </li> <li> <a href="https://www.handy.com/services/home-cleaning">house cleaning service</a> </li> <li> <a href="https://www.handy.com/services/home-cleaning/london">london home cleaning services</a> </li> </ul> </div> <div class='cell grid-x medium-4'> <ul class='menu vertical'> <li> <a href="https://www.handy.com/services/maid-service/near-me">maid service near me</a> </li> <li> <a href="https://www.handy.com/services/move-out-in-cleaning/westchester">move in move out cleaning services westchester</a> </li> <li> <a href="https://www.handy.com/services/move-out-in-cleaning">move out cleaning service</a> </li> </ul> </div> <div class='cell grid-x medium-3'> <ul class='menu vertical'> <li> <a href="https://www.handy.com/services/move-out-in-cleaning">move out cleaning services</a> </li> <li> <a href="https://www.handy.com/services/housekeeping/san-diego">san diego housekeeping</a> </li> <li> <a href="https://www.handy.com/services/tv-wall-mount-installation">television wall mount installation</a> </li> </ul> </div> </div> <div class='cell grid-x footer__lower-footer footer-term-links'> <div class='cell grid-x medium-shrink lower-menu'> <ul class='menu'> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='contact' data-mixpanel-trigger='click' href='/help'>Contact</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='privacy' data-mixpanel-trigger='click' href='/privacy'>Privacy</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='ccpa' data-mixpanel-trigger='click' href='/privacy#section5a'>CA Pre-Collection Notice</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='do_not_sell' data-mixpanel-trigger='click' href='/do_not_sell'>Do Not Sell or Share My Personal Information</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='cookies' data-mixpanel-trigger='click' href='/cookies'>Cookies</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='terms' data-mixpanel-trigger='click' href='/terms'>Terms</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='cancellation_policy' data-mixpanel-trigger='click' href='https://help.handy.com/hc/en-us/articles/215568487-What-s-the-cancellation-policy-'>Cancellation Policy</a> </li> </ul> </div> <div class='cell grid-x medium-auto align-right copy'> <div class='lower-attribution'> <span> 2025 Handy. All rights reserved. </span> <strong> Handy powered by Angi </strong> </div> </div> </div> </div> </div> </section> <!-- BEGIN TRACERS --> <!-- handy_request_trace_id=069f5179fd54b624bff947bb61469f92 --> <!-- handy_user_trace_id=Csoczme4qWIcAwAHItBSAg== --> <!-- END TRACERS --> </footer> </div> </div> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10