B2B SaaS Sales Representative

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

TYPE OF WORK

Part Time

SALARY

$6 USD/hour + performance bonuses

HOURS PER WEEK

20

DATE UPDATED

Sep 26, 2026

JOB OVERVIEW

BetterRoofing is a software platform built for U.S. roofing companies. We help roofers capture leads with instant estimates, manage their sales pipeline, automate follow-up, send quotes, and get signatures.

We're looking for a confident B2B Sales Representative to help us acquire new roofing customers.

What You'll Do
- Research and identify qualified U.S. roofing companies
- Cold call owners and decision-makers
- Send personalized emails and follow-ups
- Run short 10–15 minute BetterRoofing demos
- Help prospects start their free trial
- Follow up and convert trials into paying customers
- Track activity, objections, and feedback in our CRM

We provide product training, scripts, prospecting criteria, demo materials, and software access.

Who We're Looking For
Strong spoken and written English is required. You should be comfortable speaking with U.S. business owners and having natural sales conversations—not simply reading from a script.

Experience with B2B sales, cold calling, SaaS, roofing, construction, home services, or marketing is preferred.

You must be available for a significant portion of your schedule during U.S. business hours.

Compensation
$6 USD/hour + performance bonuses.

The position begins with a 2-week paid trial at 20 hours per week. Strong performance can lead to an ongoing position with additional bonuses based on customer acquisition and retention.

How to Apply
Start your application with BETTER ROOFING and include a link to a 2–3 minute video application.

In your video:
- Introduce yourself and briefly explain your sales experience
- Tell us why you're a good fit
- Give us a short sample cold-call opening as if you're calling the owner of a roofing company about BetterRoofing

Keep it natural. Your goal in the sample call is to get the owner interested enough to continue the conversation or see a demo.

Loom, Google Drive, or an unlisted YouTube video is fine.

Applications without a video will not be considered.

Learn more at BetterRoofing.co

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0107
Total Execution Time  0.0120
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,499,864 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/B2B-SaaS-Sales-Representative-1738509
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0051 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
= 'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1738509
 LIMIT 1 
0.0004   SELECT *
FROM `employers`
WHERE `employer_id` = 433644
 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` = 1738509
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-09-27',ej.date_added) duration_days, DATEDIFF('2026-09-27',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-09-27',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != 1 AND ej.deleted = 0 AND job_id = '1738509' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1738509 
0.0007   UPDATE employer_jobs SET hit_counts = '***Sep-26-2026=2217***Sep-27-2026=2' WHERE job_id= '1738509'  
0.0006   UPDATE employer_jobs SET monthly_hits = '***Sep-2026=2217' WHERE job_id= '1738509'  
0.0004   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id = '' AND job_id = '1738509' 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` = 1738509 
0.0004   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '433644'
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)