Monthly Bookkeeper Needed for Growing Advertising Agency (Cash Basis, ~300 Transactions/Month)

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

TYPE OF WORK

Gig

SALARY

$225/mo

HOURS PER WEEK

TBD

DATE UPDATED

Jul 19, 2025

JOB OVERVIEW

IMPORTANT: Please start your proposal with the word "orangutan" so I know you've read this entire job posting.
We're seeking an experienced bookkeeper to handle monthly bookkeeping for our advertising agency using QuickBooks Online. We operate on a cash basis with approximately 300 transactions per month, primarily processed through Stripe.
Monthly Bookkeeping Tasks:

Import and categorize all transactions for specified accounts (client payments, fees, chargebacks, etc.)
Reconcile business bank account and credit card statements
Properly categorize advertising agency expenses (software subscriptions, contractor payments, office expenses, client acquisition costs, etc.)
Record any manual transactions not processed through Stripe
Generate monthly P&L, Balance Sheet, and Cash Flow statements

Weekly Reporting Responsibilities:

Generate weekly P&L based on actual cash received and paid out
Provide weekly cash flow summary (money in vs. money out)
Track weekly revenue trends and bank balance changes
Monitor actual Stripe deposits and expenses paid
Deliver concise weekly dashboard report every Friday

Agency-Specific Responsibilities:

Track client payments (amount & frequency) and outstanding invoices through QuickBooks
Categorize expenses via the provided categorization sheet
Properly handle Stripe fees and payment processing costs
Set up and maintain vendor records for contractors, software tools, and service providers
Ensure proper classification of recurring vs. one-time expenses

CPA Coordination:

Prepare monthly financial package for CPA review
Maintain organized records for tax preparation
Flag any unusual transactions or questions for CPA consultation
Ensure all transactions are properly categorized for tax purposes
Coordinate quarterly estimated tax payment calculations if needed

Monthly Deliverables:

Monthly financial reports with brief narrative of key changes
Weekly cash basis reports (every Friday)
Clean, reconciled QuickBooks file ready for CPA review
Summary of any issues, recommendations, and/or discrepancies for process improvements

Required Experience:

3+ years with QuickBooks Online and Stripe integration
Experience with service-based businesses, preferably agencies
Understanding of payment processing fee structures
Familiarity with contractor vs. employee classifications
Strong attention to detail for high-volume transaction processing
Experience with cash basis accounting

Budget: Please include your monthly rate for this scope of work in your proposal.
Start Date: Immediate
Looking forward to finding a reliable partner to help streamline our financial operations!

Please include in your application:

Years of QuickBooks Online experience
Experience with Stripe integration (yes/no and brief details)
Have you worked with service businesses or agencies before?
Attach 1 sample monthly report you've created (client info removed)
What day would you deliver weekly reports?
Your typical turnaround time for monthly bookkeeping

Bonus points:

Brief example of how you'd organize our transaction categories
Any experience with cash basis accounting

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0011
Controller Execution Time ( Jobseekers / Job )  0.0167
Total Execution Time  0.0185
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,511,160 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Monthly-Bookkeeper-Needed-for-Growing-Advertising-Agency-Cash-Basis-300-TransactionsMonth-1426332
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0089 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1426332
 LIMIT 1 
