Virtual Bookkeper

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

TYPE OF WORK

Full Time

SALARY

$500/month

HOURS PER WEEK

40

DATE UPDATED

Aug 6, 2026

JOB OVERVIEW

Join the J Designs Pool & Spa Team!
At J Designs Pool & Spa, we create dreams, one backyard at a time. Behind every stress-free client experience is a team that keeps the numbers just as clean as the pools we build. We're looking for a detail-oriented Virtual Bookkeeper to keep our accounts receivable, accounts payable, and bank reconciliations accurate and current.

We are growing and looking for an A-player bookkeeper who can answer "YES!" to the following questions:
• Are you accurate and organized down to the last cent?
• Do you take ownership of a task without being asked twice?
• Are you comfortable working with numbers across two systems and making sure they match?

If you answered "YES" to the above, read on!

Duties (included but are not limited to):
• Enter all invoices and expenses into JobTread for owner approval before forwarding to QuickBooks
• Prepare weekly accounts receivable and accounts payable reports for owner review
• Perform bank reconciliations on all company bank accounts and credit cards
• Reconcile expenses between QuickBooks and JobTread and flag discrepancies
• Follow up on outstanding accounts receivable and accounts payable
• Keep financial records organized, current, and audit-ready
• Flag missing documentation or unclear transactions for owner review
• Offer feedback to improve current bookkeeping processes
• Daily use of our tech stack - JobTread, QuickBooks, HubSpot, and Google Suite

Requirements:
? Prior bookkeeping experience, ideally with QuickBooks and a construction or job-costing platform (JobTread experience a plus)
? Full-time availability (~40 hours/week). Preferred schedule is 10:00 AM to 6:30 PM Pacific Standard Time, but any schedule with at least 4 hours of daily overlap with Pacific Standard Time will be considered
? A laptop/computer with a second screen set up
? Headset/headphones for video meetings
? Mouse and keyboard
? Strong attention to detail and comfort reconciling numbers across multiple systems

We are based in Los Angeles, California.
Do we have your attention?
To apply, fill out the following application form: ----------
The keyword phrase is "Crystal Clear Books"

Applications not following the above will not be considered.
We Make Lives Better -- so let's start with yours!

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0009
Controller Execution Time ( Jobseekers / Job )  0.0157
Total Execution Time  0.0172
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,487,288 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Virtual-Bookkeper-1704236
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0088 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0005   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1704236
 LIMIT 1 
0.0006   SELECT *
FROM `employers`
WHERE `employer_id` = 631174
 LIMIT 1 
0.0009   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1704236
AND `misc`.`idIS NULL 
0.0006   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-09-11',ej.date_added) duration_daysDATEDIFF('2026-09-11',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-09-11',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1704236' 
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1704236 
0.0008   UPDATE employer_jobs SET hit_counts '***Aug-06-2026=736***Aug-07-2026=652***Aug-08-2026=202***Aug-09-2026=177***Aug-10-2026=208***Aug-11-2026=120***Aug-12-2026=48***Aug-13-2026=45***Aug-14-2026=45***Aug-15-2026=27***Aug-16-2026=19***Aug-17-2026=27***Aug-18-2026=39***Aug-19-2026=32***Aug-20-2026=18***Aug-21-2026=18***Aug-22-2026=8***Aug-23-2026=11***Aug-24-2026=18***Aug-25-2026=23***Aug-26-2026=17***Aug-27-2026=17***Aug-28-2026=10***Aug-29-2026=8***Aug-30-2026=11***Aug-31-2026=20***Sep-01-2026=17***Sep-02-2026=18***Sep-03-2026=25***Sep-04-2026=15***Sep-05-2026=16***Sep-10-2026=1***Sep-11-2026=1' WHERE job_id'1704236'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Aug-2026=2556***Sep-2026=93' WHERE job_id'1704236'  
0.0008   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1704236' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1704236 
0.0020   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '631174'
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)