Tutor Request Form template
Subject, level, availability — everything a coordinator needs to match a student to a tutor in one submission. Rendered live below with the exact HTML behind it.
What your visitor sees
Plain semantic HTML rendered through the same default form theme Core Forms applies on the front-end. Try it — this demo confirms inline and sends nothing.
Demo only. On your site, the same markup wires into the normal Core Forms action loop — email, Slack, Google Sheets, webhook, whatever you configure.
The HTML behind it
Copy this block, paste into Core Forms → Add New Form → Fields tab, save. Field names map to merge tags automatically in your action templates.
<p>
<label for="cf-tutor-student">Student name <span aria-hidden="true">*</span></label>
<input type="text" id="cf-tutor-student" name="STUDENT" autocomplete="name" required aria-required="true" />
</p>
<p>
<label for="cf-tutor-contact">Parent or contact name</label>
<input type="text" id="cf-tutor-contact" name="CONTACT" />
</p>
<p>
<label for="cf-tutor-email">Email address <span aria-hidden="true">*</span></label>
<input type="email" id="cf-tutor-email" name="EMAIL" autocomplete="email" required aria-required="true" />
</p>
<p>
<label for="cf-tutor-phone">Phone</label>
<input type="tel" id="cf-tutor-phone" name="PHONE" autocomplete="tel" />
</p>
<p>
<label for="cf-tutor-subject">Subject <span aria-hidden="true">*</span></label>
<select id="cf-tutor-subject" name="SUBJECT" required aria-required="true">
<option value="">Choose a subject…</option>
<option>Mathematics</option>
<option>Physics</option>
<option>Chemistry</option>
<option>English</option>
<option>Computer science</option>
</select>
</p>
<fieldset>
<legend>Level <span aria-hidden="true">*</span></legend>
<p>
<label><input type="radio" name="LEVEL" value="Primary" required /> Primary</label>
<label><input type="radio" name="LEVEL" value="Secondary" /> Secondary</label>
<label><input type="radio" name="LEVEL" value="University" /> University</label>
</p>
</fieldset>
<fieldset>
<legend>Availability <span aria-hidden="true">*</span></legend>
<p>
<label><input type="checkbox" name="AVAILABILITY" value="Weekday afternoons" /> Weekday afternoons</label>
<label><input type="checkbox" name="AVAILABILITY" value="Weekday evenings" /> Weekday evenings</label>
<label><input type="checkbox" name="AVAILABILITY" value="Weekends" /> Weekends</label>
</p>
</fieldset>
<p>
<label for="cf-tutor-goals">Goals or problem areas</label>
<textarea id="cf-tutor-goals" name="GOALS" rows="4"></textarea>
</p>
<p>
<button type="submit">Request a tutor</button>
</p>
What this tutor request form template is for
A tutor request form has one job: capture enough to make the match in one pass. Subject, level, and availability are the three facts a coordinator actually schedules against — collect them up front and the five-email back-and-forth ("which subject?", "what year?", "when are you free?") disappears. I've built this form for tutoring agencies, university learning centers, and independent tutors, and the matching fields never change.
The template collects who the student is, how to reach the family, what subject and level they need, and when sessions can happen. Every submission lands in your submissions inbox and can fire an email to the coordinator or a Slack ping to the tutor channel the moment it arrives.
Keep it under a minute to complete. Parents fill these out on phones, often mid-search across three tutoring sites — every extra required field costs you requests. Eight fields, three of them optional, is the ceiling; the goals textarea catches everything else worth knowing.
Every field, and why it's there
| Field | Type | Required | Why it's there |
|---|---|---|---|
| Student name | text | Yes | The person being tutored — maps to [STUDENT] in your action templates. |
| Parent or contact name | text | Optional | Optional — often the parent submitting for a school-age student. |
| Email address | email | Yes | Match confirmations and scheduling go here. |
| Phone | tel | Optional | Optional — some coordinators prefer to close the match by phone. |
| Subject | select | Yes | Swap the options for the subjects you actually cover. One select, no free text to misspell. |
| Level | radio group | Yes | Primary, Secondary, or University — decides which tutors are even eligible. |
| Availability | checkbox group | Yes | Multiple choices allowed; the coordinator matches against tutor calendars. |
| Goals or problem areas | textarea | Optional | Exam prep, a failing grade, a specific topic — context the first session needs. |
From this HTML to a working form
-
Paste the markup into the Fields tab
Core Forms → Add New Form → Fields tab. Paste the HTML above, swap the subject options for what you actually teach, save. The markup IS the form — no field picker.
-
Wire the coordinator notification
In the Actions tab, add Send Email. Subject: "Tutor request: [SUBJECT] — [LEVEL]". Add a Slack action next to it so the tutors channel sees new requests without anyone forwarding email.
-
Embed it on your tutoring page
Drop the Gutenberg block on your Request a Tutor page, or use the shortcode in a classic editor. Put it above the fold — parents comparing agencies rarely scroll.
Three upgrades worth considering
Route requests to the right tutor channel
A Slack action can post each request straight into the channel for that subject team, with [SUBJECT] and [LEVEL] in the message. The fastest match is the one tutors see first.
Slack integration →Track requests in a database view
An Airtable action appends every request as a record — filter by subject, group by level, and mark matches as they close. A lightweight matching board without new software.
Airtable integration →Ask level-specific questions
Add data-show-if attributes so a "University course code" field appears only when University is selected. One attribute per field, no logic builder.
Conditional logic →Tutor Request Form template questions
How do tutors get notified about new requests?
Through actions on the form. Every submission is stored in the submissions inbox, and each configured action fires on top: an email to the coordinator, a Slack or Discord message to the tutor channel, or both. Tutors see the subject and level before anyone forwards anything.
Can students upload past papers or homework?
Yes — add a file field to the markup and Core Forms handles the upload, storage, and attachment. A past paper or a photo of the problem set gives the tutor a head start on the first session, so I usually add it for exam-prep agencies.
How do I stop spam tutor requests?
Honeypot and rate limiting are built in and on by default, which stops the bot traffic a public education form attracts. No CAPTCHA needed for most sites — I only add one when a form is getting targeted, and a parent on a phone will thank you for skipping it.
Can I charge for the first session on this form?
You can — attach the Stripe action and the form charges a fixed amount at submit time, useful for paid trial sessions. Most agencies skip it though: they confirm the match first, quote, then invoice. The request form works either way; the markup does not change.
The template is free. The plumbing is the product.
Core Forms turns this HTML into stored submissions, spam-filtered
email, and 30+ integrations. Use
CFLAUNCH for 20% off.