Procore/Construction/Bookkeeping Position

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

TYPE OF WORK

Full Time

WAGE / SALARY

N/A

HOURS PER WEEK

40

DATE UPDATED

Apr 24, 2026

JOB OVERVIEW

Pay: ?300.00 - ?600.00 per hour

Job description:

Role Overview

We are hiring a detail-obsessed project coordinator/bookkeeper to manage the financial and administrative side of active construction projects using Procore.

This is not a basic VA role. You will be responsible for keeping projects financially organized, tracking costs, and making sure nothing slips through the cracks.

If you don’t have real Procore experience, this is not a fit.


Key Responsibilities

Manage project financials and documentation inside Procore
Track budgets, job costs, and cost codes across multiple projects
Process and manage subcontractor invoices and vendor bills
Assist with commitments, change orders, and contract tracking
Ensure all project data in Procore is accurate and up to date
Reconcile project costs with accounting records
Support monthly job cost reporting and financial summaries
Coordinate with project managers, vendors, and internal team
Identify cost overruns or discrepancies early


Requirements (Non-Negotiable)

2+ years of hands-on experience using Procore
2+ years of construction accounting and job costing
Experience with budgets, change orders, and cost tracking
Familiar with U.S. construction workflows (preferred)
Experience with Xero/QuickBooks or similar accounting software (bonus)
High attention to detail (errors directly impact project profitability)
Strong written and spoken English
Reliable internet and ability to work U.S. business hours (or overlap)


What We’re Looking For

Someone who owns their role and doesn’t need constant direction
Someone who can catch mistakes before they become expensive problems
Someone comfortable working in a fast-paced construction environment
Someone who understands that clean numbers = profitable projects


Compensation

Competitive salary (based on experience)
Long-term role with growth opportunity

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0010
Controller Execution Time ( Jobseekers / Job )  0.2002
Total Execution Time  0.2022
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,512,944 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/procore-construction-bookkeeping-position-1631271
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.1916 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0005   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1631271
 LIMIT 1 
0.0057   SELECT *
FROM `employers`
WHERE `employer_id` = 825855
 LIMIT 1 
0.1774   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` = 1631271
AND `misc`.`idIS NULL 
0.0006   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-06-27',ej.date_added) duration_daysDATEDIFF('2026-06-27',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-27',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1631271' 
0.0030   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1631271 
0.0013   UPDATE employer_jobs SET hit_counts '***Apr-24-2026=937***Apr-25-2026=80***Apr-26-2026=57***Apr-27-2026=84***Apr-28-2026=38***Apr-29-2026=24***Apr-30-2026=16***May-01-2026=10***May-02-2026=7***May-03-2026=7***May-04-2026=29***May-05-2026=3***May-06-2026=8***May-07-2026=6***May-08-2026=3***May-09-2026=4***May-10-2026=1***May-11-2026=6***May-12-2026=5***May-13-2026=6***May-14-2026=1***May-15-2026=4***May-16-2026=6***May-17-2026=8***May-18-2026=3***May-19-2026=3***May-20-2026=6***May-21-2026=2***May-22-2026=5***May-23-2026=5***May-24-2026=4***May-25-2026=2***May-26-2026=6***May-27-2026=2***May-28-2026=5***May-29-2026=3***May-31-2026=1***Jun-01-2026=5***Jun-02-2026=2***Jun-03-2026=3***Jun-04-2026=5***Jun-05-2026=7***Jun-06-2026=2***Jun-07-2026=2***Jun-08-2026=5***Jun-09-2026=4***Jun-10-2026=4***Jun-11-2026=5***Jun-12-2026=1***Jun-13-2026=3***Jun-14-2026=3***Jun-15-2026=3***Jun-16-2026=3***Jun-17-2026=1***Jun-18-2026=2***Jun-19-2026=1***Jun-20-2026=1***Jun-27-2026=1' WHERE job_id'1631271'  
0.0010   UPDATE employer_jobs SET monthly_hits '***Apr-2026=1236***May-2026=161***Jun-2026=63' WHERE job_id'1631271'  
0.0005   SELECT date_sent
                FROM 
`jobseeker_sent_emails`
                
WHERE jobseeker_id NULL
                  
AND job_id 1631271
                  
AND status LIKE 'sent%'
                
ORDER BY id DESC
                LIMIT 1 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1631271 
0.0004   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '825855'
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)