Bookkeeper Part-Time – 15–20 Hours/Week)

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

TYPE OF WORK

Part Time

SALARY

$7.00 per hour

HOURS PER WEEK

15

DATE UPDATED

Mar 3, 2026

JOB OVERVIEW

About Us
We are a fast-growing U.S.-based group of companies headquartered in Ohio, including:
• A multi-location residential & commercial cleaning company
• A separate janitorial services franchise company
• A real estate brokerage
• Property holding and management entities
We are looking for a detail-oriented, proactive, analytical Bookkeeper who wants long-term stability and growth with our organization.

What You’ll Be Responsible For:

Core Bookkeeping
• Daily transaction categorization in QuickBooks Online
• Bank & credit card reconciliations
• Stripe & merchant account reconciliation
• Payroll journal entries
• Accounts Payable & Accounts Receivable tracking
• Vendor management (W-9 collection, 1099 tracking)

Financial Reporting
• Monthly P&L by Class (multiple locations & divisions)
• Balance Sheet reconciliation
• Cash flow reporting
• Budget vs. actual reporting
• Labor % tracking by location
• KPI dashboards (revenue per tech, margin by office, etc.)

Multi-Entity Structure
• Maintain books for multiple related entities
• Intercompany transactions
• Clean chart of accounts structure
• Assist CPA during tax prep

Process & Automation
• Improve workflows inside QBO
• Help integrate systems
• Create SOPs for bookkeeping & purchasing processes
• Identify inefficiencies and recommend improvements

? Requirements
• 3+ years experience in bookkeeping
• Advanced experience in QuickBooks Online
• Experience with multi-entity bookkeeping (preferred)
• Strong understanding of:
• Accrual vs Cash accounting
• Job costing
• Payroll entries
• Financial reporting
• High attention to detail
• Strong English communication skills
• Must be organized, proactive, and analytical
• Stable internet connection
• Available during U.S. EST working hours overlap

Required Skills
• 3+ years bookkeeping experience
• Advanced QuickBooks Online
• Strong proficiency in Google Sheets (this is required)
• Must understand formulas
• Must be able to build clean reporting templates
• Must be comfortable working with structured financial data
• Understanding of:
• Accrual vs Cash accounting
• Job costing
• Payroll entries
• Strong attention to detail
• Organized and proactive
• Reliable internet connection
• Availability with U.S. EST overlap

Preferred Experience
• Service-based business bookkeeping
• Cleaning company bookkeeping
• Multi-entity structures
• Stripe reconciliation
• Real estate bookkeeping
• KPI dashboard creation

To Apply

Please include:
1. Your expected hourly rate
2. Your availability (hours + EST overlap)
3. A short Loom video (2–3 minutes) explaining:
• Your QuickBooks experience
• Your Google Sheets experience
• The most complex reconciliation you’ve handled

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0152
Total Execution Time  0.0165
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,509,744 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Bookkeeper-Part-Time-1520-HoursWeek-1592490
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0095 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0011   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1592490
 LIMIT 1 
0.0004   SELECT *
FROM `employers`
WHERE `employer_id` = 817073
 LIMIT 1 
