03/Work, selected
06 / 08
VCT Scout
Ask in plain English, get a Valorant roster. Second place worldwide.
What I ownedOwnership: Core contributor on a team build
One of four on a hackathon team. I designed the agent’s tool calling and wrote the system prompt that orchestrates it, plus the tools that save and load a team composition; teammates built the chat backend, the player-data tools and the map tools.
2ndPlace overall
VCT Scout launch film: text alternative Landscape and vertical cuts share one timeline, 19.9 seconds, with music and soft interface sounds, no voiceover. Screens are real VCT Scout app screenshots. 0:00 On screen: "VCT Scout / AWS x Riot Games hackathon" and "Ask in plain English. Get a roster." Visual: A crosshair draws itself in. The real VCT Scout input box is shown, and a prompt types into it with a blinking caret. 0:00 to 0:03 Typed prompt (verbatim): "Build a team using only players from VCT Champions. Assign roles to each player and explain why this composition would be effective in a competitive match." 0:03 Visual: The SEND button is pressed and ringed in red. The screen switches to the chat, where the request appears as a red message bubble. 0:03 On screen: "AWS Bedrock agent / tool calling" and "The agent picks its tools." 0:04 Visual: The agent’s reply begins: "I’ll build a team using only players from VCT Champions, assign roles, and explain the composition’s effectiveness. Let me start by retrieving the relevant data and analyzing it." 0:04 The first red thinking step wipes in: "Data Retrieval..." (counter: Tool call 01 / 03; vertical edition lists the steps in large type below the screen). 0:05 Second step: "Data Analysis..." (Tool call 02 / 03). 0:05 Third step: "Team Composition..." (Tool call 03 / 03). 0:06 Visual: A light scanline sweeps down the chat and a red ring highlights the three steps. 0:07 Visual: The view pulls back to the finished answer, with the numbered team list and further steps ("Data Retrieval...", "Team Composition...", "Explanation..."). The empty TEAM FORMATION panel waits on the right. Vertical edition: the follow-up chat with the steps "Data Retrieval...", "Data Analysis...", "Player Evaluation...", "Analysis...", "Strategy Development...", "Decision..." is ringed in red, then the view scrolls to the list that ends "5. Feniz (Cypher - Sentinel)". 0:08 On screen: "Roster / from pro player data" and "Five players. Real stats." 0:09 On screen: counter "4,700+" with the label "Match files queried", counting up from zero. 0:09 The roster card for Boaster slides in: OMEN, controller, IGL badge, 11.62 kills, 13.8 deaths, 65 games, with the agent portrait. 0:09 The roster card for aspas slides in: JETT, duelist, 19.32 kills, 13.83 deaths, 103 games, with the agent portrait. 0:10 The roster card for MaKo slides in: VIPER, controller, 14.79 kills, 12.97 deaths, 70 games, with the agent portrait. 0:10 The roster card for Derke slides in: RAZE, initiator, 17.55 kills, 15.34 deaths, 80 games, with the agent portrait. 0:11 The roster card for Feniz slides in: CYPHER, sentinel, 15.31 kills, 13.98 deaths, 49 games, with the agent portrait. A red ring flashes on each kills, deaths and games box as its card lands. 0:12 Landscape: the chat updates to the follow-up answer that lists "5. Feniz (Cypher - Sentinel)". Vertical: all five cards sit together in a grid with the count. 0:13 On screen: "AWS x Riot Games VALORANT Champions Tour Hackathon" and a large italic "2nd", with "of 3,200+ participants". 0:14 On screen: "Best Cross-Regional Team Submission" in a red-outlined badge. 0:14 On screen: "Team of four. Dhruv owned the generative AI layer." 0:15 Three labels appear one by one: "Tool-calling design", "Orchestrating system prompt", "Architecture". 0:17 Visual: Everything fades to a dark purple glow with a faint crosshair. 0:17 On screen: "VCT Scout" in large type, then "2nd of 3,200+ · AWS x Riot Games", then "Built by Dhruv Kamalesh Kumar and team". 0:19 Fade to black.
01/The problem
Scouting a pro roster means drowning in match data.
Esports managers cannot read 4,700+ raw match files to build a roster. The insight is in there, but nobody has the time to dig it out.
02/What I built
An agent that turns one sentence into a five-player roster.
- 01
Four of us built it in a hackathon sprint on Amazon Bedrock.
- 02
Lambda and SQS convert match JSON to JSONL so Athena can query it. Claude’s tool API links those tables to a Bedrock Knowledge Base of agents, abilities and gameplay.
- 03
The hardest bug was Athena’s 30 minute limit. We fixed it by splitting queries per tournament and building intermediate tables.
- 04
A manager types something like a request for an aggressive duelist and gets a roster grounded in real stats.
- 05
My layer sits on top: the system prompt that says when to call which tool and how to present a roster, and tools that save and fetch a versioned team composition, so a follow-up question edits the roster instead of rebuilding it.
03/Architecture
Plain English in, tool calls out, a roster back.
The manager asks a question, Claude picks tools, typed arguments become Athena queries over player tables built from 4,700+ match files, and the Knowledge Base supplies game context.
04/Outcomes
Second out of 3,200+ participants.
2nd
Place overall
Among more than 3,200 participants. Prize pool was $61,000 across three teams.
Third partySource: press.aboutamazon.com
1
Best Cross‑Regional Team Submission
A separate award the team also won.
Third partySource: press.aboutamazon.com
4,700+
Match files queried
The size of the data the team restructured so Athena could answer in time, not a measure of accuracy.
Self-reportedSource: devpost.com
- What I wrote
I wrote the system prompt that orchestrates the agent and the tools that save and load a team composition. Rudra Sett built the chat backend and the player-data tools, and Aravind Dasarathy wrote the map tools.
- Guardrails
The model never writes SQL. It fills typed arguments (region, tournament, agent) and a Lambda holds the Athena query. The save tool’s schema asks for exactly five players, no repeated player or agent, and one in-game leader. Those data tools are Rudra’s.
- What broke
- Athena’s 30-minute limit. Queries over 4,700 match files timed out. The team split them by tournament and built intermediate tables.
- An unclosed tag. The agent’s visible steps are tags it writes into its reply. I added an explicit rule to the system prompt to close one before opening the next.
- Evaluation
Not measured
A hackathon build: no test set, and no evaluation of whether a quoted stat matches the data.
06/Stack
Built with
- Amazon Bedrock
- Claude tool use
- Knowledge Bases
- Athena
- Lambda
- SQS
- API Gateway
- DynamoDB
- React
- Vite
- Cognito
07/In use
