Use cases

Text-to-apply hiring for hourly jobs over iMessage

ZeroSettle lets a restaurant, retailer or warehouse run text-to-apply hiring over iMessage: post “Text JOBS to apply” on windows and job ads, hourly applicants text your number, and a hosted AI agent (Beta) asks everyone the same short list of screening questions you wrote, then sends the interview-booking link. Applicants text first, so 300 applicants in a week never touch ZeroSettle's new-contact limit, and the interview link the agent sends is tappable. The hiring manager reads every thread in the console; on the $49-a-month Pro plan, each text the agent sends uses one of 1,000 monthly AI credits.

Key takeaways

  • What it is: applicants text JOBS to your business's iMessage number, and ZeroSettle's hosted AI agent (Beta) screens them with the same questions and sends an interview-booking link.
  • Who it fits: restaurants, retailers, warehouses and franchise owners hiring hourly staff whose applicants mostly use iPhone.
  • Price: Pro is $49/month with 1,000 AI credits; Growth is from $599/mo with 5,000. Each text the agent sends uses one credit.
  • Main limit: applicants who text first are never limited. Threads your ATS starts count as new contacts (Pro: 5 a day per number).
  • What it does not do: reach Android phones (there is no SMS fallback), write into your ATS, or let a manager reply in a thread the agent manages.

Who uses iMessage for text-to-apply hiring?

Text-to-apply over iMessage suits restaurants, grocery and retail chains, warehouses and franchise owners hiring hourly staff whose applicants mostly use iPhone. ZeroSettle is an iMessage API: a real phone number on real iMessage, running on Apple hardware we operate for you, that your code texts customers from and hears back on through a bearer token and signed webhooks. For text-to-apply, ZeroSettle's hosted AI agent takes the place of that code.

The problem it solves: hourly applicants drop long forms, rarely check email, and take another job before a recruiter calls back. It is not built for salaried roles with résumé review. Related jobs: filling open shifts after hiring, an AI receptionist for customer questions, and more on the use cases hub.

How iMessage for text-to-apply hiring works, step by step

Applicants text JOBS, ZeroSettle's hosted agent asks each the same screening questions, and the hiring manager reads the answers.

  1. In the console's Messaging tab, replace the example business context with yours: roles, locations, pay ranges, required certifications and one list of screening questions everyone gets.
  2. Switch the line group to Managed by AI Agent (Beta) and set the goal to demo_booked with your interview-slot page as the link.
  3. Put “Text JOBS to apply” and an sms: QR code on store windows and flyers, and the same link on online job posts. An iPhone user scans it with the Camera, taps the link, and Messages opens with JOBS filled in.
  4. The applicant texts first, so the thread never counts against the new-contact limit, and links in the replies are tappable. The agent answers each text as it arrives, typing bubble first.
  5. The hiring manager reads every thread live in the console; your ATS can pull them with GET /api/imessage/messages.
  6. For job-board applicants who ticked text consent, your ATS can call POST /api/imessage/agent/start. Those count as new contacts (Pro: 5 a day).

Example conversation: text-to-apply hiring

A fictional grocer, Greenleaf Market, has a QR sign in its Westside window. The applicant scanned it and sent the prefilled JOBS.

  1. Tue 4:12 PM
  2. Applicant: JOBS
  3. Business: Thanks for your interest in Greenleaf! I'm Greenleaf's automated hiring assistant. Which store is closest to you: Downtown, Westside or Airport Rd?
  4. Applicant: westside
  5. Business: We're hiring cashiers and stockers there, $19-$21/hr. Which days and times can you work?
  6. Applicant: weekends and evenings
  7. Business: Stocking shifts fit that well. Grab an interview slot with Tasha: jobs.example.com/greenleaf
  8. Applicant: got thursday 3pm
Illustrative example with a fictional grocer. Blue bubbles are the hosted agent's texts from Greenleaf's number; gray bubbles are the applicant's. Three agent texts: three AI credits.

Setup: a QR sign and the hosted agent as screener

Setup is a sign, a business context and a few settings. Inbound texts on an agent-managed line don't go to your webhook, so there is no receiver to build.

