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.0011
Controller Execution Time ( Jobseekers / Job )  0.0194
Total Execution Time  0.0210
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,482,176 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.0102 seconds)  (Hide)
0.0004   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.0004   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.0005   SELECT e.business_name, e.logo, e.website, e.rebill_date, e.date_added member_date, hits, DATEDIFF('2026-10-20',ej.date_added) duration_days, DATEDIFF('2026-10-20',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-20',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != 1 AND ej.deleted = 0 AND job_id = '1751121' 
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1751121 
0.0017   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' WHERE job_id= '1751121'  
0.0006   UPDATE employer_jobs SET monthly_hits = '***Oct-2026=701' WHERE job_id= '1751121'  
0.0021   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id = '' AND job_id = '1751121' AND status LIKE 'sent%' ORDER BY id DESC  
0.0014   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1751121 
0.0011   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '959323'
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)