This page contains affiliate links. We may earn a commission at no extra cost to you. Full disclosure.

How to get commercial cleaning contracts

Updated 2026-05-01

Commercial cleaning contracts are the path from a solo residential cleaning business to a real company. One mid-size office building can generate $2,000–$5,000/month in recurring revenue — more than 15–20 residential clients. The challenge is that commercial is sold, not marketed. You have to find the clients, not wait for them to find you.

Short version: Make a target list of businesses near you, walk in and introduce yourself, offer a sample clean, submit a professional written proposal with your COI attached. Have your insurance in place before you knock on a single door — it's the first thing commercial clients ask for.

Step 1: Get insured first

Commercial clients require proof of insurance before they'll sign anything. Have your GL policy and janitorial bond in place before approaching any commercial prospect — it signals professionalism and removes a barrier that otherwise stops deals.

Thimble
A-rated GL, BOP, professional liability, and equipment coverage. Bind online in minutes — download your COI the same day.
Get cleaning business insurance → →

Step 2: Build your target list

The best commercial cleaning prospects for a new or small company are:

Start with 20–30 targets. Prioritize businesses within 10–15 minutes of each other to cluster your routes.

Step 3: Make contact

In-person outreach outperforms cold email and cold calls by a wide margin in the cleaning industry. Walk in during business hours and ask to speak with whoever handles facility management.

Your introduction: "Hi, I'm [Name] with [Company] — we provide commercial cleaning services in this area. Do you currently use a cleaning service? I'd love to leave some information and offer a complimentary walk-through to see if we'd be a good fit."

Leave behind a one-page information sheet with your services, a photo, and contact info. Follow up by phone 3–5 days later.

Step 4: Walk the space and calculate your bid

Never bid without walking the space. On the walk-through:

The bid formula

Estimate how long the clean will take your team, then calculate:

Labor cost = hours × hourly rate per cleaner

Supplies = estimated cost per clean (typically $5–$20)

Overhead = insurance, equipment, fuel (allocate per job)

Profit margin = 40–50% of total cost

Bid price = all of the above combined

Typical commercial pricing ranges: $0.05–$0.10/sq ft for basic office cleaning, $0.10–$0.20/sq ft for medical or intensive cleaning, per visit. A 5,000 sq ft office cleaned twice a week at $0.07/sq ft = $350/visit × 8 visits/month = $2,800/month.

Step 5: Submit a professional proposal

Your proposal should include:

Email it the same day as the walk-through while you're still fresh in their mind. Follow up by phone 2–3 days later. Most commercial cleaning contracts are won on the second or third contact.

Step 6: Scale through property management companies

Once you have 3–5 commercial clients, approach commercial property management companies. One property manager who likes your work can send you multiple buildings — an entire portfolio of contracts from a single relationship. Introduce yourself at local property management associations and commercial real estate events.

Frequently asked questions

How do I get my first commercial cleaning contract?
Your fastest path to a first commercial contract: make a list of 20–30 small businesses near you (offices, medical practices, retail stores), walk in and introduce yourself, and offer a free sample clean or a discounted first month. Small businesses are more likely to say yes than large ones. Your first commercial client often comes from someone who also uses you for residential — ask your residential clients if their workplace uses a cleaning service.
How do commercial cleaning contracts work?
Commercial cleaning contracts are ongoing agreements with businesses for regular cleaning services — typically weekly, twice-weekly, or nightly. You agree on a scope of work (what gets cleaned, how often, to what standard), a price per visit or per month, and a contract term (often 3–12 months). Most businesses expect a written contract; never start commercial work without one.
How do I price commercial cleaning bids?
Walk the space, measure square footage, and estimate how many hours the clean will take at your team's pace. Calculate: (labor hours × hourly rate) + supplies + overhead + profit margin (aim for 40–50% gross margin on commercial work). Price per square foot ranges from $0.05–$0.20 per visit depending on cleaning intensity, frequency, and market. Always price based on time, not just square footage.
Do I need insurance to get commercial cleaning contracts?
Yes — virtually all commercial clients require proof of general liability insurance and a janitorial bond before signing a contract. Most require at least $1M per occurrence in GL coverage. Have your certificate of insurance (COI) ready to send with your proposal — some clients won't even meet with you without it.
How do I compete with established commercial cleaning companies?
Don't compete on price — compete on responsiveness and reliability. Large cleaning companies have high turnover and inconsistent quality. Your advantage is showing up yourself, doing the work properly, and being available when something goes wrong. Small businesses especially value a direct relationship with the owner of the cleaning company.
Where can I find commercial cleaning contract leads?
Direct outreach is the most effective for small cleaning businesses: in-person visits, phone calls, or cold email to business owners and office managers. Beyond direct outreach: local Chamber of Commerce (meet business owners), commercial property management companies (one contact can send multiple buildings), and commercial cleaning bid sites like Jobber, BuildingServiceContracts.com, and local government contract portals.

Weekly tips for your industry

Pick your industry and we'll send only what's relevant to your business.

No spam. Unsubscribe anytime.