AWS Builder Center
Building a Multi-Agent AI HR Onboarding Assistant on AWS with Strands Agents SDK and Amazon Bedrock

Building a Multi-Agent AI HR Onboarding Assistant on AWS with Strands Agents SDK and Amazon Bedrock

Onboarding a new employee involves dozens of steps across HR, IT, Learning & Development, and the hiring manager — often spread across multiple systems with no single thread connecting them. A new hire's first-week experience directly predicts long-term retention, yet most organisations still rely on manual checklists and email chains.

Building a Multi-Agent AI HR Onboarding Assistant on AWS with Strands Agents SDK and Amazon Bedrock

GitHub: https://github.com/its-me-sweta/HR_Onboarding_Assistant.git

Introduction

Onboarding a new employee involves dozens of steps across HR, IT, Learning & Development, and the hiring manager — often spread across multiple systems with no single thread connecting them. A new hire's first-week experience directly predicts long-term retention, yet most organisations still rely on manual checklists and email chains.
In this post I'll walk through a production-ready, seven-agent AI pipeline that automates the full employee onboarding lifecycle — from the ATS hire record to the 90-day progress review — using:
  • Strands Agents SDK with @tool decorators
  • Amazon Bedrock Nova Pro for personalised welcome messages and feedback analysis
  • Amazon Textract + Rekognition for identity document verification
  • Amazon SES + SNS for employee comms, manager briefings, and HR alerts
  • AWS Lambda for DocuSign, LMS, ATS, Slack, Workday, and hardware integrations
  • Amazon EventBridge Scheduler for milestone check-ins and training reminders
  • Amazon DynamoDB for onboarding records, training, buddy pool, and GDPR audit trail
  • Amazon S3 for encrypted document storage (KMS)
  • AgentCore Runtime for serverless deployment

Architecture Overview

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
┌──────────────────────────────────────────┐
│ FastAPI / REST Layer │
│ POST /hr/onboard │
└──────────────────┬───────────────────────┘
│
┌──────────────────▼───────────────────────┐
│ Orchestrator Agent │
│ Role Track · Timeline · Escalation · GDPR│
└───┬──────────────────────────────────┬───┘
│ │
┌──────────────▼──────┐ ┌─────────────▼──────────┐
│ Document │ │ IT Provisioning Agent │
│ Verification Agent │ │ AD · Email · Licenses │
│ Textract · Rekognition│ │ MFA · Hardware · RBAC │
└──────────────┬──────┘ └─────────────┬──────────┘
└────────────┬─────────────────────┘
│
┌─────────────────▼────────────────────────┐
│ Training Assignment Agent │
│ Compliance (mandatory) · Role Learning │
│ LMS Enrollment · EventBridge Reminders │
└─────────────────┬────────────────────────┘
│
┌─────────────────▼────────────────────────┐
│ Buddy Matching Agent │
│ AI Scoring · Availability · Intro Email │
│ 4-Meeting Schedule · Slack Channel │
└─────────────────┬────────────────────────┘
│
┌─────────────────▼────────────────────────┐
│ Welcome Agent │
│ Nova Pro Message · Day-1 Schedule │
│ Team Announcement · Manager Briefing │
│ Welcome Kit · Org Chart Update │
└─────────────────┬────────────────────────┘
│
┌─────────────────▼────────────────────────┐
│ Progress Tracking Agent │
│ LMS Polling · Milestone Surveys · Health │
│ 30/60/90-Day Reviews · KB Self-Learning │
└──────────────────────────────────────────┘

Role-Based Onboarding Tracks

The Orchestrator automatically selects the correct track from the job title:
TrackKey FocusTools
ENGINEERArchitecture, AWS, dev env, code reviewGitHub Enterprise, Jira, AWS Console, Dev environment SSM setup
MANAGERLeadership, OKRs, budget, people mgmtWorkday (manager), BambooHR, Tableau
SALESProduct cert, CRM, territory, quotaSalesforce, HubSpot, Gong, Outreach
ANALYSTData platform, BI tools, governanceSnowflake, Tableau, Looker, dbt Cloud
EXECUTIVEBoard access, EA assignment, strategic briefBoard portal, Concur, EA calendar

Stage 1 — Document Verification Agent

Three parallel verification streams:
Identity Documents (Textract + Rekognition):
1
2
3
4
5
6
7
@tool
def verify_identity_document(document_s3_uri, employee_name, document_type) -> dict:
r = textract.analyze_document(
Document={"S3Object": {"Bucket": bucket, "Name": key}},
FeatureTypes=["FORMS"],
)
# Extract fields + verify name match against submitted details
Work Authorization:
1
2
3
4
5
auth_methods = {
"US": "I-9 + E-Verify",
"GB": "Right to Work Share Code",
"DE": "Arbeitserlaubnis",
}
Document Signatures (DocuSign via Lambda):
Required documents: offer letter, employment contract, NDA, handbook acknowledgment, IT acceptable use policy, benefits enrollment.
Blocking vs Pending: Work authorization missing = BLOCKED (onboarding halts). Background check in progress = PENDING (onboarding continues with restricted access).

Stage 2 — IT Provisioning Agent

Eight provisioning actions, all completing before Day 1:
1
2
3
4
5
6
@tool
def assign_software_licenses(employee_id, role_track, email) -> dict:
licenses = LICENSE_CATALOG["ALL"] + LICENSE_CATALOG.get(role_track, [])
# ALL: Office 365, Slack, Zoom, Okta SSO, 1Password
# ENGINEER: + GitHub Enterprise, Jira, Confluence, AWS Console, Datadog
# SALES: + Salesforce, HubSpot, LinkedIn Sales Nav, Gong, Outreach
Hardware ordering is role-matched automatically:
  • ENGINEER: MacBook Pro 16" + 2 monitors + mechanical keyboard
  • SALES: MacBook Air 13" + headset + monitor
