Skip to content

Member Onboarding Process

This guide covers the complete process for inviting and onboarding new members into the IrregularChat community. The system is built on a vouch-based trust model where every member is personally vouched for by an existing community member.

The onboarding flow consists of three main stages:

┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ !invite │ ──► │ !request │ ──► │ !gtg │
│ (Voucher) │ │ @NewUser │ │ (Approve) │
└─────────────┘ └─────────────┘ └─────────────┘
│ │ │
▼ ▼ ▼
Add invitee New user SSO account +
to Entry chat provides intro Group invites

Every member in IrregularChat has been personally vouched for by an existing member. This creates accountability chains:

  • Vouchers are accountable for who they bring in
  • New members know who connected them to the community
  • Group welcomes show the voucher relationship

When an existing member wants to invite someone new:

!invite

What happens:

  1. The voucher is added to Entry/INDOC chat (if not already there)
  2. A DM is sent with step-by-step instructions
  3. The Entry chat shows a welcome prompting them to add their invitee

Instructions sent to voucher:

  1. Share the community wiki first: https://irregularpedia.org (Rules of Engagement)
  2. Add invitee via Entry group settings
  3. Use !request @TheirName to start verification

When the voucher initiates verification, they become the designated voucher:

!request @NewUser

What happens:

  1. Verification request created with voucher info stored
  2. Welcome message sent to the new user with intro template
  3. When new user provides intro, they’re auto-approved (voucher already known)

Admins can initiate verification without vouching:

!request -nv @NewUser
!request --no-vouch @NewUser

Use case: Admin helping with onboarding but not personally vouching. The new user will need to @mention their actual voucher in their intro.

New users receive this template to fill out:

1. NAME
2. YOUR_ORGANIZATION
3. EMAIL_OR_EMAIL_ALIAS
4. YOUR_INTERESTS
5. LinkedIn profile link (optional)

If the voucher used !request @NewUser:

  1. New user provides intro (substantive text)
  2. Auto-approved - no confirmation needed
  3. SSO account created automatically
  4. User added to recommended groups
  5. Group welcomes show voucher name

If admin used !request -nv @NewUser or user typed !request alone:

  1. New user provides intro
  2. Bot prompts: “Please @mention who invited you”
  3. User edits to include @VoucherName
  4. Voucher receives confirmation request
  5. Voucher replies “yes” to approve
  6. SSO account created, groups assigned

Manual approval by admins (bypasses vouch confirmation):

!gtg @NewUser

What happens:

  1. SSO account created (if configured)
  2. User added to recommended groups based on intro keywords
  3. Welcome DM sent with login credentials
  4. User removed from Entry chat
  5. Group engagement messages posted (with voucher info if known)

Groups are recommended based on the user’s intro:

  • Tech - Main tech discussion
  • Announcements - Community announcements

Matched by keywords in intro:

  • “AI”, “machine learning” → AI/ML groups
  • “cyber”, “security” → Security groups
  • “drone”, “sUAS” → Unmanned systems groups
  • etc.

Only added if user mentions “meme” or “memes” in their intro.

When added to Off Topic, user receives a humorous “meme initiation” challenge:

🎭 You’ve unlocked the sacred meme chamber!

⚠️ INITIATION REQUIRED: Post your finest meme within 24 hours or face the ancient curse of eternal lurking.

When someone is added to Entry/INDOC, the bot automatically welcomes them:

👋 Welcome [Name]!
Vouched for by [VoucherName].
[VoucherName], use !request @[Name] to start verification.
📖 https://irregularpedia.org has community guidelines.
👋 Welcome [Name]!
Everyone here has been personally vouched for by an existing member.
Whoever invited you: use !request @[Name] to start verification.
📖 https://irregularpedia.org has community guidelines.

During onboarding, the bot automatically creates a draft career profile on jobs.irregulars.io from the member’s introduction text.

  1. After GTG completes, the bot fires off a background task (never delays onboarding)
  2. AI extracts structured career data from the intro text:
    • Name, title, organization — from the intro format
    • Military status & branch — inferred from keywords (USASOC → Army, active duty)
    • Clearance level — inferred from organization (NSA → TS/SCI)
    • Skills — extracted from interests and MOS codes
    • LinkedIn URL — from line 5 of the intro template
  3. A draft profile is created on the career board (visible, availability: open to offers)
  4. The member receives a career welcome DM:
📋 Career Profile Created!
Based on your intro, we created a draft career profile:
Name: John Smith
Status: Active Duty | Army
Clearance: TS/SCI
Skills: Cyber, SIGINT, AI
LinkedIn: linked ✓
👉 Review & complete: https://jobs.irregulars.io/my/profile/edit
Once confirmed, we'll match you with relevant job listings.
We found 5 open positions that may match your background.

The extraction uses three providers in order:

  1. Local AI (self-hosted Open WebUI) — preferred, data stays on community infrastructure
  2. OpenAI (gpt-4o-mini) — fallback if local AI is unavailable
  3. Regex parser — last resort, extracts name/skills/LinkedIn from numbered intro format

Profile data is covered by the Privacy Policy. Members can edit, hide, or delete their profile at any time.

Admins can create profiles for members who joined before this feature:

!backfill-profiles --dry-run # Preview what would be created
!backfill-profiles # Create the profiles

See Admin Commands — !backfill-profiles for details.


When a verified user is added to a group, the welcome includes:

👋 Welcome [Name]!
Vouched for by [VoucherName].
Interests: [extracted from intro]
Say hi and share what brings you here!
CommandDescription
!inviteStart invite process (adds you to Entry)
!request @userInitiate verification (you = voucher)
!request -nv @userInitiate without vouching
!gtg @userManually approve user
!pendingView pending verifications
!addto <group> @userManually add user to group
Voucher Bot New User
│ │ │
│ !invite │ │
├───────────────────────►│ │
│ │ [Added to Entry] │
│◄───────────────────────┤ │
│ │ │
│ [Adds invitee to │ │
│ Entry group] │ │
│ │ │
│ !request @NewUser │ │
├───────────────────────►│ │
│ │ [Verification created │
│ │ w/ voucher stored] │
│ │ │
│ │ [Welcome + template] │
│ ├─────────────────────────►│
│ │ │
│ │ [Intro text] │
│ │◄─────────────────────────┤
│ │ │
│ │ [AUTO-APPROVED] │
│ │ [SSO + Groups] │
│ ├─────────────────────────►│
│ │ │
Admin Bot New User
│ │ │
│ !request -nv @NewUser │ │
├───────────────────────►│ │
│ │ [Verification created │
│ │ NO voucher stored] │
│ │ │
│ │ [Welcome + template] │
│ ├─────────────────────────►│
│ │ │
│ │ [Intro w/ @Voucher] │
│ │◄─────────────────────────┤
│ │ │
Voucher ◄──────────────────│ "Do you vouch?" │
│ │ │
│ "yes" │ │
├───────────────────────►│ │
│ │ [SSO + Groups] │
│ ├─────────────────────────►│

The verification was started with -nv flag or via !request without @mention. New user needs to @mention their voucher in their intro.

  • Check that bot is admin in target groups
  • Verify user’s intro contains relevant keywords
  • Use !addto <group> @user for manual addition
  • Verify Authentik integration is configured
  • Check bot logs for SSO errors
  • User may already have an account
  • Voucher must have used !request @user format
  • User’s intro must be substantive (50+ chars or 3+ lines)
  • Check verification request status with !pending