0.0010   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1592490
AND `misc`.`idIS NULL 
0.0006   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-08-21',ej.date_added) duration_daysDATEDIFF('2026-08-21',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-08-21',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1592490' 
0.0009   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1592490 
0.0008   UPDATE employer_jobs SET hit_counts '***Mar-03-2026=480***Mar-04-2026=614***Mar-05-2026=168***Mar-06-2026=120***Mar-07-2026=48***Mar-08-2026=69***Mar-09-2026=44***Mar-10-2026=56***Mar-11-2026=50***Mar-12-2026=66***Mar-13-2026=28***Mar-14-2026=23***Mar-15-2026=20***Mar-16-2026=39***Mar-17-2026=29***Mar-18-2026=28***Mar-19-2026=33***Mar-20-2026=33***Mar-21-2026=25***Mar-22-2026=18***Mar-23-2026=27***Mar-24-2026=34***Mar-25-2026=27***Mar-26-2026=22***Mar-27-2026=29***Mar-28-2026=16***Mar-29-2026=21***Mar-30-2026=19***Mar-31-2026=20***Apr-01-2026=26***Apr-02-2026=22***Apr-03-2026=43***Apr-04-2026=12***Apr-05-2026=15***Apr-06-2026=25***Apr-07-2026=16***Apr-08-2026=5***Apr-09-2026=30***Apr-10-2026=13***Apr-11-2026=14***Apr-12-2026=8***Apr-13-2026=15***Apr-14-2026=14***Apr-15-2026=16***Apr-16-2026=35***Apr-17-2026=15***Apr-18-2026=13***Apr-19-2026=5***Apr-20-2026=26***Apr-21-2026=17***Apr-22-2026=20***Apr-23-2026=19***Apr-24-2026=19***Apr-25-2026=5***Apr-26-2026=11***Apr-27-2026=14***Apr-28-2026=18***Apr-29-2026=6***Apr-30-2026=4***May-01-2026=8***May-02-2026=6***May-03-2026=10***May-04-2026=18***May-05-2026=4***May-06-2026=6***May-07-2026=9***May-08-2026=17***May-09-2026=4***May-11-2026=9***May-12-2026=7***May-13-2026=10***May-14-2026=5***May-15-2026=8***May-16-2026=7***May-17-2026=12***May-18-2026=13***May-19-2026=6***May-20-2026=8***May-21-2026=6***May-22-2026=9***May-23-2026=2***May-24-2026=4***May-25-2026=4***May-26-2026=10***May-27-2026=1***May-28-2026=8***May-29-2026=3***May-30-2026=7***May-31-2026=10***Jun-01-2026=11***Jun-02-2026=9***Jun-03-2026=5***Jun-04-2026=5***Jun-05-2026=3***Jun-06-2026=4***Jun-07-2026=6***Jun-08-2026=10***Jun-09-2026=3***Jun-10-2026=4***Jun-11-2026=3***Jun-12-2026=5***Jun-13-2026=1***Jun-14-2026=4***Jun-16-2026=2***Jun-17-2026=8***Jun-18-2026=5***Jun-19-2026=2***Jun-20-2026=3***Jun-21-2026=2***Jun-22-2026=7***Jun-23-2026=1***Jun-24-2026=2***Jun-26-2026=3***Jun-27-2026=4***Jun-28-2026=4***Jun-29-2026=6***Jun-30-2026=5***Jul-01-2026=4***Jul-02-2026=1***Jul-03-2026=4***Jul-04-2026=2***Jul-05-2026=7***Jul-06-2026=5***Jul-07-2026=9***Jul-08-2026=9***Jul-09-2026=5***Jul-10-2026=7***Jul-11-2026=6***Jul-12-2026=1***Jul-13-2026=2***Jul-14-2026=2***Jul-15-2026=1***Jul-16-2026=1***Jul-18-2026=3***Jul-19-2026=4***Jul-20-2026=3***Jul-21-2026=3***Jul-22-2026=3***Jul-23-2026=4***Jul-24-2026=3***Jul-25-2026=1***Jul-26-2026=2***Jul-27-2026=2***Jul-28-2026=2***Jul-29-2026=1***Jul-30-2026=3***Jul-31-2026=4***Aug-01-2026=5***Aug-02-2026=1***Aug-03-2026=4***Aug-04-2026=2***Aug-05-2026=3***Aug-06-2026=5***Aug-07-2026=4***Aug-08-2026=3***Aug-09-2026=2***Aug-10-2026=1***Aug-11-2026=8***Aug-12-2026=6***Aug-13-2026=3***Aug-14-2026=4***Aug-15-2026=2***Aug-21-2026=1' WHERE job_id'1592490'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Mar-2026=2206***Apr-2026=501***May-2026=231***Jun-2026=127***Jul-2026=104***Aug-2026=54' WHERE job_id'1592490'  
0.0008   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1592490' AND status LIKE 'sent%' ORDER BY id DESC  
0.0002   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1592490 
0.0023   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '817073'
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)