Remote Sales Closer (Roofing Marketing Agency) – Base + Commission

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

TYPE OF WORK

Part Time

SALARY

20% Per Close, + Base per shown appt

HOURS PER WEEK

25

DATE UPDATED

Oct 16, 2026

JOB OVERVIEW

About Us
We’re a US-based agency that books roof inspection appointments for residential roofing contractors. Our setter fills the calendar with qualified roofing company owners. We need a closer who can run the call, handle objections, and get the deal signed and paid.

What You’ll Do

Run 20–40 minute Zoom or phone sales calls with roofing company owners
Uncover their goals, how many jobs they need, and what they’ve tried before
Present our appointment packages and pricing with confidence
Handle objections (“we tried marketing before,” “too expensive,” “need to think about it”)
Close on the call and collect payment or a signed agreement the same day
Follow up with anyone who didn’t close within 48 hours
Log every call, outcome, and note in our CRM (HubSpot)
Give the setter feedback on lead quality

Requirements

2+ years closing B2B or high-ticket offers ($1,000+ deals) over the phone or Zoom
A proven track record. Be ready to share your close rate and cash collected.
Excellent, natural English and a confident, consultative style
Comfortable talking to blue-collar business owners. No corporate scripts.
Reliable internet, a backup power source, a quiet workspace, and a quality headset and webcam
Experience with a CRM (HubSpot, GoHighLevel, or similar)

Bonus Points

You’ve sold to contractors, home services, or marketing agency clients before
You’ve worked with a setter-closer team

Compensation

Base pay of $20 per attended meeting
20% commission on every dollar collected, uncapped
Bonus for hitting monthly close-rate targets
Commission increases as deal size grows

How to Apply (applications that skip these steps won’t be reviewed)

Start your application with the word “RIDGE” in the subject line.
Attach a 2–3 minute voice or video recording of how you’d respond when a roofer says, “I tried a marketing agency before and got garbage leads.”
Share your close rate, average deal size, and the best month of cash you’ve collected, along with what you were selling.
Confirm your availability during US hours.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0128
Total Execution Time  0.0141
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,472,272 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Remote-Sales-Closer-Roofing-Marketing-Agency-Base-Commission-1751121
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0069 seconds)  (Hide)
0.0005   SELECT *
                                
FROM exrates
                                WHERE rate_name 
= 'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1751121
 LIMIT 1 
0.0004   SELECT *
FROM `employers`
WHERE `employer_id` = 959323
 LIMIT 1 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `misc` ON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1751121
AND `misc`.`id` IS NULL 
0.0004   SELECT e.business_name, e.logo, e.website, e.rebill_date, e.date_added member_date, hits, DATEDIFF('2026-10-21',ej.date_added) duration_days, DATEDIFF('2026-10-21',e.rebill_date) duration_rebill, ej.*, e.deactivate FROM employers e, employer_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-10-21',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != 1 AND ej.deleted = 0 AND job_id = '1751121' 
0.0002   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1751121 
0.0007   UPDATE employer_jobs SET hit_counts = '***Oct-16-2026=655***Oct-17-2026=40***Oct-18-2026=3***Oct-19-2026=3***Oct-20-2026=1***Oct-21-2026=1' WHERE job_id= '1751121'  
0.0006   UPDATE employer_jobs SET monthly_hits = '***Oct-2026=702' WHERE job_id= '1751121'  
0.0023   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id = '' AND job_id = '1751121' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1751121 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '959323'
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)