The sign. The QR code is an sms: link as an image: encode sms:+14155550142&body=JOBS with any generator; iPhone users scan it with the Camera app and tap the link. Print your web application address beside it: on Android the link opens the SMS app, and ZeroSettle's number exists only for iMessage. See how to get customers to text you first.

The business context is the screener's only source of facts about your jobs (up to 40,000 characters); it can't look anything up. Replace the default (a made-up software business), and edit it when a role fills, or the screener keeps offering it.

business context (excerpt)
You are Greenleaf Market's automated hiring assistant; say so first.
Downtown: cashiers. Westside: cashiers, stockers. Airport Rd: overnight
stockers (forklift certification required). Pay: $19-$21/hr.
Ask every applicant exactly these questions, in order:
1. Which store is closest: Downtown, Westside or Airport Rd?
2. Which days and times can you work?
Then offer an interview slot with Tasha (the "demo" is the interview).
Never ask about age, health, family, religion or national origin.

Settings and job-board starts. With the context saved, set the rest in the console or with PUT /api/imessage/agent. first_message opens only threads your ATS starts, exactly as written, so end it on a question and leave the link out: a link in a first text isn't tappable until the applicant replies.

bash
BASE=https://portal.zerosettle.io
curl -s -X PUT "$BASE/api/imessage/agent" \
  -H "Authorization: Bearer $ZEROSETTLE_TOKEN" -H "Content-Type: application/json" \
  -d '{"managed_by": "zerosettle", "goal": "demo_booked", "link": "https://jobs.example.com/greenleaf",
       "timezone": "America/Los_Angeles",
       "first_message": ["Hi, this is the Greenleaf Market hiring assistant (automated). You applied and agreed to texts. Which store is closest: Downtown, Westside or Airport Rd?"]}'

# from your ATS, per job-board applicant who ticked text consent
curl -s -X POST "$BASE/api/imessage/agent/start" \
  -H "Authorization: Bearer $ZEROSETTLE_TOKEN" -H "Content-Type: application/json" \
  -d '{"to": "+14155550178", "name": "Maya"}'

Follow-ups. By default, the agent has one trigger: a follow-up the morning after an applicant goes quiet, sent at a random moment between 9 and 11 AM in timezone (America/New_York unless you set your stores' zone, as above). It is an instruction the agent writes from, not a fixed text, and it never fires when the applicant wrote last; edit its instruction in triggers so applicants who already booked a slot aren't nudged.

The AI agent docs list every field, how the hosted AI agent works covers trade-offs, and admissions follow-up uses the same agent/start pattern.

Limits and consent for text-to-apply hiring

Applicants who text JOBS are never limited. AI credits run out, and threads your ATS starts are capped.

ZeroSettle limits for text-to-apply hiring (API docs, checked October 12, 2026)
Thread or allowanceProGrowth
Applicant texts JOBS firstNot limitedNot limited
ATS starts it (new contact, per number)5 a day50 a day, 3 per 15 min
Unanswered texts to one applicant2 until they reply
AI credits, per account1,000 a month5,000 a month

Credit math. The Greenleaf thread used three credits; confirming the slot and a follow-up add one each, so budget three to five per applicant. A store opening that draws 300 applicants in a week spends roughly 900 to 1,500 credits against Pro's 1,000 a month, so buy a 1,000-credit pack ($50) before it starts. At zero the agent goes quiet and doesn't catch up: an applicant who texted JOBS meanwhile hears nothing until they text again.

Job-board math. If 45 job-board applicants agreed to texts overnight, Pro starts 5 today; the rest return 429 new_contact_limit with retry_after_s, so your ATS queues them over the next eight days (the day resets at 3 AM Eastern). At that volume, Growth's 50 a day per number fits better. Hold overnight applicants until 8 AM their time (the docs' quiet hours for promotional texts). Each start spends one credit per first-message text.

Consent. Text job-board applicants only if they agreed to texts and you keep the record. Never text scraped résumés or bought lists: ZeroSettle suspends lines used for unsolicited messaging, and ZeroSettle's docs warn that US TCPA damages run $500 to $1,500 per message. This isn't legal advice.

Employment law. The EEOC says pre-employment questions should be limited to what is essential to judge qualification, calls race, sex, national origin, age and religion irrelevant, and bars disability questions before an offer. Ask everyone the same job-related questions and have counsel review them. Hiring in New York City? Ask counsel whether Local Law 144 on automated employment decision tools applies; it requires a bias audit within a year before use, a published summary of the results and notices to candidates.

