Problems
The problem library, search and filters, AI smart variations, and how problems are assigned to an assessment.
Problems
Every assessment is built from problems, the coding challenges your candidates solve. You choose them in Step 2 of the wizard from a shared library, or generate an AI variation of a problem.
The library
The library is the real, API backed problem bank shown in the wizard. (A separate internal Problem Bank page exists in the product but is mock data and not part of the recruiter workflow; do not rely on it.)
Search and results come from the problem service. You can:
- Search by title or keyword (free text).
- Filter by difficulty (Easy Easy, Medium Medium, Hard Hard).
- Sort by id, title, acceptance rate, likes, or difficulty.
- Filter by concepts (the problem tags), loaded from the tag list.
- Toggle Smart Variation to show only AI generated variations.
Each problem carries a title, difficulty, category (Algorithms, Database, Shell, Concurrency), likes, an acceptance rate, tags, a full statement, and one sample test case. Selecting a problem opens a detail panel on the right.
What the search actually matches
Free text matches the problem title, or an exact numeric id if you type only digits. It does not search descriptions. Selecting multiple concept tags widens results (an OR), it does not narrow them.
Assigning problems
Select up to five problems. Each selected problem shows a numbered badge in selection order (1, 2, 3). The footer shows how many are selected and a Continue button that is disabled until at least one problem is chosen.
When the assessment has a server id and is still in an editable state, your selection is saved with a PUT to the problems endpoint on every add or remove.
Smart variations
Smart Variation rewrites an existing problem into a new, equivalent challenge. It is a manual, per problem action, not an automatic per candidate generation. One click produces one new variation that is stored server side and reused for everyone taking that assessment.
To generate one:
- Open a problem in the detail panel.
- Click Variation (with the sparkle icon). The button is disabled if the problem is already a variation.
- Wait while it generates. The UI shows a generating state for up to about 60 seconds and blocks navigation; do not leave the step.
- Review the rewritten problem, then click Use This to add it to the assessment.
The new variation is marked with a Smart Variation and is visible to your whole company. Only the creator or a same org admin can delete it, and deletion is a soft delete. The product renders the same badge whenever a problem is an AI-generated variation, tinted with the info color (bg-info/10 text-info).
Variations are shared across your company
A variation you create is usable by any recruiter or admin in your workspace. It is not private to you, and it is not unique per candidate. If you want different candidates to get different problems, you create the variations yourself and choose which to assign.
Generation can fail or time out. If it does, retry. While a variation has only its statement and a copied sample test case, it may not yet have verified test cases or starter code; the platform enriches variations internally after creation.
What you cannot see
In the dashboard you can preview a problem's statement and one sample test case, but you cannot view the hidden test case set or the per language starter code. Those are used during candidate execution and are not exposed to recruiters.
Limits to remember
- Maximum five problems per assessment.
- At least one problem is required to leave Step 2.
- Problem selection is frozen once the assessment is
ACTIVE.