Senior Bookkeeper

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

TYPE OF WORK

Full Time

SALARY

$600-1000 USD/mo

HOURS PER WEEK

30

DATE UPDATED

Feb 4, 2026

JOB OVERVIEW

Connect Social (connectsocial.co) is a US marketing agency that manages paid media, CRO, email, and SMS for eCommerce brands. We are hiring a meticulous, proactive Bookkeeper to own our day-to-day accounting, monthly close, client invoicing, and collections. Our current volume is about 1,000 transactions per month across bank accounts, credit cards, Stripe and wire payments.

You will build a clean, audit-ready set of books, reconcile daily, shorten DSO through structured follow-ups, and deliver accurate financials by the fifth business day each month.

Core Responsibilities

Daily and Weekly

Import, categorize, and reconcile all bank, card, Stripe and PayPal transactions. Maintain zero uncategorized or unreconciled items older than 7 days.

Maintain and improve the Chart of Accounts suitable for an agency with retainers, performance fees, pass-through costs, contractor payments, and software tools.

Create and send client invoices with correct terms, tax treatment, and back-up detail.

Monitor AR aging. Execute structured dunning and outreach to collect overdue invoices.

Track AP, vendor bills, and subscriptions. Prepare weekly payment runs for approval.

Maintain documentation: receipts, contracts, SOWs, and support for each transaction.

Keep a live cash tracker and 12-week cash flow forecast.

Monthly and Quarterly Close

Close the month by the 5th business day with reconciled accounts, deferred revenue, prepaids, accruals, and amortization entries.

Prepare monthly financial package: P&L, Balance Sheet, Cash Flow, AR Aging, AP Aging, Budget vs Actual, and Client Profitability.

Reconcile Stripe payouts and fees to invoices and sales receipts.

Match pass-through media costs and subcontractor invoices to client billings.

Provide variance analysis with concise explanations and corrective recommendations.

Coordinate with CPA for tax readiness and year-end adjustments.

AR Collections and Overdue Payment Recovery

Own collections end to end while preserving client relationships.

Implement and run this cadence for all invoices:

3 days before due: friendly reminder with invoice link.

On due date: confirmation and quick-pay options.

3 days past due: first late reminder with copy of invoice and help offer.

7 days past due: second reminder, propose payment plan if needed.

14 days past due: third reminder, escalate to phone call, inform AM.

21 days past due: notice of potential pause of services until payment.

30 days past due: final notice and manager escalation; prepare collections packet if required.

Log every touchpoint in our tracker/CRM and maintain clean AR notes.

Recommend autopay or deposit terms for at-risk accounts.

Process and Controls

Maintain SOPs for bookkeeping, close, billing, and collections.

Set and monitor user permissions in accounting and payment systems.

Ensure secure document handling and NDA compliance.

Continuously improve speed, accuracy, and reporting quality.

KPIs and SLAs

Month close delivered by the 5th business day.

100 percent of bank, card, Stripe accounts reconciled weekly.

Zero unreconciled or uncategorized transactions older than 7 days.

AR over 30 days kept below 10 percent of total AR.

DSO improvement month over month, target under 25 days.

Financial package accuracy at or above 99 percent based on QA checks.

On-time weekly cash flow forecast and AR status update.

Tools You Should Know

QuickBooks Online or Xero, Stripe, PayPal, Wise, ---------- or equivalent.

Google Sheets or Excel for models, imports, and templates.

Basic CRM experience for AR notes and coordination with Account Managers.

Bonus: familiarity with agency finance, retainers plus percent-of-spend fees, and pass-through media costs.

Minimum Qualifications

3 plus years of full-cycle bookkeeping with strong monthly close experience for a US-based company.

Prior success handling AR collections professionally and reducing DSO.

Excellent written and spoken English.

Extreme attention to detail, strong organization, and proactive communication.

Reliable internet, secure work environment, and willingness to sign an NDA.

Ability to overlap at least 3 hours with US Eastern Time, Monday to Friday.

Nice to Have

Experience supporting a US CPA during tax season.

Experience with cost allocation by client, class, or project for profitability analysis.

Building simple dashboards in Sheets or Data Studio.

What We Offer

Stable, long-term role with growth to full-time if desired.

Competitive pay in PHP, 13th month, PH holidays, performance bonuses.

Clear processes, fast feedback, and a calm, respectful culture.

How to Apply

Please send the following in one PDF or Google Drive link:

A short note on how you would structure our month-end close for a 1,000-transaction agency.

A sample dunning sequence you have used, including subject lines and call script.

A simple 12-week cash forecast template you like.

A redacted example of a monthly financial package you prepared.

Your expected monthly salary in PHP for 25 to 30 hours per week, your available schedule, and your internet speed screenshot.

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.0186
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,506,392 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Senior-Bookkeeper-1571986
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0096 seconds)  (Hide)
0.0014   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1571986
 LIMIT 1 
0.0005   SELECT *
FROM `employers`
WHERE `employer_id` = 711080
 LIMIT 1 
0.0008   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1571986
AND `misc`.`idIS NULL 
0.0006   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-04-21',ej.date_added) duration_daysDATEDIFF('2026-04-21',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-21',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1571986' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1571986 
0.0018   UPDATE employer_jobs SET hit_counts '***Feb-04-2026=111***Feb-05-2026=228***Feb-06-2026=48***Feb-07-2026=20***Feb-08-2026=8***Feb-09-2026=18***Feb-10-2026=18***Feb-11-2026=6***Feb-12-2026=3***Feb-13-2026=6***Feb-14-2026=3***Feb-15-2026=1***Feb-16-2026=8***Feb-18-2026=1***Feb-19-2026=1***Feb-20-2026=1***Feb-22-2026=1***Feb-23-2026=4***Feb-24-2026=5***Feb-25-2026=9***Feb-26-2026=4***Feb-27-2026=3***Feb-28-2026=4***Mar-02-2026=7***Mar-03-2026=2***Mar-04-2026=2***Mar-05-2026=1***Mar-09-2026=3***Mar-10-2026=1***Mar-11-2026=2***Mar-12-2026=1***Mar-13-2026=1***Mar-19-2026=2***Mar-21-2026=1***Mar-23-2026=1***Mar-26-2026=3***Mar-30-2026=1***Apr-01-2026=2***Apr-03-2026=1***Apr-05-2026=1***Apr-06-2026=1***Apr-15-2026=1***Apr-16-2026=2***Apr-17-2026=4***Apr-21-2026=1' WHERE job_id'1571986'  
0.0007   UPDATE employer_jobs SET monthly_hits '***Feb-2026=511***Mar-2026=28***Apr-2026=13' WHERE job_id'1571986'  
0.0008   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1571986' AND status LIKE 'sent%' ORDER BY id DESC  
0.0002   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1571986 
0.0013   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '711080'
AND `date_added` >= '2022-06-08' 
0.0005   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)