Linkedin detector tester skill

Pipes any text through 5+ AI detectors at once and prints how badly they disagree.

by sergebulaev·MIT license·★ 3,059 Stars on the repo·GitHub ↗

Use now

Files of Linkedin detector tester

sergebulaev/main1 file
detector-tester.md
Show the full text123 lines

LinkedIn Detector Tester

Pipes any text through 5+ AI detectors at once and prints how badly they disagree. The point is not to find the "right" score. The point is to show there is no right score.

Before you run it: your draft leaves your machine

This is the one skill in the bundle that sends your text to someone else. Every detector here is a hosted API, so running it uploads the draft, in full, to whichever services you have keys for: GPTZero, Originality.ai, ZeroGPT, Sapling, Copyleaks, Hive, QuillBot, Writer and Scribbr. Nothing else in this bundle does that. Drafting, scrubbing, auditing and profile-building all happen locally, and publishing goes only to Publora.

What that means in practice:

  • An unpublished post is not private once you test it. Treat the text as disclosed to every provider whose key is set, under their terms and retention policy, not ours.
  • Do not run it on anything confidential: unannounced launches, client names, numbers under embargo, anything covered by an NDA.
  • Only the detectors you have keys for are called. No key, no request to that service. Running with no keys at all makes no network calls.
  • It is worth asking whether you need it. The verdict this sub-skill exists to deliver is that the scores disagree and none of them mean much, which is a point you can take on trust rather than paying for with your draft.

Why this exists

AI detectors get treated like medical tests. They are not. They are vibe checks with a percentage sign.

The receipts:

  • Stanford 2023 (Liang et al., Patterns / Cell Press): 7 AI detectors flagged 61.3% of TOEFL essays from non-native English speakers as AI-generated. Same detectors flagged 5.1% of US-born 8th graders. The bias is against ESL writers, not against AI.
  • OpenAI shut down its own AI Text Classifier in July 2023 because it hit only 26% accuracy on AI-written text. The company that builds the AI could not reliably detect the AI.
  • Vanderbilt University disabled Turnitin's AI detection citing false-positive risk to students. Other R1 schools followed.
  • Newby v. Adelphi University (October 2025): a federal court ordered the university to expunge an AI-cheating violation from a student's record after the only "evidence" was a detector score.
  • Sergey's team test: same article, three detectors, scores 82% / 100% / 50%. That is a 50-point spread on identical text.

If accusations are coming, this skill produces the screenshot.

When to use

  • Someone accuses a post, essay, or proposal of being AI-written based on a single detector score
  • Before defending a writer publicly, get the spread on record
  • As a follow-up to Sergey's controversial detector post — paste any flagged text, run it, screenshot the divergence
  • Internal QA on Co.Actor drafts before publishing to high-stakes audiences

Input

Any text. 200+ words gives the most stable spread; under 100 words and detectors get even more random.

Optional: a label (e.g. "ESL student essay", "GPT-4 output", "1995 Carl Sagan column") for the output header.

Output

Text: "<first 60 chars>..."
Length: 412 words

Detector scores (% AI probability):
  GPTZero         82
  Originality.ai  100
  ZeroGPT         50
  Sapling         34
  Copyleaks       91

Min: 34   Max: 100   Spread: 66

Verdict: USELESS — detectors disagree by more than 50 points.
Translation: nobody actually knows. The accusation is a coin flip.

The three verdicts

Spread (max - min) Verdict What it means
≤ 15 points CONSENSUS Detectors agree. Still not proof, but at least they're not contradicting each other.
16-30 points MIXED Some signal, but enough disagreement that no single score is defensible.
31-50 points DIVERGENT The detectors are flipping a coin.
> 50 points USELESS The spread is bigger than half the scale. Whatever you decide, the opposite detector also "proves" it.

How to run

cd /home/sbulaev/p/linkedin-skills/skills/linkedin-humanizer
python3 scripts/test_detectors.py --text "$(cat draft.txt)"

Or pipe in:

