Build a question bank in an afternoon
You do not need a question bank to start. Generate one with an AI assistant from a sample file, typeset real mathematics, and hang diagrams off any question — then review every answer before it goes anywhere near a candidate.
Generate questions with an AI assistant
Questions are supplied as a JSON array, which is a format any general AI assistant produces reliably. Hand it one of our sample files as the example, tell it what you want, and save the reply.
1. Start from a sample
Download one of the three files below and attach it to your chat. It carries the format, so you do not have to describe it.
2. Ask for the set
Use the prompt below, edited for your sections and counts. The limits are written into it so the reply stays inside them.
3. Review, then upload
Check the answers, save the reply as a .json file, and import it
into a draft quiz.
A worked prompt — replace the sections, counts, and difficulty mix with your own:
Using the JSON format in the file I've attached, create 100 GRE-style questions
across 4 sections: "Maths", "Comprehension", "Puzzle", and "English", with 25
questions in each section.
Difficulty mix across the whole set: 50 easy questions, 25 medium, and 25 hard.
Rules:
- Every question is multiple choice with exactly 4 options.
- "correctAnswer" is the one-based index of the correct option (1 = first option).
- Use the exact section names listed above, spelled identically everywhere.
- Do not duplicate questions.
- Solve each question yourself and confirm the indexed option is the right answer.
- Return ONLY the raw JSON array. No markdown code fences, no commentary,
no explanation before or after.
Limits - these are enforced on upload, so do not exceed any of them:
- At most 720 questions and at most 20 distinct section names in the file.
- Question "text": under 2000 characters. Keep it under 300 for readability.
- Each option: under 2000 characters. Keep options short and comparable.
- Between 1 and 5 options per question (use 4).
- "correctAnswer": an integer from 1 to the number of options.
- Each question object must serialise to under 8000 characters of JSON.
Review every generated answer. Questions are locked once submitted.
An AI assistant will produce a confident correctAnswer that is sometimes
simply wrong, and a wrong key marks a right answer as a failure. Check each one
against its options before you import. After questions are submitted to a quiz they
are locked and cannot be edited, because changing them would alter
attempts already sat against them.
Using AI to write the paper, not to sit it.
These are two different things. Here, you generate questions ahead of time and a human reviews every answer before anyone sees them. During an exam, an unknown party answers with nobody checking — which is what our anti-AI measures are aimed at. Those measures are deterrents that leave a record for a reviewer; they do not prevent cheating, and we do not claim they do.
Maths, typeset with KaTeX
Write LaTeX between dollar signs in the question text or in any option, and it renders as properly typeset mathematics for the participant.
| To write | Use |
|---|---|
| Square root | $\\sqrt{2}$ |
| Fraction | $\\frac{3}{4}$ |
| Exponent | $x^2$, $2^{10}$ |
| Subscript | $a_1$, $H_2O$ |
| Integral | $\\int_0^1 x^2 dx$ |
| Sum | $\\sum_{i=1}^{n} i$ |
| Times / divide | $3 \\times 4$, $8 \\div 2$ |
| Plus-minus | $\\pm 5$ |
| Not equal, ≤, ≥ | $\\neq$, $\\leq$, $\\geq$ |
| Pi, theta | $\\pi$, $\\theta$ |
| Degrees | $90^\\circ$ |
{
"text": "Simplify $\\sqrt{12} + \\sqrt{27}$.",
"section": "Algebra",
"options": ["$5\\sqrt{3}$", "$6\\sqrt{3}$", "$39$", "$\\sqrt{39}$"],
"correctAnswer": 1
}
Double every backslash
This is JSON, so a LaTeX \sqrt is written \\sqrt in the
file. It is the single most common authoring mistake. A single backslash either
makes the file invalid JSON, or is swallowed as an escape and the maths shows as
raw source.
Close every dollar sign
An unpaired $ is treated as a literal dollar sign, so a stray one
leaves the rest of the sentence unrendered. For a real dollar amount, write
\\$5.
KaTeX runs with linking and image commands disabled, so \href,
\url and \includegraphics stay inert in question text.
Maths is notation, never a way into the page.
Questions with pictures
Add an optional imageUrl to any question and it is shown between the
question text and the options — circuit diagrams, charts, pattern sequences,
spot-the-difference. SVG works particularly well.
{
"text": "Which shape comes next in the sequence?",
"section": "Visual Reasoning",
"imageUrl": "https://your-cdn.example.com/seq.svg",
"options": ["Square", "Triangle", "Circle", "Pentagon"],
"correctAnswer": 3
}
https:// only
Up to 500 characters, with no spaces or quotes. Plain http: is
blocked by the browser as mixed content on a secure exam page, and
data: URLs are rejected on upload.
Reachable without a login
A Google Drive, OneDrive, or Dropbox share link usually serves an HTML preview
page rather than the image itself, and will not render. Use a direct link ending
.png, .jpg, .webp, or .svg,
on a host that allows hotlinking.
Images are linked, not stored — host them somewhere you control.
The participant's browser loads the image straight from whatever host you name. We check the URL is well-formed; we do not fetch the file, copy it, or watch it afterwards. If that host goes down, rate-limits, or the picture is swapped after import, the exam sees the change and we cannot warn you — so re-check your links before you activate a quiz. If an image does fail to load, the participant gets a short "image could not be loaded" line and the question stays fully answerable; a broken image never blocks an exam.
Will this hold my exam?
One quiz stores up to 720 questions across 20 sections by default — comfortably more than a full-length aptitude paper, with room for a bank you draw randomised sets from. The rest of the numbers matter mostly when you are generating a large file at once.
| Limit | Default | Notes |
|---|---|---|
| Questions stored in one quiz | 720 | The whole bank, not the number any one person answers. |
| Sections per quiz | 20 |
Distinct section values. Watch for spelling drift — "Maths" and
"Math" count as two.
|
| Answer choices per question | 1–5 | Four is the norm and what we would recommend. |
| Question and option text | 2,000 characters | Aim well under 300 so a question reads without scrolling. |
| One question, serialised | 8,192 characters | The whole question object as JSON. Only a long passage or a large embedded snippet gets close. |
imageUrl |
500 characters | Omit the field entirely when a question has no image. |
correctAnswer counts from 1.
1 is the first option and 4 is the fourth;
0 is rejected. It is the field most easily got wrong — a file exported
from a zero-based tool needs every answer shifted up by one.
These are defaults, not hard ceilings — every one of them is a server-side setting. If your exam needs more, tell us what you need and we will look at it.
Sample question files
Three ready-to-edit files, each showing one capability. Download the one closest to what you are building — attach it to an AI assistant as the format example, or just edit it by hand for a small quiz.
| Sample | Shows you how to write |
|---|---|
| Plain text questions | Numerical, verbal, and logical reasoning in plain text, including how to write angle brackets safely. |
| Maths with KaTeX | Square roots, powers, fractions and ratios written as LaTeX — with the backslashes doubled correctly. |
| Questions with images |
Pattern sequences and chart reading, using imageUrl alongside the
question text.
|
For the complete field reference — every field, its type, and whether it is required — see the import format on the product page.