Part-time virtual accountant — US Marketing Agency (QuickBooks Online)

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

TYPE OF WORK

Any

SALARY

$12–18/hr USD

HOURS PER WEEK

10

DATE UPDATED

Apr 30, 2026

JOB OVERVIEW

We run a small business in the US (digital marketing agency, SaaS, and video production) all consolidated under one S-Corp. We have one QuickBooks Online file and roughly $1.5M in combined annual revenue. I'm looking for an experienced virtual accountant to take ownership of our bookkeeping and tax-prep workpapers long-term.

Phase 1 — what you'll own from day one

Weekly bank and credit card reconciliations (QBO)
Transaction categorization and bank rule maintenance
Monthly close and financial reporting (P&L, balance sheet, cash flow)
Year-end tax prep workpapers for our US CPA (we keep the US CPA for filing)
1099 tracking and prep, sales tax filings where applicable

Project: rebuild our chart of accounts and set up class tracking so we can report by business unit

Phase 2 — once you know the business (60–90 days in)

Document our current AR and AP processes (which I currently handle myself)
Propose a system for invoicing, collections, bill entry, and payment scheduling
Take ownership of the full AR/AP cycle once the system is in place

Required
**5+ years US client bookkeeping experience (please name the firms or clients)
**Expert-level QuickBooks Online — class tracking, custom reports, bank rules
**Experience with multi-entity or class-tracked books
**S-Corp experience (basis tracking, distributions, owner comp)
**Strong written English — you'll communicate with me directly via WhatsApp and email
**Reliable internet and 4+ hours of overlap with US Central Time (San Antonio)

Nice to have
**Philippine CPA or equivalent accounting degree
**Experience with digital marketing agency books (recurring retainers, ad spend pass-through, project-based revenue)
**Experience with USAePay, Stripe, or other payment processors
**Familiarity with healthcare-services clients
**Comfort with automation tools (n8n, Zapier) — we use n8n heavily

How to apply

Please apply through this short form (5–7 minutes):

----------

A few notes:

**Only applications submitted through the form will be reviewed. Please do not reply to this post with a resume or cover letter — I won't see it.
**The form has one short paragraph question. Please answer it thoughtfully — generic copy-paste answers will be rejected.
**For the password on the form, enter: basis-tracker
**I'll review applications weekly and reach out to shortlisted candidates via WhatsApp.

Looking forward to hearing from you.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0014
Controller Execution Time ( Jobseekers / Job )  0.0275
Total Execution Time  0.0298
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,498,960 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Part-time-virtual-accountant-US-Marketing-Agency-QuickBooks-Online-1636258
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0186 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0017   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1636258
 LIMIT 1 
0.0010   SELECT *
FROM `employers`
WHERE `employer_id` = 389660
 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` = 1636258
AND `misc`.`idIS NULL 
0.0011   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-09-02',ej.date_added) duration_daysDATEDIFF('2026-09-02',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-02',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1636258' 
0.0015   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1636258 
0.0013   UPDATE employer_jobs SET hit_counts '***Apr-30-2026=634***May-01-2026=353***May-02-2026=168***May-03-2026=116***May-04-2026=153***May-05-2026=42***May-06-2026=41***May-07-2026=38***May-08-2026=34***May-09-2026=12***May-10-2026=14***May-11-2026=17***May-12-2026=18***May-13-2026=18***May-14-2026=17***May-15-2026=15***May-16-2026=12***May-17-2026=4***May-18-2026=13***May-19-2026=14***May-20-2026=18***May-21-2026=14***May-22-2026=23***May-23-2026=18***May-24-2026=34***May-25-2026=24***May-26-2026=14***May-27-2026=30***May-28-2026=24***May-29-2026=21***May-30-2026=23***May-31-2026=26***Jun-01-2026=18***Jun-02-2026=34***Jun-03-2026=30***Jun-04-2026=32***Jun-05-2026=22***Jun-06-2026=3***Jun-07-2026=2***Jun-08-2026=6***Jun-09-2026=7***Jun-10-2026=9***Jun-11-2026=4***Jun-12-2026=3***Jun-13-2026=1***Jun-14-2026=8***Jun-15-2026=7***Jun-16-2026=7***Jun-17-2026=6***Jun-18-2026=8***Jun-19-2026=4***Jun-20-2026=11***Jun-21-2026=2***Jun-22-2026=15***Jun-23-2026=5***Jun-24-2026=4***Jun-25-2026=6***Jun-26-2026=2***Jun-28-2026=3***Jun-29-2026=6***Jun-30-2026=4***Jul-01-2026=6***Jul-02-2026=11***Jul-03-2026=22***Jul-04-2026=10***Jul-05-2026=12***Jul-06-2026=2***Jul-07-2026=9***Jul-08-2026=5***Jul-09-2026=3***Jul-10-2026=2***Jul-11-2026=1***Jul-12-2026=7***Jul-13-2026=3***Jul-14-2026=1***Jul-15-2026=2***Jul-16-2026=1***Jul-17-2026=1***Jul-18-2026=3***Jul-19-2026=3***Jul-21-2026=2***Jul-22-2026=4***Jul-23-2026=3***Jul-24-2026=4***Jul-26-2026=3***Jul-27-2026=8***Jul-28-2026=4***Jul-29-2026=8***Jul-30-2026=6***Jul-31-2026=7***Aug-01-2026=2***Aug-03-2026=4***Aug-04-2026=1***Aug-05-2026=4***Aug-06-2026=2***Aug-07-2026=3***Aug-08-2026=3***Aug-09-2026=3***Aug-10-2026=2***Aug-11-2026=4***Aug-12-2026=3***Aug-13-2026=2***Aug-15-2026=2***Aug-16-2026=5***Aug-17-2026=2***Aug-18-2026=9***Aug-19-2026=4***Aug-20-2026=3***Aug-21-2026=5***Aug-22-2026=6***Aug-23-2026=6***Aug-24-2026=4***Aug-25-2026=3***Aug-26-2026=5***Aug-27-2026=7***Aug-29-2026=1***Sep-02-2026=1' WHERE job_id'1636258'  
0.0032   UPDATE employer_jobs SET monthly_hits '***Apr-2026=633***May-2026=1368***Jun-2026=269***Jul-2026=153***Aug-2026=95***Sep-2026=1' WHERE job_id'1636258'  
0.0017   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1636258' AND status LIKE 'sent%' ORDER BY id DESC  
0.0006   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1636258 
0.0045   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '389660'
AND `date_added` >= '2022-06-08' 
0.0006   select from teasers 
0.0003   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)