AI for HR

Labor Market Intelligence, Reimagined

Protagona partnered with a labor market intelligence firm to build a production-ready, conversational AI platform — enabling HR professionals to query proprietary compensation data, generate job descriptions, and produce hiring justifications through plain-language interactions.

Industry

Startups & Software

Teams & Services

Cloud Architecture, Cloud Engineering, Engagement Management, QA Testing

Tech & Tools

AWS Lambda, Amazon Bedrock, Amazon Bedrock Agents, AWS EventBridge, Amazon S3, Amazon DynamoDB, Amazon API Gateway, Typesense, Anthropic Claude 3.5 Sonnet, AWS Nova Pro, AWS Nova Lite, Claude Haiku, CI/CD Pipelines

Key Data Points

All six project milestones delivered within the five-week engagement timeline, including two capabilities added beyond original scope.
Architecture pivoted mid-engagement from AWS Lex and synchronous API calls to Bedrock Agents and EventBridge-based async communication, improving reliability and intent control.
Claude 3.5 Sonnet selected as default reasoning engine after live query testing confirmed stronger performance on complex multi-step compensation chains over Nova Pro.

The Vision

A labor market intelligence firm saw how HR professionals and business leaders wanted faster, more intuitive access to proprietary compensation data. The opportunity: move beyond traditional query interfaces and let practitioners ask questions in plain language, receiving intelligent, contextual answers. The target platform would surface salary data, generate job descriptions, and produce hiring justifications through a conversational interface — all grounded in proprietary data assets and ready for production use.

The Goal

Protagona was engaged to deliver a complete NLP pipeline handling natural language salary queries, job description generation, and compensation justifications against proprietary data. The system needed to integrate with existing AWS infrastructure, support real-time conversational interactions, include a feedback mechanism, and be fully handed off with documentation and CI/CD pipelines — within five weeks.

The Challenge

Orchestrating a multi-step reasoning pipeline across heterogeneous data sources while maintaining response quality and acceptable latency was the central technical challenge. A single salary query required resolving job details, geographic context, and compensation data in sequence — any weak link degraded the full response.

Early testing exposed limitations in the originally scoped AWS Lex and API Gateway approach, triggering two significant pivots: replacing Lex with Bedrock Agents for tighter action control, and replacing synchronous call-response with an EventBridge-based architecture for more reliable async communication. A third pivot swapped Nova Pro for Claude 3.5 Sonnet after live testing identified reasoning gaps on complex multi-step chains. Every decision was validated against real query traces before being committed.

The Solution

Protagona designed a serverless, event-driven platform built around Amazon Bedrock Agents as the central orchestration layer. Distinct intents — salary lookups, job description generation, web search, and justification generation — route through dedicated Lambda functions, each purpose-built for independent tuning, prompt optimization, and model swaps. Claude 3.5 Sonnet handles complex reasoning chains, while the architecture supports lighter models for simpler tasks as the platform scales.

Conversation continuity is managed through DynamoDB session and memory tables alongside S3-based storage. A feedback action group — added beyond original scope — lets the agent draw on prior session feedback stored per user in DynamoDB to self-validate responses before answering, with per-user isolation preventing preference bleed. A multi-agent collaboration architecture, also delivered beyond scope, uses a supervisor agent to orchestrate specialized coordinators in parallel, reducing sequential processing on compound queries. CI/CD pipelines and full handoff documentation were delivered across all Lambda functions.

OUTCOMES

Your data is trying to tell you something

Contact us

... are you listening?