ARGUS Documentation
Complete reference for the ARGUS algorithmic authenticity analysis platform. Setup, API, detection methodology, and deployment.
Overview
ARGUS analyzes any social media profile or post across LinkedIn, Reddit, Instagram, X, and Facebook and returns a trust score (0–100) with full reasoning. Flagged profiles get a public landing page indexed by Google. All analysis is framed as algorithmic opinion — not a verdict. Profile owners can dispute at any time.
Every page that goes live has been reviewed and approved by a human.
Setup & Deploy
1. Prerequisites
npm install -g wrangler
wrangler login
2. Create Cloudflare Resources
# D1 database
wrangler d1 create argus-db
# R2 buckets
wrangler r2 bucket create argus-evidence-vault
wrangler r2 bucket create argus-screenshots
# KV namespaces
wrangler kv:namespace create SCORE_CACHE
wrangler kv:namespace create RATE_LIMITER
wrangler kv:namespace create SESSION
# Queues
wrangler queues create argus-analysis-queue
wrangler queues create argus-notify-queue
3. Update wrangler.toml
Paste the IDs from step 2 into wrangler.toml.
4. Initialize Database
wrangler d1 execute argus-db --file=./schema/d1_schema.sql
5. Set Secrets
wrangler secret put ADMIN_SECRET_KEY # Your private admin key
wrangler secret put HIVE_API_KEY # hive.ai free tier
wrangler secret put GPTZERO_API_KEY # gptzero.me free tier
wrangler secret put SEARCH_CONSOLE_KEY # Google Search Console
wrangler secret put EMAIL_API_KEY # Resend or Cloudflare Email
6. Deploy
# Deploy Worker API
wrangler deploy workers/api/index.js
# Deploy Pages frontend
cd pages && npm install && npm run build
wrangler pages deploy .next
Public API Endpoints
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | Profile URL to analyze |
| engines | array | No | Engines to run: image, text, behavioral, network, or all |
| notify_email | string | No | Email for completion notification |
| Parameter | Type | Required | Description |
|---|---|---|---|
| platform | string | * | Platform: linkedin, reddit, instagram, x, facebook |
| handle | string | * | Profile handle/username |
| url | string | * | Full profile URL (alternative to platform+handle) |
Admin API Endpoints
All admin endpoints require the X-Admin-Key header.
Detection Engines
Image Engine (20% weight)
| Check | Tool | Detects |
|---|---|---|
| GAN Artifacts | Hive AI | AI-generated faces, StyleGAN artifacts |
| C2PA Provenance | C2PA SDK | Missing Content Credentials, origin verification |
| Reverse Image | SerpAPI | Stock photos, cross-platform image reuse |
| EXIF Metadata | ExifTool | Stripped metadata, inconsistent camera data |
Text Engine (15% weight)
| Check | Tool | Detects |
|---|---|---|
| AI Text Probability | GPTZero | AI-generated text across bio and posts |
| Stylometric Variance | Custom | Unnaturally consistent writing style |
| Agenda Concentration | Custom | Single-topic content farming |
| Linguistic Patterns | NLP | Non-human linguistic markers |
Behavioral Engine (30% weight)
| Check | Detects |
|---|---|
| Account Age vs. Activity | New accounts with disproportionate activity |
| Digital Footprint | Zero pre-account digital presence |
| Posting Time Patterns | Robotic posting intervals |
| Personal Content Ratio | Absence of personal/casual content |
Network Engine (35% weight)
| Check | Detects |
|---|---|
| Connection Age Distribution | Networks of predominantly new accounts |
| Flagged Account Clusters | Connections to previously flagged profiles |
| Coordinated Behavior | Synchronized posting patterns across accounts |
Scoring Methodology
The final trust score is a weighted aggregate of all engine scores.
| Score Range | Verdict | Meaning |
|---|---|---|
| 0 – 25 | Critical | Multiple high-severity signals across engines |
| 26 – 40 | High Risk | Significant anomalies in at least two engines |
| 41 – 60 | Medium Risk | Some suspicious signals; review recommended |
| 61 – 100 | Low Risk | No significant authenticity concerns detected |
Network (35%) > Behavioral (30%) > Image (20%) > Text (15%). Network analysis carries the highest weight because coordinated inauthentic behavior is the strongest indicator of fake account networks.
Database Schema
ARGUS uses Cloudflare D1 (SQLite) with six tables:
| Table | Purpose | Key Fields |
|---|---|---|
| profiles | Analyzed accounts | trust_score, signals, risk_level, slug, status |
| disputes | Opt-out/challenge requests | evidence_tier, status, resolution |
| submissions | Incoming analysis queue | admin_status, profile_id |
| networks | Coordinated account clusters | coordination_score, account_count |
| network_members | Profile-to-network junction | network_id, profile_id |
| community_reports | Crowdsourced flags | profile_id, report_reason |
Full schema: d1_schema.sql on GitHub
Cloudflare Services
| Service | Binding | Purpose | Free Tier |
|---|---|---|---|
| D1 | DB | SQLite database | 5 GB + 25M reads/day |
| R2 | EVIDENCE_VAULT, SCREENSHOTS | Immutable evidence archive | 10 GB + 10M ops/month |
| KV | SCORE_CACHE, RATE_LIMITER, SESSION | Score cache + rate limiting | 100K reads/day |
| Workers | — | API + pipeline orchestration | 100K req/day |
| Queues | ANALYSIS_QUEUE, NOTIFY_QUEUE | Async job processing | 1M messages/month |
| Pages | — | Frontend hosting | Unlimited |
Browser Extension
ARGUS includes a Chrome MV3 extension that injects trust badges directly onto social media platforms as you browse.
Supported Platforms
- LinkedIn — profile cards, search results, feed mentions
- Reddit — post authors, user profiles
- X / Twitter — tweets, user cells
- Instagram — posts, profile pages
- Facebook — profile pages (host_permissions only)
Installation
- Clone the repository:
git clone https://github.com/itallstartedwithaidea/argus.git - Open Chrome →
chrome://extensions - Enable Developer Mode (top right)
- Click “Load Unpacked” → select the
extension/folder
How It Works
The content script uses MutationObserver to detect dynamically loaded profile cards on SPAs. When a profile is found, it queries /api/score for the trust score. Profiles with scores below 75 get a color-coded badge injected next to the profile name. Clicking the badge opens the full analysis page.
| Score | Badge | Color |
|---|---|---|
| ≤ 25 | CRITICAL | Red |
| 26 – 40 | HIGH RISK | Orange |
| 41 – 60 | MEDIUM | Amber |
| 61 – 75 | CLEAN | Green |
| > 75 | (no badge) | — |
Legal Architecture
Every published ARGUS page is protected by five elements:
- “Algorithmic analysis, not a verdict” — displayed prominently on every page
- Full methodology disclosure — open source, publicly auditable code
- Confidence and false positive rate — transparency in scoring
- Prominent dispute mechanism — above the fold, not buried
- Human editorial review — every published page reviewed by admin
Language used throughout: “flagged for review”, “high risk”, “scored X/100 based on these signals” — never “fake”, “fraud”, or “criminal”.
Dispute Process
Anyone can submit a dispute at /tools/argus/dispute.html.
| Tier | Evidence | Outcome |
|---|---|---|
| Tier 1 | Government ID + platform verification | Auto-approve removal |
| Tier 2 | Cross-platform presence, employer confirmation | Human review |
| Tier 3 | “I am real” with no supporting evidence | Dispute denied |
Resolved disputes convert the page to a “dispute resolved” notice — retained for transparency, score removed from public display. Review timeline: 14 business days.