Step-by-step instructions for every feature. Plain language, clear steps.
Normalize Post removes AI-generated markers from text — non-standard Unicode symbols, mathematical letters, robotic phrasing, and formatting artifacts — and makes content sound natural and human-written. It also rewrites text in seven professional tones using AI.
Works with: LinkedIn posts, Twitter/X threads, Facebook updates, emails, essays, technical documentation, and any longer piece of writing.
Normalize Post is a PWA. Installing it adds a home screen icon and removes the browser address bar — it works like a native app. No app store needed.
Alternatively: Chrome address bar → install icon on the right; Edge ⋮ menu → Apps → Install this site as an app.
| Platform | How to uninstall |
|---|---|
| Android | Long-press icon → Uninstall |
| iOS | Long-press icon → Remove App → Delete App |
| Chrome desktop | Inside the app: ⋮ menu → Uninstall Normalize Post |
| Edge desktop | Inside the app: ⋮ menu → App settings → Uninstall |
You can use Normalize Post without signing up. Available to guests:
To unlock LLM styles, click any style other than "Keep existed" — a sign-in prompt will appear. Even a free account gives you access.
The editor is the large textarea in the center of the page. Ways to get text in:
| Button | What it does |
|---|---|
| 📋 Paste | Pastes text from your clipboard with one click |
| 📎 From File | Extracts text from an image, PDF, or document and puts it in the editor (all plans) |
| 📄 Upload File | Stores a .txt or .md file on the server for repeated use (Pro only) |
You can also type or paste directly (Ctrl+V / Cmd+V). A counter below the textarea shows current / limit chars. Text is automatically trimmed at the plan limit.
| Button | What it does |
|---|---|
| ✨ Normalize | Cleans the text or rewrites it in the selected style |
| 📋 Copy | Copies the result to your clipboard |
| 🗑️ Clear | Empties the textarea so you can start fresh |
As soon as you add text, Normalize Post scans it for AI-generated markers:
Free plan: shows the issue count only. Pro plan: click View details to open the Detection Modal — a list of every problematic character with its Unicode code point and category.
Select a style from the Post Style dropdown in the toolbar, then click ✨ Normalize.
| Style | What it produces | Output length |
|---|---|---|
| Keep existed | Removes AI symbols only. Does not rephrase. | Same as input |
| Professional | Formal but approachable, business/B2B tone | Your setting |
| Casual | Conversational first-person, colleague-over-coffee feel | Your setting |
| Storytelling | Hook → context → event → lesson structure | Your setting |
| Technical | Precise terminology, process/data/metrics focus | Your setting |
| Motivational | Energetic, reader-focused, strong call to action | Your setting |
| Comment | Short, sharp LinkedIn comment — not a full rewrite | Fixed at 500 chars |
| Viral Story | Psychological engagement framework for maximum reach | Fixed at 4,000 chars |
Click ⚙️ in the header to open Settings.
Maximum character count for the rewritten text. Range: 100 to 4,000 chars.
| Plan | Max output length |
|---|---|
| Free | 1,200 chars |
| Pro | 4,000 chars |
When on (default), Markdown formatting (**bold**, _italic_, bullet lists) is preserved. Turn it off for platforms that render plain text only.
A private note sent to the AI with every rewrite request (max 400 characters). Examples:
Saved automatically in localStorage. The AI never reveals these instructions in the output.
Shows LLM tokens consumed in the current period. When the free-plan daily limit is reached, LLM styles are disabled — switch to Keep existed or upgrade.
If your browser supports it, an Install button appears here. Click it to add Normalize Post to your device as a standalone app.
Pull text from any file directly into the textarea. Works on all plans including free.
Supported formats: images (.jpg, .png, .webp, .gif — OCR via AI vision), .pdf, .txt, .docx
Pro users can store .txt and .md files on the server for repeated use without re-uploading. Up to 20 files, 1 MB each.
| Button | What it does |
|---|---|
| Load | Loads file content into the editor |
| Clean | Runs the clean pass on the server and loads the result |
| ↓ | Downloads the file (cleaned version if available) |
| ✕ | Deletes the file from the server |
| Feature | Free | Pro |
|---|---|---|
| Cleanups per day | 10 | Unlimited |
| Max input length | 2,000 chars | 6,000 chars |
| Max output length | 1,200 chars | 4,000 chars |
| LLM styles | 10 per day | Unlimited |
| AI detection details | Count only | Full symbol list |
| 📎 From File (OCR) | Yes | Yes |
| 📄 Upload File (server) | — | Yes |
| Writing preferences | Yes | Yes |
| Price | $0 forever | $9.99/mo or $6.99/mo billed yearly ($83.91/yr) |
Contact support or use the PayPro Global customer portal. After cancellation, your plan remains active until the end of the current billing period.
If you registered with email/password and see "Please confirm your email before signing in":
Click Sign Out in the header (visible after sign-in).
| Problem | Fix |
|---|---|
| "Keep existed" produces no change | The text has no detectable AI Unicode symbols. This style only removes special characters — it does not rephrase. |
| LLM style button greyed out / no response | Daily limit reached (10/day on free plan). Switch to "Keep existed" or wait until midnight UTC. |
| Text trimmed unexpectedly | Exceeds the plan's input limit. Free: 2,000 chars; Pro: 6,000 chars. |
| Output is shorter than expected | Check Output length in Settings. The AI also naturally condenses redundant text. |
| "Server busy" toast | LLM queue is full. Wait 5-10 seconds and retry. |
| File upload fails | File exceeds 1 MB or you have reached the 20-file server limit. Delete some files first. |
| OCR returns garbled text | PDF may be scanned (image-only pages). Upload as image files so the AI vision OCR is used. |
| Google sign-in button not appearing | Wait 2-3 seconds for the sign-in script to load, then reopen the sign-in modal. |
| Payment redirect shows "declined" | Try a different card or contact your bank. No charge was made. |
PostCraft is the AI-powered post creation tool built into Normalize Post. Use it to write, refine, and score social media posts through a chat interface — with audience agent scoring, a personal knowledge vault, and voice analysis.
Open it at /app/normalize. Sign in with the same account used for Normalize Post. PostCraft requires an account — there is no guest mode.
Click New Post in the sidebar or on the welcome screen.
| Field | Notes |
|---|---|
| Original text | Paste a draft to rephrase, or leave empty for a fresh start. Use Paste or 📎 From File to fill this field from a file (image, PDF, DOCX, TXT). |
| Mode | Rephrase, New post, Follow-up story, Counter-argument, LinkedIn comment |
| Style | Professional, Casual, Storytelling, Technical, Motivational, Viral |
| Platform | Any, LinkedIn, Facebook, Twitter/X |
| Variants | How many rewrites the AI generates per reply (1-4). The best-scored variant is selected automatically after agent evaluation. |
| First instruction | Optional prompt sent as your first message (e.g. "Write 2 viral variants") |
Settings (mode, style, platform, variants) are remembered and restored the next time you open the form.
Click Start — a chat session opens and the first instruction is sent automatically.
Type instructions in the message box at the bottom. Press Enter or click Send.
Copy the final text to clipboard or Save to Knowledge to store it in your knowledge base for future context.
Every generated variant is automatically scored by audience personas (Marketer, Recruiter, Developer, etc.). Scores appear as colored chips on each variant card within a few seconds:
Edit persona descriptions in the Insights panel (right side) to customize how each audience judges content.
Click Insights in the nav bar to open the right panel. On desktop (wide screen) it opens automatically.
| Section | What it shows |
|---|---|
| Voice Profile | Your writing style: tone traits and topic interests, analyzed from saved posts. Click Analyze to regenerate. |
| Post Ideas | AI-generated post hooks based on your knowledge base. Click Generate, then Start on any idea to open it as a new post. |
| Personas | Audience persona descriptions. Click Edit to customize, Reset to restore defaults. |
Close the panel with the X button at the top of the Insights panel.
Switch to the Knowledge tab in the nav bar. The knowledge base stores references, notes, news, and saved posts that PostCraft uses as context when generating variants. It has three sub-tabs:
| Sub-tab | What it contains |
|---|---|
| Items | Text notes, references, and saved posts. Searched by the AI when generating variants. |
| Files | Uploaded source files (books, articles, documents). Upload here to ingest content into the wiki. |
| Wiki | Auto-generated wiki pages created during source ingestion. Searchable by keyword and filterable by source. |
Click + Add Item and fill in:
| Button | Action |
|---|---|
| Edit | Opens edit modal — modify title, type, content, URL, or tags |
| X | Deletes the item permanently |
Use the search box to find items by keyword, and the type filter to narrow by category.
Click Upload to add a book, article, or document. Supported formats: .txt, .md, .pdf, .docx, images. The file is ingested and split into wiki pages in the background. Use the Wiki sub-tab to browse and search the resulting pages.
Switch to the Articles tab in the nav bar to create multi-chapter long-form documents (reports, essays, book chapters).
| Problem | Fix |
|---|---|
| No variants generated | Check your internet connection and retry. The LLM fallback chain retries automatically. |
| Agent scores never appear | Score computation runs in background — wait 5-10 seconds. Reload if scores are missing after 30 seconds. |
| Knowledge search returns wrong items | The hybrid search requires at least 2 characters. Use the type filter to narrow results. |
| "Save to Knowledge" stays enabled after saving | Reload the post to see the updated saved status. |
| Post Ideas panel is empty | Click Generate — ideas are created on demand from your knowledge base, not stored permanently. |