Engineer-only: Dev environment setup via SSM Run Command (git, docker, aws-cli, kubectl, terraform, homebrew — all pre-configured).
1
2
3
4
ssm.send_command(
DocumentName="company-dev-env-setup",
Parameters={"username": [username], "tools": [json.dumps(dev_tools)]},
)

Stage 3 — Training Assignment Agent

Mandatory compliance (all employees, 5-day deadline):
  • Information Security Awareness (60 min)
  • Data Privacy & GDPR/CCPA (45 min)
  • Code of Conduct & Anti-Bribery (30 min)
  • Anti-Harassment & Inclusion (45 min)
  • SOC2 Security Controls (30 min)
4-week role learning path — ENGINEER example:
WeekCourse
1Architecture Overview + Engineering Practices
2AWS Infrastructure + System Design Patterns
3Security Engineering
4Product Deep-dive (assigned squad)
EventBridge Scheduler sends training reminders at each deadline:
1
2
3
4
5
scheduler.create_schedule(
Name=f"training-reminder-{employee_id}-compliance_training",
ScheduleExpression=f"at({compliance_deadline}T09:00:00)",
Target={"Arn": "arn:aws:lambda:...:function:hr-training-reminder", ...},
)

Stage 4 — Buddy Matching Agent

AI-powered matching score (0–100 composite):
DimensionWeight
Role similarity30%
Location / timezone match25%
Shared interests20%
Current availability15%
Diversity factor10%
1
2
3
4
5
6
7
@tool
def score_buddy_match(new_hire, buddy) -> dict:
role_score = 30 if buddy["role_track"] == new_hire["role_track"] else 10
loc_score = 25 if buddy["office_location"] == new_hire["office_location"] else 8
interest_score = min(20, len(set(buddy["interests"]) & set(new_hire["interests"])) * 7)
diversity_score = 10 if buddy["background"] != new_hire["background"] else 5
total = role_score + loc_score + avail_score + interest_score + diversity_score
The buddy programme schedules 4 meetings: Day-1 coffee, Week-1 office tour, Week-2 lunch, Month-1 check-in — with calendar invites and a private Slack channel.

Stage 5 — Welcome Agent

Personalised welcome message generated by Amazon Bedrock Nova Pro:
1
2
prompt = f"""Write a warm welcome for {full_name}, {role_title}, {department}.
Fun fact: {fun_fact}. Under 100 words, enthusiastic, mention the fun fact."""
The welcome package includes:
  • Personalised email with Day-1 schedule
  • Team Slack announcement with fun fact
  • Manager briefing with Day-1 readiness checklist and suggested talking points
  • Physical welcome kit shipped to home (remote) or placed on desk (onsite)
  • Org chart update in Workday/BambooHR

Stage 6 — Progress Tracking Agent

Automated milestone check-ins via EventBridge at Day 7, 14, 30, 60, 90.
Onboarding health score (0–100):
1
2
3
4
5
6
7
score = (training_pct * 0.35
+ survey_score * 20 * 0.30
+ (20 if buddy_active else 0) * 0.20
+ (15 if not access_issues else 0) * 0.15)

health = ("THRIVING" if score >= 80 else "ON_TRACK" if score >= 60
else "AT_RISK" if score >= 40 else "CRITICAL")
AT_RISK triggers an automatic manager alert. CRITICAL triggers HR escalation via SNS.

AWS Infrastructure Summary

ResourcePurpose
Amazon Bedrock Nova ProWelcome messages, feedback analysis
Amazon TextractIdentity document extraction
Amazon RekognitionDocument authenticity checks
Amazon SESEmployee emails, manager briefings, CSAT
Amazon SNSHR escalation alerts, manager notifications
AWS Lambda (10 functions)DocuSign, LMS, Slack, Workday, hardware, ATS, Okta, AD, BGC, PDF
Amazon EventBridge SchedulerTraining reminders, milestone check-ins
Amazon DynamoDB (6 tables)Onboarding records, documents, training, buddies, progress, comms
Amazon S3 (KMS encrypted)Verified documents, training PDFs, welcome materials
AWS SSM Run CommandDeveloper environment setup
AgentCore RuntimeServerless agent deployment

Try It Yourself

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
git clone https://github.com/its-me-sweta/HR_Onboarding_Assistant.git
cd hr-onboarding-assistant
pip install -r requirements.txt
uvicorn main:app --reload

curl -X POST http://localhost:8000/hr/onboard \
-H "Content-Type: application/json" \
-d '{
"employee_id": "EMP-2025-001",
"full_name": "Priya Sharma",
"personal_email": "priya@gmail.com",
"role_title": "Software Engineer",
"department": "Engineering",
"start_date": "2025-09-01",
"manager_id": "EMP-2024-042",
"manager_email": "mgr@company.com",
"office_location": "Bangalore",
"work_mode": "hybrid",
"country": "IN",
"fun_fact": "Completed a marathon in Iceland last year",
"interests": ["aws", "machine-learning", "hiking"]
}'
Built with Strands Agents SDK · Amazon Bedrock Nova Pro · AgentCore Runtime
Any opinions in this article are those of the individual author and may not reflect the opinions of AWS.
Enjoyed reading this content? Let the author know!

Your likes, comments, shares, and saves help creators reach more builders.

Loading recommendations

Loading article