Remote Construction Bookkeeper / Cost Analyst

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

TYPE OF WORK

Part Time

SALARY

$8/Hour starting rate

HOURS PER WEEK

20

DATE UPDATED

Apr 27, 2026

JOB OVERVIEW

I'm the owner of a real estate development project in Guanacaste, Costa Rica — we're currently in active construction and I need a detail-oriented bookkeeper/cost analyst to support the financial tracking side of the build.

Here's what the role involves:

• Track all spending against an approved construction budget on an ongoing basis (construction kicks off in the next couple of weeks)
• Go through existing invoices and build a categorized "already spent" analysis — organizing all purchases to date by cost category (materials, labor, equipment, etc.)
• Reconcile invoices against budget line items and flag any variances or discrepancies
• Support periodic audits to ensure spending stays aligned with the approved detailed budget
• Work within MAWI project management software (Spanish-language interface) and Google Sheets / Excel

Important context: All invoices and software are in Spanish, as we operate in Costa Rica. The project owners communicate in English. We need someone who is either bilingual or comfortable using AI tools to translate documents accurately.

This would start as a part-time remote role with the potential to grow as the project scales. I'm looking for someone reliable, organized, and experienced with construction accounting or cost control — not just general bookkeeping.

Could you tell me a bit about your experience with construction projects specifically, and whether you've worked with Spanish-language documents or software before?

Looking forward to hearing from you.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0009
Controller Execution Time ( Jobseekers / Job )  0.0148
Total Execution Time  0.0163
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,488,704 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Remote-Construction-Bookkeeper-Cost-Analyst-1633554
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0090 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1633554
 LIMIT 1 
0.0009   SELECT *
FROM `employers`
WHERE `employer_id` = 927340
 LIMIT 1 
0.0020   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1633554
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 '1633554' 
0.0007   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1633554 
0.0007   UPDATE employer_jobs SET hit_counts '***Apr-27-2026=1041***Apr-28-2026=297***Apr-29-2026=102***Apr-30-2026=59***May-01-2026=61***May-02-2026=29***May-03-2026=30***May-04-2026=37***May-05-2026=34***May-06-2026=5***May-07-2026=19***May-08-2026=11***May-09-2026=9***May-10-2026=15***May-11-2026=13***May-12-2026=7***May-13-2026=21***May-14-2026=8***May-15-2026=12***May-16-2026=8***May-17-2026=14***May-18-2026=12***May-19-2026=6***May-20-2026=6***May-21-2026=9***May-22-2026=7***May-23-2026=7***May-24-2026=13***May-25-2026=4***May-26-2026=9***May-27-2026=4***May-28-2026=4***May-29-2026=9***May-30-2026=3***May-31-2026=7***Jun-01-2026=2***Jun-02-2026=4***Jun-03-2026=3***Jun-04-2026=3***Jun-05-2026=4***Jun-06-2026=1***Jun-07-2026=2***Jun-08-2026=9***Jun-10-2026=10***Jun-11-2026=3***Jun-12-2026=5***Jun-13-2026=8***Jun-14-2026=8***Jun-15-2026=3***Jun-16-2026=4***Jun-17-2026=4***Jun-18-2026=3***Jun-19-2026=3***Jun-20-2026=5***Jun-21-2026=1***Jun-22-2026=2***Jun-23-2026=4***Jun-24-2026=2***Jun-25-2026=5***Jun-26-2026=1***Jun-27-2026=1***Jun-28-2026=2***Jun-29-2026=6***Jun-30-2026=3***Jul-01-2026=10***Jul-02-2026=2***Jul-03-2026=6***Jul-04-2026=5***Jul-05-2026=4***Jul-06-2026=1***Jul-07-2026=1***Jul-08-2026=1***Jul-09-2026=2***Jul-10-2026=4***Jul-11-2026=3***Jul-12-2026=5***Jul-13-2026=4***Jul-14-2026=3***Jul-15-2026=1***Jul-16-2026=2***Jul-17-2026=2***Jul-19-2026=1***Jul-20-2026=2***Jul-21-2026=3***Jul-24-2026=2***Jul-25-2026=1***Jul-26-2026=4***Jul-27-2026=2***Jul-28-2026=4***Jul-29-2026=2***Jul-31-2026=8***Aug-01-2026=4***Aug-02-2026=2***Aug-03-2026=1***Aug-04-2026=3***Aug-05-2026=1***Aug-06-2026=1***Aug-07-2026=1***Aug-08-2026=2***Aug-09-2026=1' WHERE job_id'1633554'  
0.0005   UPDATE employer_jobs SET monthly_hits '***Apr-2026=1498***May-2026=432***Jun-2026=111***Jul-2026=85***Aug-2026=16' WHERE job_id'1633554'  
0.0011   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1633554' 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` = 1633554 
0.0008   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '927340'
AND `date_added` >= '2022-06-08' 
0.0004   select from teasers 
0.0003   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)