Quick Start: Onboard Davis Dunham with gws

New Hire: Davis Dunham
Personal Email: rdavisdunham@gmail.com
Brainforge Email: davis.dunham@brainforge.ai
Role: AI Engineer
Department: Engineering


QUICK COMMANDS

1. Authenticate gws (One-time setup)

gws auth login

This opens a browser. Sign in with your brainforge.ai admin account.


2. Run Full gws Onboarding Script

# From repo root
cd knowledge/operations/onboarding
./onboard-new-hire-gws.sh "Davis Dunham" "rdavisdunham@gmail.com" "AI Engineer" "Engineering"

This will:

  • ✅ Send welcome email to davis.dunham@brainforge.ai
  • ✅ Create calendar events for check-ins
  • ✅ Create onboarding Google Doc
  • ✅ Share doc with new hire
  • ✅ Generate execution plan

3. Manual Steps (Required)

⚠️ The following steps require manual admin console access - no API automation available:

  • Slack - Requires Enterprise Grid plan for API access (Brainforge has Pro/Business+)
  • 1Password - Requires Provision Manager role for CLI (limited to specific team members)
  • Google Workspace - gws CLI has limited Admin SDK support

Create Google Workspace User

URL: https://admin.google.com
Path: Directory → Users → Add new user

Details:
- First name: Davis
- Last name: Dunham
- Email: davis.dunham@brainforge.ai
- Password: [Generate temporary]
- ☑️ Send credentials to: rdavisdunham@gmail.com

Add to Slack (Guest → platform)

URL: https://brainforge.slack.com/admin
Path: Invitations → Invite members

Details:
- Email: rdavisdunham@gmail.com
- Role: Guest (not Full Member)
- Channels: #platform only

Grant Tool Access

1Password:    https://start.1password.com → Invite davis.dunham@brainforge.ai
GitHub:       https://github.com/orgs/brainforge-ai/people → Invite member
Linear:       https://linear.app/brainforge/settings/members → Invite
Notion:       https://notion.so → Settings & Members → Add members
Clockify:     https://clockify.me → Workspace → Users → Add
Cursor:       https://cursor.com → Settings → Team → Invite

gws COMMANDS (If Running Manually)

Send Welcome Email

# Base64 encode the email
MESSAGE=$(echo -e "To: davis.dunham@brainforge.ai\nSubject: Welcome to Brainforge, Davis!\n\nHi Davis,\n\nWelcome to Brainforge! Your Brainforge email is: davis.dunham@brainforge.ai\n\nCheck your personal email for login credentials.\n\nBest,\nBrainforge Team" | base64)
 
# Send via gws
gws gmail users messages send \
  --params '{"userId": "me"}' \
  --json "{\"raw\": \"$MESSAGE\"}"

Create Calendar Events

Week 1 Check-in:

gws calendar events insert \
  --params '{"calendarId": "primary"}' \
  --json '{
    "summary": "Week 1 Check-in: Davis Dunham",
    "description": "1:1 with Department Lead and Uttam",
    "start": {"dateTime": "2026-04-29T10:00:00", "timeZone": "America/New_York"},
    "end": {"dateTime": "2026-04-29T11:00:00", "timeZone": "America/New_York"},
    "attendees": [{"email": "davis.dunham@brainforge.ai"}]
  }'

30-Day Check-in:

gws calendar events insert \
  --params '{"calendarId": "primary"}' \
  --json '{
    "summary": "30-Day Check-in: Davis Dunham",
    "start": {"dateTime": "2026-05-22T10:00:00", "timeZone": "America/New_York"},
    "end": {"dateTime": "2026-05-22T11:00:00", "timeZone": "America/New_York"},
    "attendees": [{"email": "davis.dunham@brainforge.ai"}]
  }'

90-Day Check-in:

gws calendar events insert \
  --params '{"calendarId": "primary"}' \
  --json '{
    "summary": "90-Day Check-in: Davis Dunham",
    "start": {"dateTime": "2026-07-21T10:00:00", "timeZone": "America/New_York"},
    "end": {"dateTime": "2026-07-21T11:00:00", "timeZone": "America/New_York"},
    "attendees": [{"email": "davis.dunham@brainforge.ai"}]
  }'

Create Onboarding Document

# Create doc
gws docs documents create \
  --json '{"title": "Davis Dunham - Onboarding Guide"}'
 
# Note the documentId from output, then update content:
gws docs documents batchUpdate \
  --params '{"documentId": "YOUR_DOC_ID"}' \
  --json '{
    "requests": [{
      "insertText": {
        "location": {"index": 1},
        "text": "Welcome Davis!\n\nYour onboarding checklist..."
      }
    }]
  }'
 
# Share with new hire
gws drive permissions create \
  --params '{"fileId": "YOUR_DOC_ID"}' \
  --json '{
    "role": "writer",
    "type": "user",
    "emailAddress": "davis.dunham@brainforge.ai"
  }'

CHECKLIST

Automated by gws script:

  • Welcome email sent
  • Calendar events created (Week 1, 30-day, 90-day)
  • Onboarding document created
  • Document shared with new hire
  • Execution plan generated

Manual (you do):

  • Create Google Workspace user
  • Add to Slack (guest platform)
  • 1Password invite
  • GitHub org invite
  • Linear team invite
  • Notion workspace invite
  • Clockify user add
  • Cursor license assign
  • Add to HR Notion Database
  • Update Financial Model
  • Notify Finance team
  • Send team introduction

RESOURCES


TROUBLESHOOTING

”Authentication failed"

gws auth login

"gws not found"

brew install googleworkspace/tap/gws

"Permission denied”

Make sure you’re logged in with a brainforge.ai admin account.


NEXT STEPS

  1. Authenticate gws: gws auth login
  2. Run script: ./onboard-new-hire-gws.sh "Davis Dunham" "rdavisdunham@gmail.com" "AI Engineer" "Engineering"
  3. Complete manual steps as prompted
  4. Done!

Questions? Check the full gws guide: knowledge/operations/onboarding/GWS-GUIDE.md