AI disclosure. ZeroSettle's terms require “transparent disclosure of AI interaction in systems like chatbots, unless it is contextually evident”, so tell the agent in its business context to say it is automated in its first reply. By default it says so when sincerely asked.

When ZeroSettle is not a fit for text-to-apply hiring

ZeroSettle's hosted screener works from the questions you write, and ZeroSettle's terms require opt-in before any outreach, so it is the wrong tool when:

  • You want to ask about age, health, family or other protected characteristics. The EEOC says such questions can be used as evidence of intent to discriminate, and a texted question stays in the thread.
  • You would text scraped résumés or bought lists. Those people never agreed to hear from you.
  • Most applicants use Android. There is no SMS fallback, so they need a web or paper application.
  • Your ATS must start more than 5 threads a day on one Pro number. The 6th waits for the 3 AM Eastern reset; Growth allows 50 a day per number.
  • You need the screener to write into your ATS. The hosted agent can't. Run the line Managed by API and bring your own model, so your code records each answer.

How much does iMessage for text-to-apply hiring cost?

Text-to-apply on ZeroSettle costs the plan price plus any AI credit packs a hiring push needs; there is no per-message fee.

ZeroSettle plans for text-to-apply hiring (zerosettle.io and API docs, checked October 12, 2026)
PlanPriceNumbersAI credits a month
Pro$49/monthOne1,000
GrowthFrom $599/mo3+, working as one5,000

Packs add 1,000 credits for $50 or 5,000 for $200 and never expire. Pro has no setup fee, 5 new contacts a day, unlimited messages with people who message you first, and a 30-day money-back guarantee on the subscription; Growth starts with Book a demo. See the plans, ZeroSettle pricing and the API docs, or get a number.

Frequently asked questions

Can a hiring manager reply to an applicant personally?

Not on an agent-managed line group: console and API sends are refused with 403 managed_by_zerosettle. Switch the group to Managed by API (the agent then stops answering it) or call the applicant.

Can applicants text a résumé?

Not as a file. A photo of a paper résumé arrives and shows in the console, but a PDF or document arrives as a message with no attachment, so link a web form for roles that need one.

Can the screener remind applicants about their interview?

Not at an exact time. Its triggers fire in a morning, afternoon or evening window, counted from the last message or daily, not from the interview time, and your own sends from that group are refused, so send reminders through your booking tool.

Why did the screener stop answering someone who asked to “stop by”?

Any text with the word STOP in it, including “can I stop by to apply?”, opts the sender out of every number on your account until they text START or ZeroSettle clears it. See how STOP works.

Sources

  1. ZeroSettle iMessage API docs: “AI agent” (Managed by AI Agent, triggers, AI credits), “Customer support” (sms: links), “Attachments” and “Errors, limits, and compliance”. Checked October 12, 2026.
  2. ZeroSettle iMessage API Terms, section 4 (AI disclosure) and section 13 (consent). Last modified September 28, 2026.
  3. Prohibited Employment Policies/Practices, U.S. Equal Employment Opportunity Commission, “Pre-Employment Inquiries (General)”. Checked October 8, 2026.
  4. Automated Employment Decision Tools (AEDT), NYC Department of Consumer and Worker Protection (Local Law 144 of 2021). Checked October 8, 2026.
  5. Scan a QR code with your iPhone or iPad, Apple Support. Checked October 8, 2026.

Written by the ZeroSettle team. ZeroSettle is an iMessage API: a real phone number on real iMessage, running on Apple hardware we operate for you, that your code texts customers from and hears back on through a bearer token and signed webhooks.

Product facts on this page come from the ZeroSettle iMessage API docs and iMessage API Terms as of October 12, 2026; outside facts come from the pages listed under Sources, checked October 8, 2026. Greenleaf Market is a fictional business, and nothing here is legal advice.

Text your customers from your own iMessage number

ZeroSettle gives your business its own phone number on real iMessage, running on Apple hardware we operate for you in a server facility. Your code sends with one API call and hears every reply on a signed webhook.

Pro is $49 a month with a 30-day money-back guarantee. Growth, for several numbers working as one, is from $599/mo.