GoHighLevel Automation Engineer (Workflows, Webhooks, AI Integrations)

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

TYPE OF WORK

Part Time

SALARY

$5-8 per hour

HOURS PER WEEK

20

DATE UPDATED

May 26, 2026

JOB OVERVIEW

We're Warrior Martial Arts — a 3-studio martial arts business in New Jersey, opening our 4th location this summer. We run on GoHighLevel (3 sub-accounts) and we're scaling our automation faster than one person can keep up with.

We're hiring a GoHighLevel Automation Engineer who lives and breathes GHL — not a generalist VA who has "used HighLevel before."

WHAT YOU'LL OWN:

- Build and optimize GHL workflows across 3 sub-accounts (intro-lesson booking, no-show recovery, membership nurture, win-back, referral, event campaigns)
- Build inbound and outbound webhooks (Gymdesk ? GHL, GHL ? internal systems, GHL ? AI endpoints)
- Wire GHL into our AI stack — we use Claude Code, MCP servers, and custom Python scripts on GitHub Actions. You'll help design the contracts between GHL workflows and AI-driven tools.
- Build out WARRIOR UNIVERSITY courses inside GHL (we have the courses-import API documented)
- Maintain custom fields, pipelines, opportunity stages, calendars, and SMS/email templates across 3 sub-accounts without breaking what's already live
- Audit existing automations weekly and proactively suggest improvements — we want someone with opinions, not someone waiting for tickets
- Document everything you build so the team can troubleshoot when you're off

WHAT YOU MUST HAVE:

- 2+ years building inside GoHighLevel as your daily driver (not a side tool)
- Deep fluency with GHL workflows, triggers, custom fields, snapshots, sub-account architecture, and the GHL API (PIT bearer auth)
- Webhook experience — both directions, with query string parsing and conditional routing
- Comfortable reading and writing JSON, basic JavaScript inside workflow custom code actions, and at least one of: Python, Make/Zapier, n8n
- Working knowledge of AI tools — ChatGPT/Claude at minimum, ideally Claude Code, MCP, or API integrations between GHL and an LLM
- Excellent written English. We work async over Slack and you'll be writing specs, not just executing tickets.

BONUS POINTS:

- You've used Claude Code or built MCP servers
- You've worked with Gymdesk, Stripe, or any gym/studio CRM
- You can record a Loom walking through a workflow you built and explain WHY you made the design choices you did
- You have opinions on when NOT to use a GHL workflow (vs. external code)

ABOUT THE WORK:

- Async-first. We use Slack for daily communication and Loom for walkthroughs.
- Expect ~20 hours/week to start, with clear room to grow to full-time within 60 days.
- We pay on time, every time, via [your payment method].
- You'll work directly with the owner (me, Michael) and our internal AI team — not through layers of project managers.

HOW TO APPLY:

1) At the very top of your reply, type the word: WARRIOR-GHL-2026
(If you skip this, I won't read further. This is a filter.)

2) Answer these 3 questions briefly (no need to write a novel):
a) What's the most complex GHL workflow you've ever built? In 3-5 sentences, describe what it does and the trickiest part of the build.
b) Walk me through how you'd build a webhook that takes a new lead from an external form, enriches it via an AI call, and routes them to a different GHL pipeline stage based on the AI response.
c) What's one thing you'd improve about how most agencies use GHL?

3) Send a 2-5 minute Loom of you screen-sharing a GHL sub-account you've worked in, walking through one workflow you're proud of.

4) Tell me your hourly rate in USD and how many hours per week you're available.

Applications without the code word, Loom, or all 3 answers will be skipped. We're hiring slow on purpose — we want one excellent person, not three okay ones.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0169
Total Execution Time  0.0183
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,507,472 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/GoHighLevel-Automation-Engineer-Workflows-Webhooks-AI-Integrations-1655371
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0114 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1655371
 LIMIT 1 
0.0008   SELECT *
FROM `employers`
WHERE `employer_id` = 582978
 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` = 1655371
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-08-23',ej.date_added) duration_daysDATEDIFF('2026-08-23',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-23',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1655371' 
0.0011   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1655371 
0.0024   UPDATE employer_jobs SET hit_counts '***May-26-2026=363***May-27-2026=233***May-28-2026=90***May-29-2026=39***May-30-2026=23***May-31-2026=17***Jun-01-2026=22***Jun-02-2026=26***Jun-03-2026=15***Jun-04-2026=8***Jun-05-2026=11***Jun-06-2026=12***Jun-07-2026=8***Jun-08-2026=10***Jun-09-2026=10***Jun-10-2026=10***Jun-11-2026=7***Jun-12-2026=6***Jun-13-2026=6***Jun-14-2026=4***Jun-15-2026=5***Jun-16-2026=6***Jun-17-2026=8***Jun-18-2026=3***Jun-19-2026=1***Jun-20-2026=4***Jun-21-2026=2***Jun-22-2026=5***Jun-23-2026=5***Jun-24-2026=6***Jun-25-2026=1***Jun-26-2026=2***Jun-27-2026=10***Jun-28-2026=2***Jun-29-2026=2***Jun-30-2026=1***Jul-01-2026=3***Jul-02-2026=2***Jul-03-2026=4***Jul-04-2026=4***Jul-06-2026=5***Jul-07-2026=3***Jul-08-2026=2***Jul-09-2026=4***Jul-10-2026=1***Jul-11-2026=2***Jul-12-2026=2***Jul-14-2026=6***Jul-15-2026=3***Jul-16-2026=4***Jul-20-2026=3***Jul-21-2026=4***Jul-22-2026=4***Jul-23-2026=5***Jul-24-2026=8***Jul-25-2026=6***Jul-26-2026=3***Jul-28-2026=5***Jul-29-2026=4***Jul-30-2026=4***Jul-31-2026=5***Aug-01-2026=4***Aug-03-2026=3***Aug-04-2026=2***Aug-05-2026=5***Aug-06-2026=1***Aug-07-2026=3***Aug-08-2026=1***Aug-09-2026=2***Aug-10-2026=2***Aug-12-2026=3***Aug-13-2026=3***Aug-14-2026=3***Aug-15-2026=4***Aug-16-2026=1***Aug-17-2026=6***Aug-18-2026=3***Aug-19-2026=1***Aug-20-2026=4***Aug-21-2026=3***Aug-22-2026=1***Aug-23-2026=1' WHERE job_id'1655371'  
0.0008   UPDATE employer_jobs SET monthly_hits '***May-2026=765***Jun-2026=218***Jul-2026=96***Aug-2026=56' WHERE job_id'1655371'  
0.0014   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1655371' 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` = 1655371 
0.0017   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '582978'
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)