Customer Service Representative, Roofing and Exterior Contractor

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

TYPE OF WORK

Full Time

SALARY

$600-800 month

HOURS PER WEEK

30

DATE UPDATED

Sep 18, 2026

JOB OVERVIEW

Customer Service Representative, Roofing and Exterior Contractor (Remote, US Hours)

About the role
We're a Connecticut exterior contractor. Roofing is our main line, and we also do siding, gutters and windows for homeowners and commercial clients. Subcontracted crews do the installs. Our office handles everything else: estimates, scheduling, permits, material orders and staying in touch with the customer from the first call to the final inspection.

Our office staff spend too much of their day on customer calls and follow-ups, and that time comes out of their production work. You'll be the customer's main point of contact so they can focus on running jobs.

Schedule and pay

30 hours per week, Monday to Friday
Night shift in the Philippines, covering Connecticut business hours (roughly 9:00 PM to 3:00 AM PHT)
$600 to $800 per month, depending on experience
Independent contractor, paid monthly

What you'll do

Answer inbound calls, emails and texts from homeowners and property managers
Book estimate appointments and inspections for our field staff
Give customers job updates: material delivery dates, crew start dates, weather delays and completion
Log every customer contact in our CRM and keep job records current
Follow up on open estimates and proposals that haven't been signed yet
Take down warranty and leak complaints, gather photos and details, and route them to the production team
Send payment reminders and pass billing questions to accounting
Pass messages between the customer, the project manager, the office and the subcontractors so nothing gets dropped

What we're looking for

At least 1 year of customer service experience with a US roofing, construction or home improvement company (required)
Working knowledge of roofing: shingles vs. flat roofs, tear-off vs. overlay, flashing, underlayment, and how insurance claims and supplements work
Clear spoken and written English, and comfortable on the phone with US homeowners, including upset ones
Has used a CRM (JobNimbus, AccuLynx, HubSpot or similar)
Organized enough to track 20 or more active jobs without losing a follow-up
Reliable internet, a backup power source, a quiet workspace and a headset

Nice to have

Familiar with EagleView or GAF QuickMeasure reports
Has done scheduling or dispatch for field crews
Experience with QuickBooks or collecting on invoices

How to apply
Send your resume along with:

The roofing or construction companies you've supported, and what you handled for each
A 1 to 2 minute voice recording in which you tell a homeowner their start date is pushed back three days because of rain
Your internet speed test result

Applications without the voice recording won't be reviewed.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0032
Controller Execution Time ( Jobseekers / Job )  0.0287
Total Execution Time  0.0328
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,516,992 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Customer-Service-Representative-Roofing-and-Exterior-Contractor-1289576
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0191 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1289576
 LIMIT 1 
0.0014   SELECT *
FROM `employers`
WHERE `employer_id` = 758708
 LIMIT 1 
