QCQualifyCode
Assessments

Create an assessment

The five step assessment wizard, every field and rule, the server draft autosave, and the assessment lifecycle.

Create an assessment

Creating an assessment is a guided five step wizard. Your work is autosaved to the server as a draft the moment you name it, so you can leave and return without losing progress.

The five steps

StepName in UIWhat you do
1ConfigurationName, role, duration, schedule window, timezone, languages
2ProblemsPick problems from the library or generate variations (up to 5)
3CandidatesAdd candidate emails (up to 500)
4PaymentReview cost, choose wallet or gateway, pay
5Send InvitesReview and send invitation emails

Each step gates the next. You cannot reach Problems without a name, role, valid duration, and at least one language. You cannot reach Payment without selected problems, and you cannot send invites without paying.

Step 1: Configuration

FieldRules and defaults
Assessment nameRequired. Visible to candidates in the invitation.
Role titleRequired. Shown in invitation emails.
Duration (minutes)Default 45. Allowed range 15 to 300.
CRM IDOptional free text for your own tracking.
Invitation company nameOptional. Written back to your Supabase profile.
Schedule windowStart and end datetimes. Start must be at least 30 minutes ahead, the gap at least 30 minutes, and the total window at most 21 days.
TimezoneAuto detected from your browser, changeable.
Programming languagesAt least one required. Choose from Python, JavaScript, Java, C++, TypeScript, C, Go, Rust. Defaults to Python and JavaScript.

Once an assessment is Active, this step is locked and cannot be edited.

Step 2: Problems

Search the shared problem library by title or keyword, filter by difficulty and concept tags, and select up to five problems. You can also generate an AI variation of a problem. See Problems for the details and the important limits.

Step 3: Candidates

Add candidate emails one at a time or in bulk. Bulk import accepts newlines, commas, semicolons, or tabs as separators. Each email is validated, duplicates and invalid entries are rejected, and the total is capped at 500. Candidates added here start in a Pending Invite pending state until you send invitations.

Step 4: Payment

The cost is computed per candidate. If your wallet has credits, they are applied automatically up to the number of candidates, and you can choose to cover the remainder by card or pay the full amount by card. Submitting opens the checkout with the gateway appropriate for your region. See Payments.

Step 5: Send Invites

Review the assessment, problems, candidates, and payment summary. Preview the invitation email, then send. Each candidate receives a unique private link. You can also skip sending and send later from the assessment detail page.

Draft autosave

The wizard continuously saves your draft to the server:

  • The first valid name creates the assessment on the server with status DRAFT and captures the default invitation subject, body, and sender name.
  • Subsequent changes sync on a 1.5 second debounce (configuration, then problems and candidates in separate effects).
  • You can restore a draft later with its draft id.
  • The browser also flushes on unload.

Editing is only allowed while the status is DRAFT, AWAITING_PAYMENT, or PAYMENT_EXPIRED. Once Active, the assessment is locked.

Lifecycle

IndicatorStateEditable?Visible in list?
DraftDRAFTYesNo (drafts are kept in the drafts dialog)
DraftAWAITING_PAYMENTNoNo
DraftPAYMENT_EXPIREDYes (re-editable)No
ActiveACTIVENoYes
CompletedCOMPLETEDNoYes
CancelledCANCELLEDNoFiltered

Activation is confirmed by a server sent event stream on submit; a 30 second poll acts as a fallback if the stream is interrupted.

On this page