A humanizer is not a paraphraser with extra steps. The job is to take a passage that reads as machine-written, preserve its meaning down to the citations, and produce output that lands on every detector as human, in every language we support. Here is how the HumanGPT engine actually does that.
What the engine actually does
At the input, a paragraph from ChatGPT, Claude, Gemini, or any other large language model. At the output, a paragraph a person would have written. The work in between is mostly pattern-breaking. AI text has consistently low perplexity (every word is the statistical median), low burstiness (sentences cluster around the same length), and a shared vocabulary cluster (furthermore, moreover, multifaceted, comprehensive, in essence). The humanizer's job is to break those patterns without changing what the text says.
That sounds like a one-shot prompt: 'rewrite this with more variance.' It is not. The real engine is a loop, because no single rewrite catches every pattern. The detectors we test against (GPTZero, Turnitin AI, Originality.ai, Copyleaks, ZeroGPT, Sapling, Winston AI) each look for slightly different signals. Beating all seven simultaneously requires the rewrite to be checked, scored, and re-rewritten where it falls short.
The pipeline at a glance
Every request goes through the same stages. The plan you are on determines how many passes run.
- 01ValidatePlan check, word-count limits, frozen-keyword extraction, language detection, voice-profile resolution.
- 02Pass 1 rewriteVoice-locked rewrite via our primary rewrite model with per-language target perplexity and burstiness ranges.
- 03Detector consensusOutput scored through perplexity statistics, a transformer-based AI classifier, and a secondary LLM judgment. Any signal saying AI flips the verdict.
- 04Pass 2 rewrite (Pro+)If verdict is AI, targeted re-rewrite with the failed signal as feedback (e.g. 'this passage triggered burstiness; vary lengths more aggressively').
- 05Pass 3 rewrite (Founder)Final polish on the strict-mode reasoning model with the tightest constraints. Used only on the toughest inputs.
- 06Frozen-keyword checkVerify every frozen term is intact in the output. If anything was paraphrased, restore from input and re-run that fragment.
- 07Final post-scrubStrip em-dashes, en-dashes, double-dashes; normalize whitespace; remove banned-word artifacts.
- 08Telemetry writePrivacy-safe SHA-256 hashes of input and output, plan tier, language, country code, model used, ms elapsed.
- 09Return to userOutput text plus a per-detector predicted score so the user can decide whether to re-run.
Pass 1: First-draft humanization
The first pass runs on our primary rewrite model for cost and latency. The system prompt loads the chosen voice profile, the reading level, the language, the input, the frozen keywords, and the per-language target ranges for perplexity and burstiness. The prompt is explicit about what counts as success: target perplexity above the language median, target sentence-length standard deviation above the language median, no banned-word cluster, no em-dashes, meaning preserved as measured by cosine similarity above 0.85 against the input embedding.
Temperature on Pass 1 sits at 0.85. Top-p at 0.92. These values were chosen after running ~3,000 controlled tests against detectors at different sampling settings. Lower temperatures produced bland, easily-detected output. Higher temperatures produced creative output that drifted in meaning. The sweet spot for humanization is right at the boundary of consistent-but-noisy.
Pessimistic detector consensus
After Pass 1, the output goes through three internal signals. First, a perplexity statistic computed against a per-language reference distribution. Second, a transformer-based AI classifier served through an inference API. Third, a secondary LLM judgment from a different model family with an 'is this human writing?' prompt. The three signals each return a probability of AI authorship.
The consensus rule is pessimistic. If the perplexity stat exceeds 60 (out of 100), the output is judged AI. If the transformer classifier exceeds 0.55, AI. If the LLM judge says 'AI', AI. Any one of those three triggers the flip. This is intentionally harder to beat than averaging, because it ensures Pass 2 only accepts an output that satisfies the strictest possible bar. Output that clears pessimistic consensus tends to clear all seven external detectors as well, because the external detectors are also looking at variations of these same three underlying signals.
Pass 2: Targeted re-rewrite on failure
If pessimistic consensus says AI, Pass 2 runs. The failed signal becomes feedback in the new prompt: 'this output triggered perplexity above 65, the transformer classifier returned 0.71, and the secondary LLM flagged the passage as AI for the following reasons: [reasons]. Rewrite to address these specifically.' Targeted feedback dramatically outperforms generic 'try again' prompts. Convergence is typically achieved in one or two passes even on the toughest inputs.
Pass 2 also escalates the model tier. If Pass 1 ran on the primary rewrite model, Pass 2 hands off to a different model family. The variance between model families helps avoid the trap of a single model's idiomatic patterns being detected.
Pass 3 (Founder only): Final polish on the strict-mode reasoning model
Founder-tier requests get a third pass on the strict-mode reasoning model with the tightest target ranges. This is reserved for the absolute hardest inputs (highly formal legal text, dense academic prose, non-native English samples that have been edited heavily). It adds latency and cost, which is why it is only available on the one-time lifetime tier. In practice, less than 10% of Founder requests trigger Pass 3; most converge in Pass 1 or Pass 2.
Model failover chain
Single-vendor dependency is a fragile architecture. Any provider goes down at some point. The HumanGPT engine routes across three independent provider tiers in a strict failover order, all configured with identical prompts and similar temperature settings.
- 01Tier 1 — Primary rewrite modelCheapest per token, lowest latency. Default for Pass 1 on Free and Pro tiers.
- 02Tier 2 — Secondary failover (different model family)Activated when Tier 1 is rate-limited or unavailable. Different rewrite cadence helps avoid single-model detector signatures.
- 03Tier 3 — Tertiary reliability fallbackFinal fallback. Higher cost, very reliable. Activated when both Tier 1 and Tier 2 fail.
- 04Founder Pass 3 — Strict-mode reasoning modelStrictest output, used only on the hardest cases on the Founder tier.
Voice profiles and reading levels
HumanGPT ships 10 voice profiles: Academic, Cover Letter, Marketing, Story, Report, Business, Legal, Article, Essay, and General. Each profile carries its own banned-word list, its own target burstiness range, and its own structural rules. Academic voice keeps citation density high and avoids contractions. Cover Letter voice opens warm, names a specific company detail, and closes with a clear call to a meeting. Marketing voice leans on short punchy sentences and concrete benefit claims.
Reading levels (High School, University, Doctorate, Journalist) control vocabulary range and sentence complexity. High School avoids SAT vocabulary; Doctorate uses the full technical range where the topic warrants. The right pairing of profile and reading level produces output that fits the use case as well as it clears the detector. Wrong pairing produces output that scores well but reads off-tone, which is a different quality failure.
Per-language calibration across 30+ locales
Most humanizers run English prompts on non-English text and call it multilingual support. The output is poor and the detection rates are even worse, because each language has its own perplexity and burstiness baselines. French academic prose has different sentence-length distributions than English academic prose. Spanish marketing copy reads in radically different cadence than German.
HumanGPT calibrates each of the 30+ supported languages individually. Native speakers reviewed sample inputs and outputs. Per-language target ranges for perplexity and burstiness were extracted from native human corpora. Per-language banned word lists were assembled (the equivalent of the English 'furthermore' cluster, in each language). The prompt switches based on detected language and the engine ships a different system message for each locale.
Frozen keywords and citation safety
Citations cannot be paraphrased. Brand names cannot be reworded. SEO target keywords cannot be replaced with synonyms. HumanGPT's frozen-keyword feature accepts a comma-separated list of terms that must pass through the rewrite untouched. The implementation is a final-pass verification: after the humanization is complete, the engine checks that every frozen term still appears in the output. If any term was paraphrased, the engine substitutes the input fragment back in or re-runs that section with stricter instructions.
This solves the most-common humanizer failure mode: a citation like (Smith, 2019) silently becoming (Smyth, 2019) because a paraphraser-style rewrite touched the surface of the citation. That failure is bad in unrecoverable ways for academic and legal writing. HumanGPT treats it as a hard correctness constraint, not an optimization target.
Rate limiting and abuse prevention
The free tier is 200 words per day per client. The rate limiter uses Upstash Redis in production with an in-memory fallback for local development. Pro tier caps at 50,000 words per month with a daily soft cap to prevent burst abuse. Founder tier is unlimited words but still subject to the daily soft cap so a compromised account cannot drain quota in seconds.
Guest abuse (high-volume scraping from a single IP without an account) is detected automatically. The /sg-ops admin dashboard surfaces top abusers in the last 24 hours and offers a one-click block. Blocked client IDs are cached server-side with a 60-second TTL so changes propagate quickly without thrashing the database.
Privacy-safe telemetry
HumanGPT logs every humanization run for product analytics and detector benchmarking. The log row contains: SHA-256 hash of the input text, SHA-256 hash of the output text, plan tier (free, pro, founder), language code, country code (from the x-vercel-ip-country header), voice profile, reading level, model used, milliseconds elapsed, internal detector verdict. The actual text is never logged. Hashes are one-way; we cannot reconstruct what was humanized. The country code is granular only to ISO-3166-1 alpha-2 and is used for usage analytics.
Edge cases the engine handles
- 01Mixed-language inputDetected and routed to the dominant language profile, with localized handling for inline foreign-language quotations.
- 02Code blocksCode is identified by markdown fences and pass-through unchanged. Surrounding prose is humanized normally.
- 03Citation-heavy textCitations are auto-frozen even without explicit user input. The engine recognizes APA, MLA, Chicago, and Harvard citation patterns.
- 04Already-human inputIf the engine detects the input is human (via the same pessimistic consensus), it returns the input unchanged with a notice. No spurious rewrites.
- 05Very short inputBelow 30 words, the engine warns the user that humanization is unreliable on snippets and offers to skip the run rather than waste quota.
- 06Very long inputAbove the per-tier word cap, the engine chunks intelligently at paragraph boundaries, processes each chunk with shared frozen keywords, and reassembles the document with consistent voice.