Skip to content

Process management

Interview Scheduling and Online Interview Calendar

In most teams, setting up an interview means touching three places: an event in the calendar, an email to the candidate, a link for the panel. Get the order wrong and the candidate holds a time slot with no link attached. GoTeam collapses that into a single window; pick an online interview and the calendar event and the Google Meet link are created in the same step, with the invitation built from your own template.

From the Professional plan onwards
Quick answer

An interview scheduling tool keeps the date, length, format and interviewers of a conversation in one place, and creates the calendar event and the invitation email from there. In GoTeam, choosing an online interview opens a Google Calendar event and Google issues the Meet link; on site interviews can be scheduled even without a Workspace connection. The link the candidate receives never moves the time, it only leaves a "this date does not work" notice.

  • This feature is open from the Professional plan onwards.
Interview screen: Agenda and List tabs on top, a weekly calendar grid below, with interviews that fall on the same hour placed side by side

Where an interview is scheduled from

There are two entry points: the "Schedule interview" button on the candidate detail, or the "New interview" button on the interview screen. The button on the candidate detail first reads that candidate existing interviews. If one is still open, it does not open a new scheduling window at all; it offers to enter the room, reschedule or cancel, so the same candidate never quietly ends up with a second booking.

The window carries date and time, length, time zone, format, interviewer addresses and a note field for the candidate. The default length is 30 minutes; the presets are 15, 30, 45, 60 and 90 minutes, and the accepted range runs from 5 to 480 minutes. The time zone list stays at five cities, because recruiters think in cities, not in zone codes. The chosen time is read in the zone selected on the form rather than the one in the browser, otherwise the event would land on the wrong moment whenever the two differ.

If a second interview is booked for the same candidate in the same window, the request comes back and the panel asks for a "Schedule anyway" confirmation; nothing is written before you confirm. That check only covers the same candidate, it does not look at interviewer calendars: a plan that puts two interviewers on the same hour raises no warning.

  • Scheduling an interview needs the permission to change application status; seeing interviews needs the permission to view job or internship applications
  • The plan gate sits on the write path only: if your plan is not enough, no new interview can be created while existing ones stay readable
  • A time in the past cannot be picked; the date picker blocks the day and the service blocks earlier hours of the current day as well
  • Interviewer addresses are stored in lower case, otherwise a difference in capitalisation would keep an interview out of that person "My interviews" list
  • If the candidate own email address is typed into the interviewer list it is removed; a candidate never receives a second email as an interviewer of their own interview
  • When the separate toggle on the form is ticked and the application sits in Pending or In review, the status moves to Interview; in any other status the step is skipped and the scheduling still counts as successful

Online interviews, on site interviews and Google Workspace

Nobody pastes a Meet link by hand. A conference request is attached while the calendar event is created, and the Meet address is read back from the event Google returns; the address is issued by Google. The calendar provider follows the company setting: with no Google Workspace connection the provider falls empty, which means no calendar event and no Meet link are created at all.

That splits into two outcomes. An online interview cannot be scheduled at all without a Workspace connection; in that state the scheduling window opens on "On site" rather than "Online", and switching to Online deliberately raises a warning. An on site interview is scheduled, saved and followed by a branded invitation email, it simply gets no calendar event.

On site interviews take a typed address. Pick one from the Google Places suggestions and the coordinates are stored too, so the candidate receives a mapped location; type it by hand and only plain text is stored, which leaves the map link to a text search. On a demo account no real calendar event and no Meet link are ever created.

If the calendar event is created and the database write then fails, the event is not left orphaned: the system rolls back the Google event it created and only then reports the error. Invitation, reschedule and cancellation emails to the candidate are built from your own templates; the logo, company name and brand colour are not baked into the body, they are resolved from the company record on every send. Email never blocks the interview: if a send fails, the error is recorded and the interview and the calendar invitation stay in place. When email notifications are off for the company, the window says so, the branded invitation is not sent, and the Google Calendar invitation is unaffected.

What gets created with and without a Google Workspace connection
ActionWorkspace connectedWorkspace not connected
Scheduling an online interviewA calendar event opens and Google issues the Meet linkCannot be scheduled, the window warns you
Scheduling an on site interviewThe interview is saved and a calendar event opens tooThe interview is saved, no calendar event opens
Branded invitation email to the candidateSent when email notifications are on for the companySent when email notifications are on for the company

Two views: Agenda and List

The top row of the interview screen holds two view tabs (Agenda, List), a scope switch next to them (Mine, All) and the "New interview" button on the right. The chosen view and scope are kept in the address bar, because opening an interview changes the route segment and rebuilds the tab; the address bar survives that rebuild. "Mine" is satisfied three ways: I organise the interview, I run it, or I created it. The identity is resolved from the session, never from the request.

The agenda is a weekly grid starting on Monday. The default band runs 09:00 to 18:00 and widens by itself when that week holds an earlier or later interview. Interviews on the same hour are not stacked on top of each other, they are spread across side by side lanes. A cancelled interview is never drawn on the agenda; it stays visible in the list under the status filter.

The list is the management side: three buckets (Upcoming, Past, Outcome) and three filters (status, interviewer, date range). The "Outcome" bucket has a precise definition: interviews whose end time has passed without being Completed or Cancelled; an interview still running does not fall in there. Row height is fixed at 80 pixels and the skeleton uses the same box, so the list does not jump when data lands. The "Join" action opens 15 minutes before the interview, because interviewers want to be in the room ahead of the candidate.

An interview sits in one of four states: Scheduled, Rescheduled, Completed, Cancelled. Label, colour and icon come from a single central resolver; the badge in the list and the badge in the room read the same dictionary. The single badge on a row does not always print the raw status, it follows a priority when states collide.

