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

POST /api/analyze
Submit any URL for analysis. Rate limited: 10 req/IP/hour.
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
POST /api/submit
Community submission. Goes to admin approval queue. Rate limited: 5 req/IP/hour.
GET /api/score
Quick score lookup for browser extension. Returns cached result or auto-queues analysis.
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)
POST /api/dispute
Submit a dispute or opt-out request.
POST /api/report
Community flag for an existing profile.
GET /api/profile/:platform/:handle
Public profile data for approved/published profiles.

Admin API Endpoints

All admin endpoints require the X-Admin-Key header.

GET /api/admin/queue
Pending submissions awaiting review.
POST /api/admin/approve
Approve a submission — publishes page, triggers Google indexing, notifies submitter.
POST /api/admin/reject
Reject a submission.
POST /api/admin/dispute/resolve
Resolve a dispute — approve (remove page) or reject (keep page).
GET /api/admin/disputes
Pending disputes awaiting review.

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
Weight Distribution
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

Installation

  1. Clone the repository: git clone https://github.com/itallstartedwithaidea/argus.git
  2. Open Chrome → chrome://extensions
  3. Enable Developer Mode (top right)
  4. 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)

Every published ARGUS page is protected by five elements:

  1. “Algorithmic analysis, not a verdict” — displayed prominently on every page
  2. Full methodology disclosure — open source, publicly auditable code
  3. Confidence and false positive rate — transparency in scoring
  4. Prominent dispute mechanism — above the fold, not buried
  5. 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.