0.0059   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1289576
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-09-24',ej.date_added) duration_daysDATEDIFF('2026-09-24',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-09-24',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1289576' 
0.0011   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1289576 
0.0009   UPDATE employer_jobs SET hit_counts '***Jan-05-2025=305***Jan-06-2025=42***Jan-07-2025=32***Jan-08-2025=13***Jan-09-2025=9***Jan-10-2025=4***Jan-11-2025=6***Jan-12-2025=1***Jan-13-2025=3***Jan-14-2025=7***Jan-15-2025=1***Jan-16-2025=5***Jan-17-2025=2***Jan-18-2025=5***Jan-19-2025=1***Jan-20-2025=5***Jan-21-2025=3***Jan-24-2025=1***Jan-26-2025=2***Jan-27-2025=1***Jan-31-2025=2***Feb-02-2025=1***Feb-03-2025=2***Feb-04-2025=6***Feb-05-2025=2***Feb-06-2025=1***Feb-07-2025=4***Feb-08-2025=2***Feb-09-2025=3***Feb-10-2025=1***Feb-11-2025=2***Feb-12-2025=2***Feb-13-2025=1***Feb-14-2025=1***Feb-15-2025=3***Feb-16-2025=1***Feb-17-2025=4***Feb-18-2025=1***Feb-19-2025=1***Feb-20-2025=2***Feb-21-2025=4***Feb-22-2025=3***Feb-23-2025=4***Feb-24-2025=1***Feb-25-2025=4***Feb-26-2025=2***Feb-27-2025=1***Feb-28-2025=2***Mar-01-2025=1***Mar-02-2025=1***Mar-03-2025=3***Mar-04-2025=2***Mar-05-2025=2***Mar-06-2025=5***Mar-07-2025=1***Mar-08-2025=1***Mar-11-2025=1***Mar-14-2025=3***Mar-15-2025=1***Mar-16-2025=1***Mar-17-2025=1***Mar-18-2025=2***Mar-25-2025=1***Mar-26-2025=1***Mar-27-2025=5***Mar-29-2025=1***Apr-08-2025=2***Apr-13-2025=1***Apr-15-2025=2***Apr-16-2025=1***May-02-2025=1***May-04-2025=2***May-07-2025=2***May-18-2025=2***May-19-2025=1***May-26-2025=1***Jun-03-2025=1***Jun-23-2025=2***Jun-24-2025=1***Jun-28-2025=1***Jul-01-2025=2***Jul-06-2025=2***Jul-11-2025=2***Jul-20-2025=2***Jul-21-2025=1***Jul-25-2025=1***Jul-30-2025=2***Jul-31-2025=1***Aug-02-2025=1***Aug-04-2025=111***Aug-05-2025=29***Aug-06-2025=2***Aug-07-2025=1***Aug-13-2025=1***Aug-20-2025=1***Aug-23-2025=1***Aug-26-2025=1***Aug-29-2025=1***Sep-01-2025=1***Sep-04-2025=1***Sep-07-2025=1***Sep-10-2025=1***Sep-13-2025=1***Sep-16-2025=1***Sep-19-2025=1***Sep-22-2025=1***Sep-25-2025=1***Sep-28-2025=1***Oct-01-2025=1***Oct-06-2025=1***Oct-07-2025=1***Oct-10-2025=1***Oct-14-2025=1***Oct-22-2025=1***Oct-28-2025=2***Nov-08-2025=1***Nov-14-2025=1***Nov-15-2025=1***Nov-22-2025=1***Nov-25-2025=1***Dec-03-2025=1***Dec-10-2025=1***Dec-17-2025=1***Dec-19-2025=1***Dec-24-2025=1***Dec-31-2025=1***Jan-07-2026=1***Jan-16-2026=1***Jan-23-2026=1***Jan-28-2026=1***Jan-30-2026=1***Feb-06-2026=1***Apr-06-2026=10***Apr-08-2026=1***Apr-25-2026=3***Apr-28-2026=1***May-10-2026=1***Jun-22-2026=1***Jul-05-2026=2***Jul-12-2026=1***Aug-20-2026=1***Sep-09-2026=1***Sep-18-2026=521***Sep-19-2026=69***Sep-20-2026=2***Sep-24-2026=1' WHERE job_id'1289576'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Jan-2025=450***Feb-2025=61***Mar-2025=33***Apr-2025=6***May-2025=9***Jun-2025=5***Jul-2025=13***Aug-2025=149***Sep-2025=10***Oct-2025=8***Nov-2025=5***Dec-2025=6***Jan-2026=5***Feb-2026=1***Apr-2026=15***May-2026=1***Jun-2026=1***Jul-2026=3***Aug-2026=1***Sep-2026=594' WHERE job_id'1289576'  
0.0016   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1289576' AND status LIKE 'sent%' ORDER BY id DESC  
0.0005   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1289576 
0.0052   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '758708'
AND `date_added` >= '2022-06-08' 
0.0004   select from teasers 
0.0003   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)