cat draft.txt | python3 scripts/test_detectors.py --stdin

Most detectors gate their API behind paid plans. The script supports three modes:

  1. API mode — copy ../scripts/detectors.env.example to .env and fill the keys you have (GPTZERO_API_KEY, ORIGINALITY_API_KEY, ZEROGPT_API_KEY, SAPLING_API_KEY, COPYLEAKS_API_KEY + COPYLEAKS_EMAIL). Detectors with valid keys run automatically; missing-key detectors are dropped from the report.
  2. Manual paste mode (--manual) — opens each detector's web UI, prompts the user to paste the score back. Slower but free, and captures detectors with no API.
  3. Demo mode (--demo) — offline. Returns deterministic canned scores derived from a hash of the input. No API calls, no keys needed. Use to smoke-test the workflow or to demonstrate the divergence pattern without spending API credit.

Install dependencies first:

pip install -r ../../../requirements-lock.txt

Files

  • ../references/detector-list.md — supported detectors, API endpoints, known accuracy issues, citations
  • ../scripts/test_detectors.py — runs the parallel test, computes spread, prints verdict
  • Python deps (requests, python-dotenv) come from the bundle's own ../../../requirements.txt, pinned in ../../../requirements-lock.txt. The script has no separate manifest: one that has to be kept in sync with the root is one that drifts, and this one already had.
  • ../scripts/detectors.env.example — template for the 5 detector API keys (copy to .env)
  • linkedin-humanizer — rewrites text after a high score (or before, defensively)
  • post-audit.md (sibling) — pre-publish check that catches AI tells without relying on detectors

What this skill is not

It is not a detector. It does not claim a piece of text is or is not AI-written. It only documents how much the existing detectors disagree, so that a single score can never again be used as a trump card.

