Operations/Sales Assistant

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Full Time

SALARY

$800-$1,200/Month

HOURS PER WEEK

40

DATE UPDATED

Jul 29, 2026

JOB OVERVIEW

We are a residential cleaning company in Southern California. We run lean and fully remote on the back end. Our cleaning crews are in the field and our office team runs everything by phone, text, and CRM from wherever they are.

We are small, we move fast, and we care a lot about doing what we said we would do. Our clients are mostly busy families and homeowners who need their home handled without having to follow up.

The role in one sentence

You are the person who makes sure every scheduled cleaning actually happens on time, and that the client always knows what is going on.

Right now one person is doing both sales and operations, and both suffer for it. We are splitting the seat. You will own operations. Someone else owns sales. Clean lines, no overlap.

What you will actually do

About 80% of your week is operations:

Daily dispatch

Confirm the day's schedule and that every crew is assigned and accounted for
Text and call clients when the team is on the way and when they arrive
Solve access problems in real time: parking, gates, entry codes, keys, locked buildings
Handle early arrival requests and same-day availability checks

Crew communication

Check in with cleaners during jobs
Collect photos when a job needs documentation
Confirm completion and log it

Schedule management

Process reschedules and cancellations
Reassign crews and fill gaps in the calendar
Keep the calendar accurate at all times

Escalations

When a home is in worse condition than what was quoted, gather the details and photos and hand the pricing decision to the sales rep
You do not negotiate price. You gather facts and hand off.

Service recovery

When a client is unhappy, execute the fix: schedule the redo with a senior team or process the refund
Close the loop with the client so nothing dies in limbo

Billing follow-up

Follow up on declined cards
Confirm charges and handle cancellation fee conversations

Admin

Send review links after successful jobs and track them

The other 20% is sales coverage:

Cover the sales rep on his days off: answer inbound calls, run estimate calls, book jobs
Cover a one hour break window during normal business hours
Pick up overflow lead callbacks when the queue backs up

You will be trained on our full estimate and booking script. You are not expected to be a closer, but you do need to be able to run the call and book the job when the sales rep is out.

What a normal day looks like

Mornings are your heaviest window. Schedule confirmations, crews heading out, arrival calls. Midday is crew check-ins, reschedules, and putting out fires. Afternoons are completion confirmations, billing follow-up, and review sends.

It is a reactive role. Things go wrong every single day: a crew is stuck in traffic, a gate code does not work, a client forgot they booked. Your job is to catch it before the client feels it.

What we are looking for

Must have:

- Clear, confident spoken English. You will be on the phone with US homeowners all day.
- Experience in a phone-based customer service, dispatch, scheduling, or coordination role
- Some sales or client-facing experience, enough to handle a booking call with training
- Genuinely calm under pressure. Not rattled by an upset client or three problems at once.
- Reliable high speed internet, a quiet place to take calls, and a working headset
- Comfortable in a CRM and learning new software quickly
- Available during Pacific Time business hours

Nice to have:

- Experience with GoHighLevel or a similar CRM
- Background in home services, field services, or any business that dispatches crews
- Prior experience as a virtual assistant for a US based company

Not a fit if:

- You need everything scripted and get stuck when the script runs out
- You go quiet when something goes wrong instead of flagging it
- You are looking for a passive, low-contact role. This is a phone job.

What success looks like

First 30 days: You know our service offerings, our scheduling system, and our crews. You are running daily dispatch with support.

By 60 days: You own dispatch, access issues, and reschedules end to end. Escalations get to sales with everything they need attached.

By 90 days: On-time arrival rate is consistently high, no job falls through the cracks, and you can cover a full sales day when needed.

Your two primary metrics:

- On-time arrival rate
- Reschedule and cancellation recovery rate

Please do not apply if you have no experience selling/interacting with customers over the phone

Please include:

Application instructions:
-Record a 60 second video mentioning your favorite color first, your name second, and why you would be a good fit third.
-Send video to ---------- and also attach resume

We move quickly. Strong applicants get a phone screen within a few days.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0159
Total Execution Time  0.0173
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,510,864 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/OperationsSales-Assistant-1699083
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 15 (0.0101 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0011   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1699083
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 629773
 LIMIT 1 
0.0013   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1699083
AND `misc`.`idIS NULL 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1699083
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-08-31',ej.date_added) duration_daysDATEDIFF('2026-08-31',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-08-31',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1699083' 
0.0010   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1699083 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1699083
AND `misc`.`idIS NULL 
0.0011   UPDATE employer_jobs SET hit_counts '***Jul-29-2026=618***Jul-30-2026=551***Jul-31-2026=188***Aug-01-2026=116***Aug-02-2026=73***Aug-03-2026=66***Aug-04-2026=73***Aug-05-2026=46***Aug-06-2026=41***Aug-07-2026=23***Aug-08-2026=19***Aug-09-2026=18***Aug-10-2026=16***Aug-11-2026=23***Aug-12-2026=17***Aug-13-2026=14***Aug-14-2026=20***Aug-15-2026=7***Aug-16-2026=7***Aug-17-2026=10***Aug-18-2026=12***Aug-19-2026=10***Aug-20-2026=4***Aug-21-2026=1***Aug-22-2026=10***Aug-23-2026=10***Aug-24-2026=13***Aug-26-2026=11***Aug-27-2026=9***Aug-28-2026=11***Aug-29-2026=13***Aug-31-2026=1' WHERE job_id'1699083'  
0.0007   UPDATE employer_jobs SET monthly_hits '***Jul-2026=1357***Aug-2026=694' WHERE job_id'1699083'  
0.0012   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1699083' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1699083 
0.0014   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '629773'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)