WORKFORCE connector
Last updated
The WORKFORCE connector lets a candidate or a dental office use an AI assistant for dental staffing. A candidate can finish a profile, share availability, and work with shifts. An office can finish its profile, request temporary or permanent staff, and handle the shifts it owns. The assistant acts only on the account that signed in.
How to connect
Add a custom connector in Claude, ChatGPT, Muse, or Grok. The same address works for any assistant that connects to a remote MCP server with OAuth.
- Server URL: https://app.workforcedentalstaffing.com/api/agent/mcp
- Sign in with Google, Apple, or the 6-digit code emailed to your WORKFORCE account.
- A candidate sign-in sees candidate tools. An office sign-in sees office tools.
- Do not paste access tokens or one-time codes into the chat.
Connector icon (512×512 PNG): https://app.workforcedentalstaffing.com/brand/wfds-app-icon-512.png.
Sensitivity
- Read — looks at this account and does not change it.
- Write — saves a change on this account and does not message other people.
- Sensitive-write — can book or cancel work, change a paid plan, or notify someone else. When a tool accepts confirm, false previews and writes nothing. True commits.
Some assistants hide tools that send a verification text, change a paid plan, or handle a government ID. If a tool below is missing in that assistant, use the WORKFORCE app or another assistant for that step.
Candidate tools
These run only for the signed-in candidate. They cannot search other people or other offices.
Get my setup checklist
get_candidate_setup_pack
Read
Return the WORKFORCE candidate setup pack for this token subject, including status (percent, missing[]) and the scoped pack2 cell auto-scoped from the saved profile.
Inputs
- profession — string. HYGIENIST, DENTAL_ASSISTANT, EFDA, DENTAL_RECEPTIONIST, ASSOCIATE, or a signup title. Required with region to fetch the one pack2 checklist cell.
- region — string. Province / state (e.g. British Columbia, BC, CA-BC).
- country — string
- city — string
Output
Returns JSON for this account. It does not change the account or contact anyone.
Get Candidate Profile Schema
get_candidate_profile_schema
Read
Return the required fields for a complete WORKFORCE candidate profile, plus the full required + optional JurisdictionProfileRule checklist once profession and region are known (args or this token’s candidate).
Inputs
- profession — string. HYGIENIST, DENTAL_ASSISTANT, EFDA, DENTAL_RECEPTIONIST, ASSOCIATE, or a signup title.
- region — string. Province / state (e.g. British Columbia, BC, CA-BC).
- country — string
- city — string
- assistantLevel — string
- expandedFunctionAssistant — boolean or string
- foreignTrainedDentist — boolean or string
Output
Returns JSON for this account. It does not change the account or contact anyone.
Get my Candidate Profile
get_my_candidate_profile
Read
Read this token’s WORKFORCE candidate profile only (subject Candidate.id).
Inputs
None.
Output
Returns JSON for this account. It does not change the account or contact anyone.
Create or update my profile
create_or_update_my_candidate_profile
Sensitive-write
Idempotent create/update of this token’s WORKFORCE candidate only (subject Candidate.id).
Inputs
- firstName — string
- lastName — string
- preferredFirstName — string
- email — string
- phone — string
- profession — string
- expandedFunctionAssistant — boolean or string
- assistantLevel — string
- foreignTrainedDentist — boolean or string
- addressLine1 — string
- addressLine2 — string
- city — string
- region — string
- postalCode — string
- country — string
- latitude — number
- longitude — number
- photoUrl — string. avatars public URL from upload_my_candidate_document (kind=photo) or an existing avatars path.
- bio — string
- professionStartedYear — integer
- professionStartedMonth — integer
- emergencyContact — string
- emergencyPhone — string
- familiarDentalSoftware — array
- resumeUrl — string. candidate-docs public URL from upload_my_candidate_document (kind=resume). Required for every profession.
- licenseUrl — string. This candidate’s file already in WORKFORCE storage (candidate-docs public/sign URL or candidate-docs/{userId}/… path). Any other URL is refused. Prefer upload_my_candidate_document, which attaches the license itself.
- licenseNumber — string
- licenseJurisdiction — string
- licenseExpiresAt — string
- certUrl — string. This candidate’s file already in WORKFORCE storage. Any other URL is refused — use upload_my_candidate_document. Requires certCode or requirementKey.
- certCode — string. Certificate catalog code (cpr, harp, ndaeb_certificate, level_1_education, efda, whmis, ipac, bbp_certificate).
- requirementKey — string. Checklist id: cert:cpr, ontario_da_doc:l1_canadian:harp, efda:cert:efda, efda:license (use licenseUrl for EFDA license).
- certificates — array
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.
Get my Profile Status
get_my_profile_status
Read
Full checklist for this candidate’s profession + region only (not every jurisdiction): percent, missing required fields, verification, checklist.required and checklist.optional.
Inputs
None.
Output
Returns JSON for this account. It does not change the account or contact anyone.
Create an upload link for my document
create_my_candidate_upload_slot
Write
Create a short-lived upload link for one document on the signed-in candidate’s own WORKFORCE profile (profile photo, resume, dental licence, or course certificate).
Inputs
- kind (required) — string. Which profile document this is: photo (profile picture), resume, license (dental licence or registration), cert (a course certificate; also pass certCode or requirementKey), or a certificate shortcut (cpr, harp, ndaeb, diploma, efda_license, efda_credential, whmis, ipac, bbp).
- certCode — string. Certificate code when kind is cert, for example cpr or harp.
- requirementKey — string. Checklist item this file satisfies, for example cert:cpr or efda:license.
- filename (required) — string. Original file name, for example resume.pdf.
- mimeType — string. File type, for example application/pdf or image/jpeg.
Output
Returns JSON after saving a change on this account. It does not message other people.
Upload a document to my profile
upload_my_candidate_document
Sensitive-write
Upload one document to the signed-in candidate’s own WORKFORCE profile and attach it: profile photo, resume, dental licence, or course certificate.
Inputs
- kind (required) — string. Which profile document this is: photo (profile picture), resume, license (dental licence or registration), cert (a course certificate; also pass certCode or requirementKey), or a certificate shortcut (cpr, harp, ndaeb, diploma, efda_license, efda_credential, whmis, ipac, bbp).
- certCode — string. Certificate code when kind is cert, for example cpr or harp.
- requirementKey — string. Checklist item this file satisfies, for example cert:cpr or efda:license.
- filename (required) — string. Original file name, for example resume.pdf.
- mimeType — string. File type, for example application/pdf or image/jpeg.
- attachmentId — string. https URL of the chat attachment. The server downloads the full file.
- fileUrl — string. https URL of the chat attachment, or a WORKFORCE Storage URL this candidate already owns.
- storagePath — string. The storagePath returned by create_my_candidate_upload_slot after the file was sent to putUrl.
- contentBase64 — string. Legacy fallback for very small files only. Prefer fileUrl, attachmentId, or storagePath.
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.
Draft a bio from the resume
generate_bio_from_resume
Sensitive-write
Draft a first-person bio from this candidate’s latest RESUME (or a resumeUrl that is their Storage object).
Inputs
- resumeUrl — string. Optional. Must parse to this candidate’s avatars / candidate-docs / documents object.
- regenerate — boolean or string. If true, ignore the cached draft and re-extract + re-draft from the resume file.
- force — boolean or string. Alias of regenerate.
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.
Broadcast temporary availability
broadcast_temp_availability
Sensitive-write
Publish this candidate’s temp availability broadcast (the Availability pin offices and recruiters use for outreach).
Inputs
- dateKeys — array. INDIVIDUAL_DAYS mode (default): the days, YYYY-MM-DD. Required unless mode is RECURRING or BLOCK, or availabilityKind is PERM.
- availabilityKind — string. Not for associate dentists. TEMP (default) = temp days only; PERM = a permanent job only (no dateKeys); BOTH = temp dateKeys plus a permanent job. Ask first: temp days only, a permanent job, or both?
- permNote — string. Required for PERM / BOTH: at least 100 characters (about two sentences) on the schedule, office, culture and type of work they want. Offices read it next to their bio. Phone numbers and emails are removed.
- mode — string. Associate dentists only for RECURRING / BLOCK. Default INDIVIDUAL_DAYS.
- weekdays — array. RECURRING (required) / BLOCK (optional, empty = Mon–Fri): Monday…Sunday or 0 (Sun)…6 (Sat).
- startDateKey — string. RECURRING / BLOCK start, YYYY-MM-DD.
- endDateKey — string. RECURRING (required) / BLOCK (optional; omit for open-ended) end, YYYY-MM-DD, up to 9 months ahead.
- exceptionDateKeys — array. Days carved out of a RECURRING / BLOCK broadcast, YYYY-MM-DD.
- commuteKm — number
- commuteDistanceKm — number
- center — object
- confirm — boolean. false or omitted previews and writes nothing. true publishes.
- idempotencyKey — string
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.
Set my Commute
set_my_commute
Sensitive-write
Set this candidate’s commute distance.
Inputs
- commuteDistanceKm — number
- commuteKm — number
- serviceAreaMode — string
- licensedRegions — array
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.
Set my Weekly Availability
set_my_weekly_availability
Sensitive-write
Set this candidate’s recurring weekly availability (CandidateWeeklyAvailability).
Inputs
- days (required) — array
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.
Get my Weekly Availability
get_my_weekly_availability
Read
Read this candidate’s recurring weekly availability.
Inputs
None.
Output
Returns JSON for this account. It does not change the account or contact anyone.
Flag permanent-job interest
flag_perm_interest
Sensitive-write
Turn permanent-role interest on or off for this candidate (jobVisibility).
Inputs
- interested (required) — boolean or string
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.
Get my Broadcast Status
get_my_broadcast_status
Read
Read this candidate’s current availability broadcast.
Inputs
None.
Output
Returns JSON for this account. It does not change the account or contact anyone.
Search Available Shifts
search_available_shifts
Read
Search open shifts for this candidate.
Inputs
- date — string
- from — string
- to — string
- kind — string
- filter — string
- limit — integer
Output
Returns JSON for this account. It does not change the account or contact anyone.
Get Job Details
get_job_details
Read
Details for one open shift this candidate can see.
Inputs
- jobRef (required) — string
Output
Returns JSON for this account. It does not change the account or contact anyone.
List my Assignments
list_my_assignments
Read
This candidate’s booked shifts.
Inputs
- date — string
- from — string
- to — string
- status — string
Output
Returns JSON for this account. It does not change the account or contact anyone.
Get Assignment Details
get_assignment_details
Read
One booked shift, including office name, street address, entrance, and parking.
Inputs
- assignmentRef (required) — string
Output
Returns JSON for this account. It does not change the account or contact anyone.
Apply to a shift
apply_to_job
Sensitive-write
Apply the signed-in candidate to one open WORKFORCE shift.
Inputs
- jobRef (required) — string
- acknowledgeNewGradRate — boolean
- acknowledgeSameWorkerDays — boolean
- confirm — boolean. False previews and writes nothing. True commits.
- idempotencyKey — string
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.
List my Applications
list_my_applications
Read
List this candidate’s WORKFORCE applications.
Inputs
- status — string
- limit — integer
Output
Returns JSON for this account. It does not change the account or contact anyone.
Get my Application
get_my_application
Read
One application for this candidate.
Inputs
- applicationRef (required) — string
Output
Returns JSON for this account. It does not change the account or contact anyone.
Withdraw my Application
withdraw_my_application
Sensitive-write
Withdraw this candidate’s pending application.
Inputs
- applicationRef (required) — string
- confirm — boolean. False previews and writes nothing. True commits.
- idempotencyKey — string
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.
Confirm my Shift
confirm_my_shift
Sensitive-write
Confirm a booked WORKFORCE shift.
Inputs
- assignmentRef (required) — string
- confirm — boolean. False previews and writes nothing. True commits.
- idempotencyKey — string
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.
Get link to cancel my booked shift
get_booked_shift_cancel_link
Read
Get a short-lived link to cancel one of the signed-in candidate’s own booked shifts in the WORKFORCE app.
Inputs
- assignmentRef (required) — string
Output
Returns JSON for this account. It does not change the account or contact anyone.
Set my Availability Status
set_my_availability_status
Sensitive-write
Mark this candidate open or unavailable for temp shifts.
Inputs
- available (required) — boolean
- confirm — boolean. False previews and writes nothing. True commits.
- idempotencyKey — string
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.
Set my Date Availability
set_my_date_availability
Sensitive-write
Set specific dates on or off for this candidate.
Inputs
- dates (required) — array
- available (required) — boolean
- startTime — string
- endTime — string
- confirm — boolean. False previews and writes nothing. True commits.
- idempotencyKey — string
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.
Get my Availability Calendar
get_my_availability_calendar
Read
Read this candidate’s date windows and blocked dates between from and to (YYYY-MM-DD).
Inputs
- from — string
- to — string
Output
Returns JSON for this account. It does not change the account or contact anyone.
Stop Availability Broadcast
stop_availability_broadcast
Sensitive-write
Stop this candidate’s live availability broadcast.
Inputs
- confirm — boolean. False previews and writes nothing. True commits.
- idempotencyKey — string
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.
List my Timesheets
list_my_timesheets
Read
List this candidate’s timesheets.
Inputs
- status — string
- from — string
- to — string
Output
Returns JSON for this account. It does not change the account or contact anyone.
Get my Timesheet
get_my_timesheet
Read
One timesheet for this candidate.
Inputs
- timesheetRef (required) — string
Output
Returns JSON for this account. It does not change the account or contact anyone.
Office tools
These run only for the signed-in dental office. They cannot search other offices or list the candidate directory.
Get Office Profile Schema
get_office_profile_schema
Read
Return the required fields for a complete WORKFORCE office profile, plus pickLists for parking (free text), imagingTypes[] and dentistryTypes[] (multi-select Settings lookup labels), dentalSoftware, and lunchDurationMins.
Inputs
None.
Output
Returns JSON for this account. It does not change the account or contact anyone.
Get Available Plans for my Region
get_available_plans_for_my_region
Read
Structured WORKFORCE staffing plans for the token office’s region only.
Inputs
None.
Output
Returns JSON for this account. It does not change the account or contact anyone.
Get Agreement Status
get_agreement_status
Read
Whether this office has signed the WORKFORCE rate agreement and accepted a staffing plan.
Inputs
None.
Output
Returns JSON for this account. It does not change the account or contact anyone.
Get my office readiness
get_my_office_readiness
Read
FIRST tool call after auth.
Inputs
None.
Output
Returns JSON for this account. It does not change the account or contact anyone.
Create or update my office
create_or_update_my_office_profile
Sensitive-write
Idempotent create/update of this token’s WORKFORCE office only (subject Client.id).
Inputs
- officeName — string
- website — string
- logoUrl — string
- addressLine1 — string
- addressLine2 — string
- city — string
- region — string
- postalCode — string
- country — string
- latitude — number
- longitude — number
- timezone — string
- officePhone — string
- phoneReceivesSms — boolean or string
- emergencyPhone — string
- officeEmail — string
- serviceRegion — string
- primaryContactFirstName — string
- primaryContactLastName — string
- primaryContactEmail — string
- primaryContactPhone — string. Officer cell. Required for SMS OTP verification.
- primaryContactTitle — string
- officeHours — array
- dentalSoftware — string
- parkingCost — string. Free-text parking cost (e.g. Free, $15/day). Not an enum.
- parkingDescription — string. Optional free-text parking details. Not an enum.
- entranceDetails — string
- lunchDurationMins — integer. Typical lunch minutes from get_office_profile_schema pickLists (0, 15, 30, 45, 60, 90).
- imagingTypes — array. Multi-select. Values must be Settings IMAGING labels from get_office_profile_schema.
- dentistryTypes — array. Multi-select. Values must be Settings DENTISTRY labels from get_office_profile_schema.
- additionalDetails — string
- officeManagerName — string
- officeManagerEmail — string
- billingContactName — string
- billingContactEmail — string
- overrideBouncedEmail — boolean. Set true only after the office explicitly confirms a previously bounced address. Otherwise a flagged address is rejected.
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.
Enrich my Office From Website
enrich_my_office_from_website
Sensitive-write
Scrape the office website with the same portal enrichment as web signup (hours, logo URL, about-office blurb, name/address).
Inputs
- website — string. Public office website URL. Optional when this office already has website saved.
- persist — boolean or string. Default true. When true, write empty profile gaps only (never overwrite filled fields; never invent on scrape failure).
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.
Send Office Verification OTP
send_office_verification_otp
Sensitive-write
SMS a one-time 6-digit code to this office’s primaryContactPhone (officer cell).
Inputs
None.
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.
Confirm Office Verification OTP
confirm_office_verification_otp
Write
Confirm the SMS one-time code sent to primaryContactPhone.
Inputs
- code (required) — string. 6-digit SMS code sent to the officer cell.
Output
Returns JSON after saving a change on this account. It does not message other people.
Select Plan
select_plan
Sensitive-write
Lock a LIVE WORKFORCE staffing plan on this office only.
Inputs
- planId (required) — string. Plan id from get_available_plans_for_my_region (this office only).
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.
Send Rate Agreement
send_rate_agreement
Sensitive-write
Email the existing WORKFORCE agreement-invite magic link to this office’s primary contact.
Inputs
None.
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else.
Get Job Request Options
get_job_request_options
Read
Read what this office can post.
Inputs
None.
Output
Returns JSON for this account. It does not change the account or contact anyone.
Create temporary Job Request
create_temp_job_request
Sensitive-write
Post a temp shift for this office.
Inputs
- profession (required) — string. Role name or enum, case-insensitive. Hygienist (HYGIENIST), Dental Assistant (DENTAL_ASSISTANT), Dental Receptionist (DENTAL_RECEPTIONIST), Associate (ASSOCIATE), EFDA (EFDA).
- shifts (required) — array
- payRateWeekday — number
- payRateWeekend — number
- sameWorkerRequired — boolean. Default false. One order per day.
- cutoffHours — number
- assistantLevelRequirement — string
- description — string. Special requirements. Do not include the office name.
- notifyContactRefs — array
- confirm — boolean
- idempotencyKey — string
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.
Copy a job request
copy_job_request
Sensitive-write
Re-post an existing temp request on new date(s) for this office.
Inputs
- jobRequestRef (required) — string
- dates (required) — array
- startTime — string
- endTime — string
- sameWorkerRequired — boolean
- cutoffHours — number
- confirm — boolean
- idempotencyKey — string
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.
List my Job Requests
list_my_job_requests
Read
List this office’s job requests.
Inputs
- kind — string
- date — string
- from — string
- to — string
- status — string
- limit — integer
Output
Returns JSON for this account. It does not change the account or contact anyone.
Get Job Request
get_job_request
Read
Read one of this office’s job requests, including shift times and assigned worker first name, profession, rating, and reliability.
Inputs
- jobRequestRef (required) — string
Output
Returns JSON for this account. It does not change the account or contact anyone.
Update temporary Job Request
update_temp_job_request
Sensitive-write
Change shift times and cut-off only.
Inputs
- jobRequestRef (required) — string
- shifts (required) — array
- cutoffHours — number
- confirm — boolean
- idempotencyKey — string
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.
Cancel temporary Job Request
cancel_temp_job_request
Sensitive-write
Cancel a temp request.
Inputs
- jobRequestRef (required) — string
- date — string. YYYY-MM-DD day to cancel when the request is not Same Worker Required.
- cancelReason — string
- confirmCancellationFee — boolean
- confirm — boolean
- idempotencyKey — string
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.
Search the availability map
search_availability_map
Read
Who is showing on this office’s availability map.
Inputs
- profession — string. Optional profession filter. Case-insensitive codes: HYGIENIST, DENTAL_ASSISTANT, DENTAL_RECEPTIONIST, ASSOCIATE, EFDA. Aliases include Hygienist, Dental Hygienist, RDH, Dental Assistant, CDA, RDA, assistant, DA, receptionist, admin, and front desk. An unknown value is a validation error that lists the allowed codes.
- kind — string. TEMP = temp days, PERM = open to a permanent job, ALL (default) = both. Same filter as the Temp / Perm toggle on the office availability map.
- minRating — number
- dates — array
- limit — integer
Output
Returns JSON for this account. It does not change the account or contact anyone.
Say we are interested in a perm candidate
say_interested_in_perm_candidate
Sensitive-write
Tell WORKFORCE this office is interested in a candidate who is open to a permanent job (a PERM or BOTH row from search_availability_map).
Inputs
- workerRef (required) — string. workerRef from a search_availability_map row that is open to perm.
- confirm — boolean
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.
Set held job pay rates
set_held_job_pay_rates
Sensitive-write
Set weekday and weekend pay on a held Paid-by-Office temp request so it can open.
Inputs
- jobRequestRef (required) — string
- payRateWeekday (required) — number
- payRateWeekend — number
- confirm — boolean. False previews and writes nothing. True commits.
- idempotencyKey — string
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.
List Job Applications
list_job_applications
Read
Self-Service temp applicants for this office.
Inputs
- jobRequestRef — string
- status — string
- limit — integer
Output
Returns JSON for this account. It does not change the account or contact anyone.
Accept Job Application
accept_job_application
Sensitive-write
Self-Service only.
Inputs
- applicationRef (required) — string
- confirm — boolean. False previews and writes nothing. True commits.
- idempotencyKey — string
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.
Decline Job Application
decline_job_application
Sensitive-write
Self-Service only.
Inputs
- applicationRef (required) — string
- note — string
- confirm — boolean. False previews and writes nothing. True commits.
- idempotencyKey — string
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.
Create permanent Job Request
create_perm_job_request
Sensitive-write
Create a permanent hire request for this office.
Inputs
- position — string
- contactPhone — string. Optional North American phone. Used when the office profile has none.
- startDate — string
- scheduleDays — array
- scheduleFlexibility — string
- payRateMin — number
- payRateMax — number
- payType — string
- benefits — string
- jobDescription — string
- requirements — string
- softwareUsed — string
- softSkills — string
- considerNewGraduate — boolean or string
- teamSize — string
- operatoryCount — string
- officeCulture — string
- interviewProcess — string
- imagingTypes — array
- dentistryTypes — array
- visibilityMode — string
- visibleContactRefs — array
- otherComments — string
- associateDentistCount — string
- associateOfficeRevenue — string
- associateActivePatients — string
- associateNewPatientsPerMonth — string
- associateCeHoursAnnually — string
- associateDigitalEquipment — array
- associateDaysOpenPerWeek — string
- associateExperienceRequired — string
- associateConsiderForeignTrained — boolean or string
- associateLookingFor — string
- confirm — boolean. False previews and writes nothing. True commits.
- idempotencyKey — string
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.
Request permanent Job Close
request_perm_job_close
Sensitive-write
Close a permanent request for this office.
Inputs
- jobRequestRef (required) — string
- reason (required) — string. Why the office is closing it.
- confirm — boolean. False previews and writes nothing. True commits.
- idempotencyKey — string
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.
List Timesheets
list_timesheets
Read
Timesheets for this office.
Inputs
- status — string
- from — string
- to — string
- limit — integer
Output
Returns JSON for this account. It does not change the account or contact anyone.
Get Office Timesheet
get_office_timesheet
Read
One timesheet for this office.
Inputs
- timesheetRef (required) — string
Output
Returns JSON for this account. It does not change the account or contact anyone.
Approve Timesheet
approve_timesheet
Sensitive-write
Approve a SUBMITTED or RESUBMITTED timesheet.
Inputs
- timesheetRef (required) — string
- confirm — boolean. False previews and writes nothing. True commits.
- idempotencyKey — string
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.
Dispute Timesheet
dispute_timesheet
Sensitive-write
Dispute a SUBMITTED or RESUBMITTED timesheet.
Inputs
- timesheetRef (required) — string
- reason (required) — string
- confirm — boolean. False previews and writes nothing. True commits.
- idempotencyKey — string
Output
Sensitive write. Returns JSON. It can change a booking, a plan, or a fee, or it can notify someone else. Sending confirm false previews and writes nothing.
Get Office Dashboard
get_office_dashboard
Read
Counts for this office: open temp requests, unconfirmed shifts, timesheets waiting for approval, and pending Self-Service applications.
Inputs
None.
Output
Returns JSON for this account. It does not change the account or contact anyone.
List my Offices
list_my_offices
Read
Offices this signed-in contact already belongs to.
Inputs
None.
Output
Returns JSON for this account. It does not change the account or contact anyone.
Common errors
- The connection expired. Reconnect from the assistant. Do not paste a token.
- This account cannot use that action. Candidate and office sign-ins see different tools.
- A required field is missing. The result names the fields to send.
- The office is not ready for plans or a rate agreement until the profile is complete and the officer cell is verified by text.
- The tool is not on this connection. Use only the tools listed for that sign-in.
Rate limits
The connector does not publish a fixed calls-per-minute cap. Use it for the requests the person asked for. Claude, ChatGPT, Muse, and Grok may add their own limits.
Office verification texts are limited in the product: one new code per minute, each code lasts 10 minutes, and five wrong entries require a new code. If a call fails as temporary, or the assistant says to slow down, wait a few seconds and retry once. If it keeps failing, contact support. Do not retry in a tight loop.
Support
Email dentalteam@workforcedentalstaffing.com or use the support page. Hours are Monday to Friday, 8 AM to 5 PM Pacific Time. Phone: 1-833-336-8250.
How we handle information is in the Privacy Policy. The rules for the app are in the Terms of Service.