1# LinkedIn Detector Tester
2 
3Pipes any text through 5+ AI detectors at once and prints how badly they disagree. The point is not to find the "right" score. The point is to show there is no right score.
4 
5## Before you run it: your draft leaves your machine
6 
7This is the one skill in the bundle that sends your text to someone else. Every detector
8here is a hosted API, so running it uploads the draft, in full, to whichever services you
9have keys for: GPTZero, Originality.ai, ZeroGPT, Sapling, Copyleaks, Hive, QuillBot,
10Writer and Scribbr. Nothing else in this bundle does that. Drafting, scrubbing, auditing
11and profile-building all happen locally, and publishing goes only to Publora.
12 
13What that means in practice:
14 
15- **An unpublished post is not private once you test it.** Treat the text as disclosed to
16 every provider whose key is set, under their terms and retention policy, not ours.
17- **Do not run it on anything confidential**: unannounced launches, client names, numbers
18 under embargo, anything covered by an NDA.
19- **Only the detectors you have keys for are called.** No key, no request to that service.
20 Running with no keys at all makes no network calls.
21- It is worth asking whether you need it. The verdict this sub-skill exists to deliver is
22 that the scores disagree and none of them mean much, which is a point you can take on
23 trust rather than paying for with your draft.
24 
25## Why this exists
26 
27AI detectors get treated like medical tests. They are not. They are vibe checks with a percentage sign.
28 
29The receipts:
30 
31- **Stanford 2023** (Liang et al., Patterns / Cell Press): 7 AI detectors flagged **61.3% of TOEFL essays from non-native English speakers** as AI-generated. Same detectors flagged 5.1% of US-born 8th graders. The bias is against ESL writers, not against AI.
32- **OpenAI shut down its own AI Text Classifier in July 2023** because it hit only **26% accuracy** on AI-written text. The company that builds the AI could not reliably detect the AI.
33- **Vanderbilt University disabled Turnitin's AI detection** citing false-positive risk to students. Other R1 schools followed.
34- **Newby v. Adelphi University (October 2025)**: a federal court ordered the university to expunge an AI-cheating violation from a student's record after the only "evidence" was a detector score.
35- **Sergey's team test**: same article, three detectors, scores **82% / 100% / 50%**. That is a 50-point spread on identical text.
36 
37If accusations are coming, this skill produces the screenshot.
38 
39## When to use
40 
41- Someone accuses a post, essay, or proposal of being AI-written based on a single detector score
42- Before defending a writer publicly, get the spread on record
43- As a follow-up to Sergey's controversial detector post — paste any flagged text, run it, screenshot the divergence
44- Internal QA on Co.Actor drafts before publishing to high-stakes audiences
45 
46## Input
47 
48Any text. 200+ words gives the most stable spread; under 100 words and detectors get even more random.
49 
50Optional: a label (e.g. "ESL student essay", "GPT-4 output", "1995 Carl Sagan column") for the output header.
51 
52## Output
53 
54```
55Text: "<first 60 chars>..."
56Length: 412 words
57 
58Detector scores (% AI probability):
59 GPTZero 82
60 Originality.ai 100
61 ZeroGPT 50
62 Sapling 34
63 Copyleaks 91
64 
65Min: 34 Max: 100 Spread: 66
66 
67Verdict: USELESS — detectors disagree by more than 50 points.
68Translation: nobody actually knows. The accusation is a coin flip.
69```
70 
71## The three verdicts
72 
73| Spread (max - min) | Verdict | What it means |
74|---|---|---|
75| ≤ 15 points | **CONSENSUS** | Detectors agree. Still not proof, but at least they're not contradicting each other. |
76| 16-30 points | **MIXED** | Some signal, but enough disagreement that no single score is defensible. |
77| 31-50 points | **DIVERGENT** | The detectors are flipping a coin. |
78| > 50 points | **USELESS** | The spread is bigger than half the scale. Whatever you decide, the opposite detector also "proves" it. |
79 
80## How to run
81 
82```bash
83cd /home/sbulaev/p/linkedin-skills/skills/linkedin-humanizer
84python3 scripts/test_detectors.py --text "$(cat draft.txt)"
85```
86 
87Or pipe in:
88 
89```bash
90cat draft.txt | python3 scripts/test_detectors.py --stdin
91```
92 
93Most detectors gate their API behind paid plans. The script supports three modes:
94 
951. **API mode** — copy `../scripts/detectors.env.example` to `.env` and fill the keys you have (`GPTZERO_API_KEY`, `ORIGINALITY_API_KEY`, `ZEROGPT_API_KEY`, `SAPLING_API_KEY`, `COPYLEAKS_API_KEY` + `COPYLEAKS_EMAIL`). Detectors with valid keys run automatically; missing-key detectors are dropped from the report.
962. **Manual paste mode** (`--manual`) — opens each detector's web UI, prompts the user to paste the score back. Slower but free, and captures detectors with no API.
973. **Demo mode** (`--demo`) — offline. Returns deterministic canned scores derived from a hash of the input. No API calls, no keys needed. Use to smoke-test the workflow or to demonstrate the divergence pattern without spending API credit.
98 
99Install dependencies first:
100 
101```bash
102pip install -r ../../../requirements-lock.txt
103```
104 
105## Files
106 
107- `../references/detector-list.md` — supported detectors, API endpoints, known accuracy issues, citations
108- `../scripts/test_detectors.py` — runs the parallel test, computes spread, prints verdict
109- Python deps (`requests`, `python-dotenv`) come from the bundle's own
110 `../../../requirements.txt`, pinned in `../../../requirements-lock.txt`. The script
111 has no separate manifest: one that has to be kept in sync with the root is one that
112 drifts, and this one already had.
113- `../scripts/detectors.env.example` — template for the 5 detector API keys (copy to `.env`)
114 
115## Related skills
116 
117- `linkedin-humanizer` — rewrites text after a high score (or before, defensively)
118- `post-audit.md` (sibling) — pre-publish check that catches AI tells without relying on detectors
119 
120## What this skill is not
121 
122It is not a detector. It does not claim a piece of text is or is not AI-written. It only documents how much the existing detectors disagree, so that a single score can never again be used as a trump card.
123 

Discussion