Generate structured exams from PDFs with OpenAI GPT-4o and HTML to PDF
Go to WorkflowDescription
๐ ExamForge AI
Automated PDF to Structured Exam Generator (MCQ + Essay + Answer Key)
Generate structured exams automatically from text-based PDF materials using AI.
ExamForge AI is a production-ready n8n workflow that transforms educational content into multiple-choice and essay questions with customizable difficulty and automatic answer key generation.
โจ Features
๐ Upload PDF via Webhook
โ
File size validation (default: max 5MB)
๐งน Automatic text cleaning
๐ Token length estimation & safety control
๐ฏ Customizable MCQ & Essay count
๐ง Difficulty selection (easy / medium / hard)
๐ Language selection
๐ฆ Structured JSON AI output
๐ Separate Exam PDF & Answer Key PDF
๐ฒ Telegram delivery support (optional)
๐ Parameter validation with structured error responses
๐ง What This Workflow Does
Accepts PDF upload via Webhook
Validates file size
Extracts and cleans text content
Estimates text length to prevent token overflow
Validates required parameters:
mcq_count
essay_count
difficulty
language
Sends structured prompt to OpenAI
Parses JSON response
Formats exam and answer key separately
Converts both into PDF
Sends results via Telegram or Webhook response
โ๏ธ Requirements
Accounts Required
OpenAI account (API key required)
Telegram Bot (optional)
PDF Munk (API key required)
Environment
n8n (self-hosted or cloud)
Node version compatible with your n8n installation
๐ Credentials Setup
1๏ธโฃ OpenAI
Add OpenAI credentials inside n8n
Insert your API key
Select preferred model (e.g., GPT-4o / GPT-4)
2๏ธโฃ Telegram (Optional)
Create a Telegram Bot via BotFather
Insert Bot Token into Telegram node
Add your Chat ID
๐ Webhook Configuration
Method: POST
Content-Type: multipart/form-data
Required Parameters
| Parameter | Type | Required | Description |
|--------------|--------|----------|-------------|
| file | File | Yes | PDF document |
| mcq_count | Number | Yes | Number of multiple-choice questions |
| essay_count | Number | Yes | Number of essay questions |
| difficulty | String | Yes | easy / medium / hard |
| language | String | Yes | Output language |
๐ฅ Example Request
curl -X POST https://your-n8n-domain/webhook/examforge \
-F "[email protected]" \
-F "mcq_count=20" \
-F "essay_count=5" \
-F "difficulty=medium" \
-F "language=Indonesian"