oice AI Engineer — Vapi / Retell (Dental Appointment Booking)

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

TYPE OF WORK

Any

SALARY

800

HOURS PER WEEK

TBD

DATE UPDATED

Aug 22, 2026

JOB OVERVIEW

Build, configure and deploy inbound and outbound voice agents on Vapi and/or Retell
Write and maintain custom tools / functions the agent calls mid-conversation (check availability, create appointment, reschedule, cancel, look up patient, take a message)
Integrate with practice management systems and calendar APIs — REST endpoints, webhooks, auth headers, token refresh, pagination, rate limits

Tune prompts, guardrails and conversation flows to cut hallucinated bookings, mis-heard names, and wrong dates to near zero

Configure transcribers and voices, including multilingual handling (a portion of our callers are not native English speakers)
Reduce latency and interruption/barge-in problems so calls feel natural

Set up call transfer, voicemail detection, after-hours routing and SMS/WhatsApp follow-up

Review call transcripts and recordings daily, log failure modes, and fix them

Document everything you build

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0007
Controller Execution Time ( Jobseekers / Job )  0.0292
Total Execution Time  0.0304
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,480,792 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/oice-AI-Engineer-Vapi-Retell-Dental-Appointment-Booking-1714625
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0235 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0005   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1714625
 LIMIT 1 
0.0013   SELECT *
FROM `employers`
WHERE `employer_id` = 123388
 LIMIT 1 
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` = 1714625
AND `misc`.`idIS NULL 
0.0004   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 '1714625' 
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1714625 
0.0007   UPDATE employer_jobs SET hit_counts '***Aug-22-2026=699***Aug-23-2026=2' WHERE job_id'1714625'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Aug-2026=701' WHERE job_id'1714625'  
0.0003   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1714625' 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` = 1714625 
0.0174   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '123388'
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)