Calling All Accountants & Finance Controllers! WE WANT YOU

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

TYPE OF WORK

Full Time

SALARY

$1,500-$2,000

HOURS PER WEEK

40

DATE UPDATED

Jul 3, 2026

JOB OVERVIEW

We're a fast-growing digital marketing agency looking for a Financial Controller to fully own our finance function — the books, the cash, and the numbers behind every decision we make. You'll report directly to the founder, take bookkeeping, payroll, and reporting off his plate entirely, and act as his right hand on everything financial as we scale across three countries.

This is not a data-entry seat inside a big finance team. You are the finance team — with the mandate, tools, and direct access to build the function properly.

About us

OPT Digital is a Wellington, New Zealand-based agency helping local trades and home service businesses grow through search — across New Zealand, Australia, and the United States. We've grown quickly into a seven-figure run rate, we operate in three currencies (NZD, USD, AUD), and our goal by the end of 2026 is to be the most trusted name in Local SEO for service businesses in our markets.

One thing that makes us different: we build our own internal tools. Every department at OPT runs on custom dashboards and automations we've built in-house, and finance will be no exception — you'll work directly with the founder to build the finance dashboard and automations that remove the grind from your role.

Why this role exists

Right now, the founder is doing the reconciliation, payroll, and reporting himself. At our size, that's a bottleneck — and it's about to become a real problem as we scale. We need someone to take full ownership of the finance function: keep the books immaculate, keep cash flowing in on time, run payroll without a hitch, and give the founder numbers he can make decisions from the same day he asks.

If you've been a strong bookkeeper or senior accountant and you're ready to step up into a controller seat — where you own the function rather than execute someone else's process — this is that role.

What you'll own

1. The books. Day-to-day bookkeeping and reconciliation in Xero across bank feeds, Stripe, and other payment platforms. Accurate, consistent transaction coding. A chart of accounts restructured to reflect how the business actually operates, so reporting means something. A disciplined month-end close on a consistent rhythm — the books never fall behind.

2. The cash. Accounts receivable end to end: invoices organised and QA'd with the relevant account managers before they go out, overdue invoices chased the ---------- nt they slip, and follow-through until they're paid. Payroll for employees and contractors across multiple countries, run correctly and on time, reconciled back to the books. You're the reason money owed to us actually arrives and money we owe goes out cleanly.

3. The insight. P&L, balance sheet, and cash flow reporting on demand and at month-end. Cash flow and financial forecasts maintained and reviewed with the founder regularly. Spend analysis across the chart of accounts — you flag where we're overspending, where margins are drifting, and where cash pinch points are coming before they arrive. When something looks off, you say so early and plainly.

Who this role is for


You have 5+ years in bookkeeping/accounting, ideally including time as a finance manager, senior accountant, or controller for a business (or clients) doing seven figures annually
You have deep, current, hands-on Xero expertise — reconciliation, coding, chart of accounts, payroll, reporting. This is non-negotiable
Your fundamentals are rock solid: double-entry, accruals, and a genuine understanding of how the numbers connect
You've run payroll yourself, end to end, and reconciled it accurately
You're comfortable chasing money — following up overdue invoices firmly and professionally, and coordinating with account managers so nothing falls through the cracks
You can build and maintain a forecast, read what the numbers are saying, and explain it in plain English to a non-accountant
You communicate clearly in written English and can work directly with a founder without hand-holding
Strong bonus: CPA/CA qualification, NZ or AU accounting/payroll/tax experience, or multi-currency work across NZD, USD, and AUD


What we offer


$1,500–$2,000 USD/month depending on experience — and we'll go above the band for a qualified CPA/CA who can lead deeper analysis and forecasting
13th month pay
HMO allowance after your probation period
Paid time off plus paid Philippine public holidays
Fully remote — work from anywhere in the Philippines
Direct access to the founder, and a genuine seat at the table as we make growth decisions
Custom tools and automations built around your role — you tell us what would make the job easier, and we build it together
A finance function that is yours to own and shape, with a clear path to a head-of-finance seat as we scale


How to apply

We read every application that follows these instructions — and we skip every one that doesn't.


Use the subject line: CONTROLLER — [Your Name]
In your application, answer these three questions (a few sentences each is fine):

What's the largest set of books you've managed — roughly what annual revenue, and what did you own within it?
Describe your month-end close process in Xero, step by step, as you actually run it.
Tell us about a time you spotted a financial problem before it became one. What did you see, and what did you do?



Optional but strongly encouraged: include a short Loom or video (2–3 minutes) introducing yourself and walking us through your Xero experience. Applicants who do this go to the top of the pile.


We're reviewing applications now and will move quickly with the right candidates.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0221
Total Execution Time  0.0235
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,512,992 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Calling-All-Accountants-Finance-Controllers-WE-WANT-YOU-1681550
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0167 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0005   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1681550
 LIMIT 1 
0.0011   SELECT *
FROM `employers`
WHERE `employer_id` = 743181
 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` = 1681550
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-08-09',ej.date_added) duration_daysDATEDIFF('2026-08-09',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-09',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1681550' 
0.0008   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1681550 
0.0013   UPDATE employer_jobs SET hit_counts '***Jul-03-2026=1064***Jul-04-2026=145***Jul-05-2026=93***Jul-06-2026=111***Jul-07-2026=87***Jul-08-2026=69***Jul-09-2026=24***Jul-10-2026=17***Jul-11-2026=16***Jul-12-2026=13***Jul-13-2026=16***Jul-14-2026=27***Jul-15-2026=18***Jul-16-2026=8***Jul-17-2026=12***Jul-18-2026=11***Jul-19-2026=11***Jul-20-2026=5***Jul-21-2026=8***Jul-22-2026=4***Jul-23-2026=16***Jul-24-2026=11***Jul-25-2026=5***Jul-26-2026=4***Jul-27-2026=15***Jul-28-2026=15***Jul-29-2026=13***Jul-30-2026=8***Jul-31-2026=7***Aug-01-2026=8***Aug-02-2026=4***Aug-03-2026=5***Aug-04-2026=3***Aug-05-2026=5***Aug-06-2026=11***Aug-07-2026=6***Aug-08-2026=4***Aug-09-2026=1' WHERE job_id'1681550'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Jul-2026=1852***Aug-2026=47' WHERE job_id'1681550'  
0.0017   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1681550' 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` = 1681550 
0.0085   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '743181'
AND `date_added` >= '2022-06-08' 
0.0004   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)