Bookkeeper

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

TYPE OF WORK

Part Time

WAGE / SALARY

DOE

HOURS PER WEEK

4

DATE UPDATED

Jun 19, 2026

JOB OVERVIEW

Role Overview

We are a growing digital marketing agency looking for a detail-oriented, reliable, and experienced Part-Time Bookkeeper to manage our accounts. This is a remote, ongoing position requiring approximately 5 hours per week.

You will be responsible for keeping our books clean, categorizing agency expenses (contractor payments, software subscriptions like BrightLocal/Local Dominator, and marketing costs), and ensuring our financial records are accurate and up-to-date.

Key Responsibilities

Expense Categorization: Accurately categorize all incoming and outgoing transactions weekly in Zoho Books (including recurring software subscriptions, payroll, and client payments).

Account Reconciliation: Reconcile bank accounts, credit cards, and payment processors (e.g., Stripe, PayPal) on a monthly basis.

Financial Reporting: Generate monthly Profit & Loss (P&L) statements and balance sheets so we can track our monthly margins.

Payroll Tracking: Keep track of hours and payments for our virtual assistant team.

Invoice Management: Monitor client subscription billings and flag any failed payments or outstanding invoices.

Required Skills & Experience

Experience: At least 2+ years of professional bookkeeping experience, preferably working with digital agencies, SaaS companies, or online service providers.

Tools: Expert-level knowledge of Zoho Books (experience with Zoho Expense or other tools in the Zoho suite is a major plus).

Detail-Oriented: Exceptional organizational skills. You should be someone who spots a $5 discrepancy and wants to solve it.

Communication: Excellent written English. Since this is a 5-hour-a-week role, clear and proactive communication via email or Slack is vital.

Trustworthy: High level of integrity, as you will be dealing with sensitive financial data. (References may be requested).

Hours, Schedule & Compensation

Hours: Consistently 5 hours per week.

Schedule: Highly flexible. You can set your own hours as long as reconciliations and reports are completed on schedule every month.

Rate: Please submit your desired hourly rate with your application.

How To Apply (Screening Instructions)

To ensure you read this job description entirely and have the attention to detail required for bookkeeping, please start your cover letter by answering these three questions:

Briefly describe your experience using Zoho Books for service-based businesses or digital marketing agencies. Are you Zoho certified?

If we pay our virtual assistants on the 1st and 15th of the month, how would you prefer to receive and track their hours/invoices?

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0282
Total Execution Time  0.0294
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,519,744 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Bookkeeper-1672212
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0224 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1672212
 LIMIT 1 
0.0014   SELECT *
FROM `employers`
WHERE `employer_id` = 698296
 LIMIT 1 
0.0116   SELECT COUNT(DISTINCT t.id) as cnt
FROM 
`t_thread` `t`
INNER JOIN `t_message` `mON `t`.`id` = `m`.`thread_id`
INNER JOIN `t_message_employer` `eON `m`.`id` = `e`.`message_id`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1672212
AND `misc`.`idIS NULL 
0.0018   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-06-23',ej.date_added) duration_daysDATEDIFF('2026-06-23',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-06-23',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1672212' 
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1672212 
0.0019   UPDATE employer_jobs SET hit_counts '***Jun-19-2026=1740***Jun-20-2026=268***Jun-23-2026=1' WHERE job_id'1672212'  
0.0007   UPDATE employer_jobs SET monthly_hits '***Jun-2026=2007' WHERE job_id'1672212'  
0.0009   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1672212' 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` = 1672212 
0.0022   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '698296'
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)