Part-Time Bookkeeper (Roofing Company)

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

TYPE OF WORK

Part Time

SALARY

N/A

HOURS PER WEEK

TBD

DATE UPDATED

Dec 16, 2025

JOB OVERVIEW

Job Summary

We are seeking a detail-oriented and reliable Part-Time Bookkeeper to manage the day-to-day financial operations of our roofing company. The ideal candidate will have strong experience in QuickBooks, a solid understanding of construction/roofing accounting practices, and the ability to work independently while maintaining accurate financial records.

Key Responsibilities

Manage and maintain company financial records using QuickBooks (Online/Desktop)

Record and reconcile all transactions, including deposits, expenses, and credit cards

Handle accounts payable and accounts receivable

Prepare and send customer invoices and track payments

Reconcile bank and credit card statements monthly

Track job costs, materials, labor, and subcontractor expenses

Manage payroll support and coordination with payroll services

Maintain vendor records, W-9s, and assist with 1099 preparation

Prepare monthly financial reports (Profit & Loss, Balance Sheet, job cost reports)

Ensure compliance with company policies and accounting best practices

Communicate with management regarding financial status and discrepancies

Qualifications & Requirements

Proven experience as a Bookkeeper, preferably in roofing or construction

Expert-level proficiency in QuickBooks

Strong understanding of job costing and construction accounting

High attention to detail and accuracy

Ability to manage multiple tasks and meet deadlines

Strong organizational and communication skills

Ability to work independently with minimal supervision

Schedule & Compensation

Part-time position (hours flexible based on workload)

Compensation based on experience

Work Environment

Remote or in-office (based on company needs)

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0021
Controller Execution Time ( Jobseekers / Job )  0.0281
Total Execution Time  0.0308
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,493,504 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Part-Time-Bookkeeper-Roofing-Company-1536007
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0204 seconds)  (Hide)
0.0009   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0010   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1536007
 LIMIT 1 
0.0010   SELECT *
FROM `employers`
WHERE `employer_id` = 765061
 LIMIT 1 
0.0049   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1536007
AND `misc`.`idIS NULL 
0.0012   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-07-13',ej.date_added) duration_daysDATEDIFF('2026-07-13',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-07-13',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1536007' 
0.0013   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1536007 
0.0022   UPDATE employer_jobs SET hit_counts '***Dec-16-2025=263***Dec-17-2025=434***Dec-18-2025=91***Dec-19-2025=53***Dec-20-2025=42***Dec-21-2025=37***Dec-22-2025=52***Dec-23-2025=22***Dec-24-2025=12***Dec-25-2025=6***Dec-26-2025=26***Dec-27-2025=14***Dec-28-2025=12***Dec-29-2025=16***Dec-30-2025=7***Dec-31-2025=8***Jan-01-2026=12***Jan-02-2026=11***Jan-03-2026=13***Jan-04-2026=18***Jan-05-2026=19***Jan-06-2026=9***Jan-07-2026=15***Jan-08-2026=10***Jan-09-2026=12***Jan-10-2026=10***Jan-11-2026=4***Jan-12-2026=18***Jan-13-2026=3***Jan-14-2026=7***Jan-15-2026=12***Jan-16-2026=21***Jan-17-2026=29***Jan-18-2026=27***Jan-19-2026=28***Jan-20-2026=17***Jan-21-2026=26***Jan-22-2026=24***Jan-23-2026=22***Jan-24-2026=10***Jan-25-2026=17***Jan-26-2026=24***Jan-27-2026=23***Jan-28-2026=26***Jan-29-2026=32***Jan-30-2026=29***Jan-31-2026=19***Feb-01-2026=19***Feb-02-2026=22***Feb-03-2026=17***Feb-04-2026=7***Feb-05-2026=1***Feb-06-2026=3***Feb-07-2026=3***Feb-09-2026=4***Feb-10-2026=2***Feb-11-2026=2***Feb-12-2026=5***Feb-13-2026=3***Feb-14-2026=3***Feb-15-2026=5***Feb-16-2026=2***Feb-17-2026=5***Feb-18-2026=3***Feb-19-2026=4***Feb-20-2026=3***Feb-21-2026=4***Feb-22-2026=2***Feb-23-2026=3***Feb-24-2026=2***Feb-25-2026=9***Feb-26-2026=2***Feb-27-2026=4***Mar-01-2026=4***Mar-02-2026=2***Mar-04-2026=3***Mar-05-2026=2***Mar-07-2026=2***Mar-08-2026=3***Mar-09-2026=4***Mar-10-2026=3***Mar-11-2026=2***Mar-12-2026=2***Mar-13-2026=1***Mar-14-2026=1***Mar-15-2026=1***Mar-16-2026=3***Mar-17-2026=4***Mar-18-2026=2***Mar-19-2026=5***Mar-20-2026=3***Mar-21-2026=3***Mar-22-2026=1***Mar-23-2026=4***Mar-24-2026=1***Mar-26-2026=9***Mar-27-2026=1***Mar-28-2026=2***Mar-30-2026=4***Mar-31-2026=5***Apr-01-2026=3***Apr-02-2026=1***Apr-04-2026=3***Apr-05-2026=1***Apr-06-2026=1***Apr-07-2026=6***Apr-08-2026=4***Apr-09-2026=9***Apr-10-2026=4***Apr-11-2026=4***Apr-12-2026=2***Apr-13-2026=4***Apr-14-2026=3***Apr-15-2026=3***Apr-16-2026=4***Apr-17-2026=2***Apr-18-2026=6***Apr-19-2026=3***Apr-20-2026=3***Apr-21-2026=1***Apr-22-2026=3***Apr-23-2026=4***Apr-24-2026=5***Apr-25-2026=3***Apr-26-2026=4***Apr-27-2026=1***Apr-28-2026=7***Apr-29-2026=6***May-01-2026=2***May-02-2026=3***May-03-2026=3***May-04-2026=3***May-06-2026=10***May-07-2026=4***May-09-2026=2***May-11-2026=3***May-12-2026=2***May-13-2026=8***May-14-2026=5***May-16-2026=3***May-17-2026=2***May-18-2026=2***May-19-2026=1***May-20-2026=1***May-21-2026=3***May-22-2026=4***May-23-2026=1***May-24-2026=1***May-25-2026=2***May-26-2026=1***May-27-2026=1***May-28-2026=3***May-29-2026=1***May-30-2026=4***May-31-2026=1***Jun-01-2026=4***Jun-02-2026=3***Jun-05-2026=1***Jun-06-2026=1***Jun-07-2026=1***Jun-08-2026=1***Jun-10-2026=3***Jun-11-2026=1***Jun-12-2026=2***Jun-13-2026=2***Jun-14-2026=2***Jun-16-2026=2***Jun-17-2026=4***Jun-18-2026=2***Jun-19-2026=1***Jun-22-2026=1***Jun-23-2026=2***Jun-26-2026=1***Jun-29-2026=2***Jul-02-2026=1***Jul-06-2026=5***Jul-08-2026=2***Jul-09-2026=9***Jul-11-2026=3***Jul-13-2026=1' WHERE job_id'1536007'  
0.0012   UPDATE employer_jobs SET monthly_hits '***Dec-2025=1095***Jan-2026=547***Feb-2026=139***Mar-2026=77***Apr-2026=100***May-2026=76***Jun-2026=36***Jul-2026=21' WHERE job_id'1536007'  
0.0020   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1536007' AND status LIKE 'sent%' ORDER BY id DESC  
0.0009   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1536007 
0.0019   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '765061'
AND `date_added` >= '2022-06-08' 
0.0009   select from teasers 
0.0008   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)