Staff Accountant – Multi-Entity, Skilled Trades (ServiceTitan + QuickBooks Online)

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

TYPE OF WORK

Full Time

SALARY

$1100/mo

HOURS PER WEEK

40

DATE UPDATED

Jul 24, 2026

JOB OVERVIEW

Full-Charge Bookkeeper — ServiceTitan + QuickBooks Online (Multi-Entity, Remote)

We're a US-based home-services company (HVAC, plumbing, electrical) running multiple entities on ServiceTitan + QuickBooks Online + ADP. We need a sharp, reconciliation-obsessed full-charge bookkeeper to bring our books current and keep them clean.

You'll own:
• Weekly bank/credit-card reconciliations across all entities — including clearing a backlog
• ServiceTitan ? QBO reconciliation (invoices, payments, deposits, batch closeouts)
• Supply-house vendor statement reconciliation (Ferguson, WinSupply, etc.)
• AP/AR coding and aging
• Job-cost accuracy so gross margins are reliable
• Month-end close + a clean tie-out package for our CFO

Must-haves:
• Hands-on ServiceTitan experience (non-negotiable)
• QBO, ideally multi-entity
• True full-charge experience through month-end close
• Strong written + spoken English
• Reliable daily overlap with US Eastern Time (min. 4 hrs)
• Independent, remote, detail-obsessed

Nice-to-have: HVAC/plumbing/electrical or field-service background, job costing, US-client experience.

To apply, tell us: (1) your ServiceTitan experience, (2) how many QBO entities you've run at once, (3) a time you brought neglected books current.

Shortlisted candidates do a short paid skills test.

Compensation: $1100/month

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0016
Controller Execution Time ( Jobseekers / Job )  0.0203
Total Execution Time  0.0227
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,486,896 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Staff-Accountant-Multi-Entity-Skilled-Trades-ServiceTitan-QuickBooks-Online-1695886
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0116 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0009   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1695886
 LIMIT 1 
0.0018   SELECT *
FROM `employers`
WHERE `employer_id` = 268431
 LIMIT 1 
0.0013   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1695886
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-08-28',ej.date_added) duration_daysDATEDIFF('2026-08-28',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-28',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1695886' 
0.0008   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1695886 
0.0012   UPDATE employer_jobs SET hit_counts '***Jul-24-2026=397***Jul-25-2026=193***Jul-26-2026=163***Jul-27-2026=172***Jul-28-2026=58***Jul-29-2026=38***Jul-30-2026=28***Jul-31-2026=18***Aug-01-2026=12***Aug-02-2026=12***Aug-03-2026=18***Aug-04-2026=12***Aug-05-2026=9***Aug-06-2026=10***Aug-07-2026=9***Aug-08-2026=12***Aug-09-2026=2***Aug-10-2026=4***Aug-11-2026=12***Aug-12-2026=8***Aug-13-2026=13***Aug-14-2026=6***Aug-15-2026=30***Aug-16-2026=4***Aug-17-2026=6***Aug-18-2026=4***Aug-19-2026=6***Aug-20-2026=5***Aug-22-2026=1***Aug-28-2026=1' WHERE job_id'1695886'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Jul-2026=1067***Aug-2026=196' WHERE job_id'1695886'  
0.0012   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1695886' 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` = 1695886 
0.0024   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '268431'
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)