The single badge on a list row follows this order when states collide
OrderConditionBadge shown
1The interview is completed or cancelledCompleted / Cancelled
2The candidate used the link in the invitationCandidate unavailable
3End time has passed with no outcome recordedAwaiting outcome
4None of the aboveScheduled / Rescheduled

Reminders and the single answer a candidate can give

Reminders run in two windows: once when less than 24 hours and more than 2 hours remain before the start, and once when less than 2 hours remain. An interview booked at the last minute never receives the 24 hour reminder, it falls straight into the 2 hour window. The sweep comes from a scheduled job on the server rather than a timer inside the app, and that endpoint is protected by a secret; there is no company side setting that turns reminders on or off.

Two overlapping runs never send the same reminder twice. Each window is claimed atomically before the send, and a run that cannot claim it skips the row. A calendar file is attached to the reminder email, so the candidate and the team can add the interview to their own calendars; across repeats of the same interview the file identity stays constant, so the second reminder reads as an update rather than a new event.

On the candidate side there is exactly one page: the screen opened by the "this date does not work for me" link in the invitation, made of one sentence of context, an optional note box and a single button. That link does not cancel the interview and does not move its time, it records the objection and notifies the organiser. The candidate picks nothing from a slot list, sees no calendar and proposes no alternative time.

  • The secret in the link is generated separately for every interview and is not derived from the interview id, because that id is visible in panel addresses
  • What the candidate side shows is deliberately narrow: their own name, the time, length and format of the interview and the company name; email, identity and note fields never reach that screen
  • Pressing the same link a second time produces no second notification; the form closes once the interview is cancelled, completed or past its end time
  • The candidate page is closed to search engines, because it is a personal link rather than a landing page
  • The objection is not written to the audit trail under a fake actor: the record is the timestamp on the interview plus the candidate note
  • Every scheduling, reschedule, cancellation and completion is written to the activity record with who did it and when

The interview room: questions, notes, evaluation

The interview room opens inside the list shell, so an interviewer arriving from the calendar invitation does not lose the list. The room holds a question list derived from the CV, notes private to the interviewer and the bar that closes the interview. Questions are not copied when the interview is created, they are read live from the candidate CV analysis on every open; re-run the analysis and the questions update with no backfill, and when there is no analysis the room still opens with an empty question list.

The question pool works in rounds: three categories (Technical, Behavioural, Culture fit), up to 5 rounds, and a default of 5 and a maximum of 8 questions per category per generation. Every question is marked as coming from AI or from your team; a bulk replace only clears the AI rows and leaves what your team wrote untouched. Generation spends one AI evaluation credit, and if no usable question reaches the pool the credit is refunded, so a provider failure costs you nothing.

The model is never asked for a number when answers are evaluated. For each answer it returns a judgement of strong, adequate, weak or unanswered plus its reasoning; weights and totals are computed in code. An unanswered question is not skipped, it counts as zero: skipping it would let a candidate raise their score by staying silent.

The evaluation card keeps three readings side by side and never adds them up: the position fit the CV evidences, the state of the mandatory criterion gate, and the evaluation of the answers given in the room. Merged into one number, you could no longer see which of them carried the decision. When the mandatory criterion gate comes back closed, the system suggests neither an offer nor a rejection, it flags the candidate for human review.

  • Notes in the room are private to the interviewer and never go to the candidate by email; the note the candidate receives is the separate field on the scheduling form
  • Closing an interview does not move the application status: the room records the interviewer recommendation, it does not change the status
  • The next step suggestion changes no application status; the status matching the suggestion is written alongside it but never applied
  • The suggestion is recomputed on every read rather than frozen into the saved analysis: a CV analysis re-run after the interview can open or close the gate
  • Question generation and answer evaluation sit behind the credit gate, not the plan gate; every run spends one AI evaluation credit

Frequently asked questions

It is open from the Professional plan onwards, and the Trial and Enterprise plans include it as well. The gate sits on the write path only: if your plan does not cover scheduling, a new interview is refused with a message naming the plan you need. Listing existing interviews never passes through that gate, so the records stay readable. "Interview" is an application status on every plan; the plan difference is the scheduling capability itself.

No, recruiters set the time. The invitation email carries exactly one link: "this date does not work for me". The candidate leaves an objection there, with an optional note; the link never cancels the interview and never moves it. It simply tells the organiser. The new time is scheduled by your team again. Nothing in the product hands the candidate a slot list or reads their calendar.

On site interviews yes, online interviews no. Without Workspace the calendar provider stays empty, so no calendar event and no Meet link can be created. That is why the scheduling window opens with "On site" preselected and warns you if you switch to Online. On site interviews are saved as usual, and the branded invitation still reaches the candidate when email notifications are enabled for the company.

There are two windows: one when less than 24 hours but more than 2 hours remain before the start, and one when less than 2 hours remain. An interview booked inside the 2 hour mark only gets the second reminder. Every reminder carries a calendar file. There is no setting that turns reminders on or off; the sweep runs as a scheduled job on the server.

Not on its own. The scheduling form carries a separate toggle; only when it is ticked, and only when the application sits in Pending or In review, does the status move to Interview. In every other case the transition is skipped and the scheduling still counts as successful. Closing an interview does not move the status either, it records the interviewer recommendation.

It does not. GoTeam never eliminates candidates automatically; AI recommends, your team decides. The model labels each answer as strong, adequate, weak or unanswered, and the code computes the numbers and the total. The next step suggestion produced after an interview changes no application status, and when a mandatory criterion gate comes back closed the system does not even suggest a rejection, it flags the candidate for human review.

See this feature on your own data

Leave a demo request, we set it up together and walk through the process on one of your own positions.

Contact Us