Online Fitness Coach – Client Check-ins, Program Updates & Retention (Full-Time)

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

TYPE OF WORK

Full Time

SALARY

$600-$900/month

HOURS PER WEEK

40

DATE UPDATED

Sep 5, 2026

JOB OVERVIEW

FULL-TIME | LONG-TERM | WORK FROM HOME | $600-$900/month

We run an online fitness coaching business with around 140 active clients. Our head coach is at capacity. Clients are waiting too long for replies, check-ins are slipping, and some people who paid for a year have barely heard from us. That is the problem you are being hired to fix.

This is a real coaching seat, not a data-entry VA role. You will own a book of clients and be the person they hear from every week.

WHAT YOU WILL DO
- Run weekly check-ins for your assigned clients: review their numbers, photos and training logs, then write a specific reply that tells them what to change
- Answer client messages inside the coaching app (TrainHeroic) and keep response time under 12 hours
- Adjust training programs and nutrition targets based on what the check-in data actually shows
- Get on short video calls with clients when a message will not cut it
- Spot the clients going quiet before they go quiet, and pull them back in
- Keep clean notes on every client so nothing gets lost

WHAT WE NEED FROM YOU
- Real coaching experience. You have personally taken clients through fat loss or muscle gain and can talk about what you changed and why
- Solid grasp of programming and nutrition: progressive overload, deficits and surpluses, macros, how to adjust when someone stalls
- Excellent written English. You are the voice of the brand every single week
- Comfortable on camera and on calls with US-based clients
- Reliable internet, a quiet place to take calls, and hours that overlap the US
- Organised. Managing 40+ clients at once without dropping anyone is the actual skill here

NICE TO HAVE
- A certification (NASM, ISSA, ACE, or similar)
- Experience inside TrainHeroic, Trainerize, or a similar coaching app
- Your own training background

THE DETAILS
- Full-time, 40 hours per week
- $600-$900 per month depending on experience, paid monthly
- Long-term. We want someone who grows into a lead coach role, not a three-month stopgap
- Fully remote

HOW TO APPLY
Apply through OnlineJobs.ph and include all of the following in your application. Applications that skip these get deleted:

1. How many clients have you coached at once, and in which app?
2. Describe one client you coached from start to finish. What was their starting point, what did you change along the way, and where did they end up?
3. A client has not logged a workout in 10 days and is not answering messages. Write out exactly what you would send them.
4. What are your working hours in US Eastern Time?

Start your application with the word COACH so we know you read this to the end. Shortlisted applicants will be asked for a short video introduction.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0148
Total Execution Time  0.0162
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,500,920 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Online-Fitness-Coach-Client-Check-ins-Program-Updates-Retention-Full-Time-1723047
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 15 (0.0076 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1723047
 LIMIT 1 
0.0005   SELECT *
FROM `employers`
WHERE `employer_id` = 819165
 LIMIT 1 
0.0009   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1723047
AND `misc`.`idIS NULL 
0.0004   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1723047
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-09-07',ej.date_added) duration_daysDATEDIFF('2026-09-07',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-09-07',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1723047' 
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1723047 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1723047
AND `misc`.`idIS NULL 
0.0009   UPDATE employer_jobs SET hit_counts '***Sep-04-2026=2***Sep-05-2026=293***Sep-07-2026=1' WHERE job_id'1723047'  
0.0007   UPDATE employer_jobs SET monthly_hits '***Sep-2026=295' WHERE job_id'1723047'  
0.0004   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1723047' AND status LIKE 'sent%' ORDER BY id DESC  
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1723047 
0.0009   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '819165'
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)