0.0004   SELECT *
FROM `employers`
WHERE `employer_id` = 412064
 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` = 1426332
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-04-20',ej.date_added) duration_daysDATEDIFF('2026-04-20',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-04-20',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1426332' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1426332 
0.0018   UPDATE employer_jobs SET hit_counts '***Jul-19-2025=810***Jul-20-2025=311***Jul-21-2025=278***Jul-22-2025=127***Jul-23-2025=75***Jul-24-2025=39***Jul-25-2025=15***Jul-26-2025=17***Jul-27-2025=20***Jul-28-2025=13***Jul-29-2025=16***Jul-30-2025=24***Jul-31-2025=8***Aug-01-2025=7***Aug-02-2025=8***Aug-03-2025=8***Aug-04-2025=9***Aug-05-2025=5***Aug-06-2025=2***Aug-07-2025=5***Aug-09-2025=3***Aug-10-2025=4***Aug-11-2025=3***Aug-12-2025=6***Aug-13-2025=1***Aug-14-2025=4***Aug-15-2025=3***Aug-16-2025=2***Aug-17-2025=3***Aug-18-2025=2***Aug-19-2025=6***Aug-20-2025=5***Aug-21-2025=5***Aug-22-2025=1***Aug-23-2025=5***Aug-24-2025=3***Aug-25-2025=8***Aug-26-2025=5***Aug-27-2025=4***Aug-28-2025=7***Aug-29-2025=2***Aug-30-2025=1***Aug-31-2025=5***Sep-01-2025=1***Sep-02-2025=3***Sep-03-2025=2***Sep-04-2025=6***Sep-05-2025=4***Sep-06-2025=3***Sep-08-2025=2***Sep-09-2025=3***Sep-10-2025=3***Sep-11-2025=4***Sep-12-2025=3***Sep-13-2025=3***Sep-15-2025=3***Sep-16-2025=6***Sep-17-2025=3***Sep-18-2025=4***Sep-20-2025=2***Sep-22-2025=4***Sep-23-2025=3***Sep-24-2025=1***Sep-25-2025=4***Sep-26-2025=3***Sep-27-2025=1***Sep-28-2025=4***Sep-29-2025=3***Sep-30-2025=1***Oct-01-2025=2***Oct-03-2025=1***Oct-04-2025=1***Oct-07-2025=3***Oct-08-2025=1***Oct-09-2025=1***Oct-10-2025=1***Oct-12-2025=1***Oct-13-2025=2***Oct-14-2025=2***Oct-15-2025=1***Oct-16-2025=2***Oct-17-2025=2***Oct-20-2025=1***Oct-21-2025=2***Oct-22-2025=1***Oct-23-2025=2***Oct-30-2025=2***Nov-02-2025=1***Nov-03-2025=1***Nov-10-2025=1***Nov-12-2025=1***Nov-15-2025=1***Nov-17-2025=1***Nov-18-2025=1***Nov-19-2025=4***Nov-21-2025=1***Nov-23-2025=1***Nov-25-2025=1***Nov-26-2025=1***Nov-29-2025=2***Nov-30-2025=2***Dec-01-2025=1***Dec-03-2025=1***Dec-04-2025=1***Dec-05-2025=2***Dec-07-2025=1***Dec-08-2025=1***Dec-10-2025=1***Dec-11-2025=1***Dec-13-2025=1***Dec-14-2025=1***Dec-15-2025=1***Dec-17-2025=2***Dec-18-2025=1***Dec-22-2025=2***Dec-24-2025=1***Dec-29-2025=2***Jan-01-2026=1***Jan-03-2026=1***Jan-05-2026=1***Jan-22-2026=1***Jan-23-2026=3***Jan-30-2026=1***Feb-12-2026=1***Feb-14-2026=1***Feb-16-2026=1***Feb-17-2026=1***Feb-23-2026=2***Feb-24-2026=1***Feb-25-2026=1***Mar-05-2026=3***Mar-06-2026=1***Mar-08-2026=1***Mar-13-2026=1***Mar-24-2026=1***Apr-11-2026=4***Apr-14-2026=1***Apr-20-2026=1' WHERE job_id'1426332'  
0.0007   UPDATE employer_jobs SET monthly_hits '***Jul-2025=1753***Aug-2025=132***Sep-2025=79***Oct-2025=28***Nov-2025=19***Dec-2025=20***Jan-2026=8***Feb-2026=8***Mar-2026=7***Apr-2026=6' WHERE job_id'1426332'  
0.0008   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1426332' 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` = 1426332 
0.0020   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '412064'
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)