-
-
Who to ask: Tara reviews these requests today. Omar wrote the 2024 policy, but Omar's approver role ended in June 2025. Saved plan.
-
Maya's idea and Alexa's plan, read aloud. Maya can tap a suggestion, or type or say a question about the plan.
-
The ended role, checked: Source on Omar's note opens the directory record, approver from 2023-01-01 to 2025-06-30.
-
Related work: "Why Noah?" shows Noah was assigned to build the purchase-history table the scoring idea needs.
-
An open area stays visible: no contact was found for Legal and Compliance, and Alexa says so instead of guessing.
-
How WorkBot answers: Nova 2 Lite proposes, code checks every name against its record, Sonic listens, Polly speaks.
Inspiration
WorkBot comes from my own job. I work at an e-commerce company of about 300 people. When I have an idea for a new project, finding the right person is often hard: I have to go through several people first, and it takes a long time. I also keep seeing different people work on the same or very similar things.
If that happens with 300 people, it is harder with thousands. In a large company, nobody can see who does what, so a new idea starts with questions that are hard to answer: who handles this now, is someone already working on what it needs, and which parts have no one to ask?
Maya works at Northgate, a fictional retailer, and wants to raise the approval threshold for marketing spend. Without WorkBot, Maya searches tickets, chat, documents, and the org chart, and may well start with Omar Haddad, whose name is on the 2024 policy, although Omar's approver role ended in June 2025. With WorkBot, Maya says the idea to Alexa in one sentence and hears who to talk to: who reviews these requests today, who used to, and the record behind each name.
Maya's idea names no team. Amazon Nova 2 Lite works out which areas it touches and who in each could help; code then checks that every person is tied to a record Maya can see.
What it sounds like
This is a saved plan on the hosted demo, word for word:
Maya: Raise the approval threshold for marketing spend requests so small changes need no review.
Alexa: Before you start, talk to four people. Start with Tara Reed and Omar Haddad in Finance. Omar Haddad's approver role ended in June 2025. Then Marcus Reed in Growth Marketing, and Anders Holm in Legal and Compliance. Each card says what to find out. One more area is in the full list. Ask me why anyone is listed, or what to ask them.
Maya: Why Omar?
Alexa: Omar Haddad is listed under Finance for related work. Omar wrote a document: ‘This budget approval policy was written in 2024 and describes the spend thresholds in force at that time.’ Omar's approver role ended in June 2025.
Omar looks like the owner, having written the policy. Tara reviews these requests today. Anders Holm's current duty in the company directory is the compliance review of changes to the spending approval policy. WorkBot shows all three, and says which is which.
This plan was saved on 20 October, before the first step got the directory hints described below. In the 10 runs of the same idea since, Tara and Anders were in every plan, and Omar in 3, each time with the ended-role note; "Measured on 42 live runs", below, has the rest.
Three questions it answers
- Who handles this now? Maya's plan, above, separates Omar's ended approver role from Tara's current one, so Maya asks Tara about approvals today and Omar about the 2024 policy.
- Is someone already working on what it needs? In the saved customer-scoring plan, Alexa starts with Noah Baker. Asked "Why Noah?", Alexa answers: "Noah Baker is listed under Data and Analytics for related work. Noah was assigned a Jira issue: ‘Build the customer purchase-history table in the warehouse using pseudonymised customer IDs.’ Also listed under Security Review." Before building anything, whoever wants to score customers learns who already works on the data the idea needs.
- Where did nobody turn up? When WorkBot finds no one for an area, it says so instead of guessing. In the saved stablecoin plan, Alexa says "One area is still open." Asked "What's still open?", Alexa answers: "No contact was found for Legal and Compliance. That does not mean nobody suitable exists." Here the gap is WorkBot's own miss: Anders Holm, in Maya's plan, manages Legal and Compliance, whose remit includes regulatory compliance. That is why an open area is said aloud rather than hidden.
All three moments are in saved plans on the hosted demo, and the follow-up answers use no model.
Why Alexa+
"Who should I talk to before I start this?" is the kind of question people ask out loud, in the middle of other work, and want a short answer. Maya says the idea with Speak, presses Ask Alexa, hears the first names, and opens a source only when needed. WorkBot's answer is a few names, short enough to hear, with the cards on screen for the detail, as the Alexa+ add-on design guide asks: "Show only the information the customer needs to make the next decision."
Measured on 42 live runs
On 20 October, after the directory hints, we ran our seven demo ideas 42 times end to end on Amazon Nova 2 Lite. We checked each run against an answer key written beforehand: who must be shown, who must never be shown, and who must not be a direct contact.
- Maya's idea, 10 runs: Tara was in every plan, among the first conversations every time. Legal and Compliance was among the areas in all 10, each time with Anders as a direct contact; before the hints it was in 1 of 10. Omar appeared in 3, each time with the ended-role note.
- A related idea that names the spending policy, 10 runs: Tara and Anders were in every plan.
- All ideas: 39 of 42 runs passed the answer key's minimum checks, and no plan was refused. The key checks only obvious outcomes (for Maya's idea it requires only Tara), so a pass does not mean every person shown is relevant or every area was found.
- Questions: no run asked a clarifying question.
- Speed: a run took 14 to 44 seconds and 4 to 8 model calls.
The full table is in the README: https://github.com/furkankuscu08/amazon_v2#measured-on-live-runs
Limits
- Omar appeared in only 3 of the 10 plans for Maya's idea (7 of 10 before the hints) and was never among the first conversations. "Challenges we ran into" explains the trade.
- In 2 of 4 runs of a pickup-lockers idea, which has no relevant record by design, the model made a fulfilment planner a direct contact instead of leaving only the team's manager to route Maya. One refund-assistant run left out the refund queue owner.
- Code checks that each cited record is visible and tied to the person. It cannot judge whether the record is really about the area, so a plan is a starting point, not a verdict.
- The company and its records are synthetic. Nobody has used WorkBot at a real company yet.
What it does
- Voice first, cards for detail. Alexa reads a short summary aloud with Amazon Polly. Each area in the plan gets a card with:
- what to find out;
- who to ask, with a plain role label (Current responsibility, Related work, Can advise, or Can route you);
- one line of evidence linked to its source.
- Follow-ups. Maya taps a suggestion such as "Why Omar?" or "Prep me for Tara", or types or says a question, and Alexa answers aloud.
- Who used to vs. who does now. An ended responsibility appears as a dated directory note, linked to its directory source, so an outdated owner is less likely to be taken for the current one.
- Related work. A person tied to related work is listed with that record, so a new effort can first ask about it.
- Honest gaps. When no contact is found for an area, Alexa says the area is still open instead of skipping it.
- Questions only when needed. Alexa can ask up to two short questions. The prompt keeps them on the idea itself and forbids asking who owns or reviews it.
- Speak. Amazon Nova 2 Sonic turns Maya's voice into text. The transcript only fills the box; the plan starts when Maya presses Ask Alexa.
- Light and dark mode. The page follows the device setting, as the Alexa+ add-on design guide asks.
Code assembles every sentence of Alexa's summary and follow-up answers from what the plan already shows, so the voice never says more than the screen. WorkBot sends no messages and makes no decisions.
How we built it
- Three Amazon Nova 2 Lite steps on Bedrock:
- Find the areas an idea touches and what to find out in each. Alongside the company's teams, this step gets up to three hints: current duties in the company directory that share words with the idea, without names.
- Review each area in parallel.
- Choose whom to talk to first, from people already checked.
- Code checks the model.
- Search covers only records Maya can see under the synthetic visibility rules.
- Each cited record must be visible to Maya and tied to that person: work they did, a responsibility the synthetic directory lists for them now, or managing the team whose remit fits. An ended responsibility appears only as a dated note.
- Weak ties make someone an advisor ("Can advise"), and broken claims are dropped.
- Whether a record is really about the area stays the model's judgment.
- Voice both ways. Nova 2 Sonic listens and Polly speaks. Follow-ups are matched by rules, with no model.
- Synthetic company: 49 people, 11 org units, and 170 work records (documents, Jira issues, Slack messages, GitHub pull requests). It includes hard cases such as ended duties, moved people, and restricted records: https://github.com/furkankuscu08/amazon_v2/tree/main/workbot/fixture
- Tests: 222 offline tests and the answer key for the seven demo ideas: https://github.com/furkankuscu08/amazon_v2/tree/main/tests
- Hosting: one Amazon EC2 server from an AWS CloudFormation template. Its role may call only Nova 2 Lite, Nova 2 Sonic, and Polly.
Challenges we ran into
- Model access. Our AWS Free plan refused third-party models. Amazon Transcribe refused us without giving a reason, so voice input moved to Nova 2 Sonic.
- Answer format. Bedrock refused both structured-output options in its guide for Nova 2 Lite: "This model doesn't support the outputConfig field. Remove outputConfig and try again." So code checks every reply and asks once more if one is broken. In our last two measurements, 1 of 287 calls and then none of 251 needed that.
- A prompt rule that backfired. One rule told the model to leave an uncertain area without a team. After Maya skipped a compliance question, Legal and Compliance got no team in 14 of 15 runs. We rewrote the rule and stopped Alexa asking who reviews a change.
- A fix that moved the problem. Even then, the model named Legal and Compliance for Maya's idea in only 1 of 10 runs. We gave the first step hints from the company directory, and it was named in all 10. But the model copied Tara's duty into its own notes on Finance, and the next step then tended to pick only the current reviewer: Omar fell from 7 of 10 runs to 3. Asking the model not to copy the hint's wording did not stop it. We kept the change, since a missing compliance review is the costlier mistake, and we report both numbers.
All 20 issues are in our friction log, with exact error texts: https://github.com/furkankuscu08/amazon_v2/blob/main/docs/friction-log.md
Accomplishments that we're proud of
- Every person on a plan is tied to a visible record, and the plan says plainly where it found no one.
- Alexa never says more than the screen shows.
What we learned
- The model usually finds the main areas an idea touches but can leave out one that matters. Grounding that choice in the company directory helped more than any prompt wording we tried.
- Fixing one gap can open another: a hint meant only to choose areas also changed whom the next step looked for. Measuring each change on repeated live runs told us more than reading a few good plans.
- Whether a person counts as a contact has to be checked by code.
What's next for WorkBot
- The synthetic data has the shape of systems companies already run: a directory with dated roles, as in an HR system, and work records from tickets, documents, chat, and code review, as in Jira, Confluence, Slack, and GitHub. Using WorkBot at a real company means reading those through the requester's own permissions.
- A real Alexa+ add-on through MCP, with the cards as an Echo Show layout.
- Freer follow-up questions understood by a model, still answered only from the plan's facts.
- Collected across many plans, the areas WorkBot leaves open could point to where ownership in a company is unclear or undocumented: a map drawn from questions people already ask. Today an open area often means WorkBot missed someone, and WorkBot does not combine plans.
Built With
- amazon-bedrock
- amazon-ec2
- amazon-nova-2-lite
- amazon-nova-2-sonic
- amazon-polly
- aws-cloudformation
- aws-iam
- aws-sdk-bedrock-runtime
- boto3
- caddy
- docker
- fastapi
- fastembed
- jinja
- pydantic
- python
- qdrant
- sqlite
Log in or sign up for Devpost to join the conversation.