Welcome to the Elastic and AWS Hack Night! Tonight you'll build a project using Elasticsearch and public soccer datasets to create search experiences, AI applications, or anything else you can imagine.
Whether you're exploring semantic search, building a RAG chatbot, or experimenting with vector search, this is your chance to showcase what's possible with Elasticsearch.
Predict match outcomes while the game is in progress, using live stats captured from your phone.
We extended the starter World Cup Predictor with live in-game prediction: capture match stats from a screen, ingest them into Elasticsearch, and have an agent predict the final outcome in real time — grounded in momentum analysis, not just history.
→ Full project summary, architecture, and quick start: PROJECT_SUMMARY.md
| File | What |
|---|---|
PROJECT_SUMMARY.md |
Project overview, architecture, quick start, judging checklist |
world_cup_predictor.ipynb |
Data ingestion notebook (both indexes, env-based secrets) |
agent_setup_devtools.md |
Paste-ready Dev Tools blocks for 4 tools + agent |
app.py |
Streamlit chat app (MCP tools + Fireworks LLM) |
mcp_agent.py |
MCP client helper |
cp .env.example .env # fill in your credentials
.venv/bin/streamlit run app.py # launch the chat UIProjects will be evaluated on the following:
| Criteria | Description |
|---|---|
| Use of Elasticsearch | Demonstrates meaningful use of Elasticsearch features such as search, aggregations, vector search, and Agent Builder. |
| Use of AWS Bedrock | Use of a managed LLM through AWS Bedrock. The easiest path is the Elastic Inference Service (EIS) - its LLM and embedding models are hosted on Bedrock with zero setup, so the built-in Agent Builder chat already counts. See the EIS guide. |
| Creativity | Presents a unique idea, novel user experience, or interesting technical implementation. |
| Usefulness | Solves a real problem or provides valuable insights from the data. |
At the end, you'll have the chance to present what you built, no matter how complete your project is. Don't be shy! It's in the spirit of the event to show off your ideas even if it's not done.
Some presentation guidelines:
- 1-2 mins max
- Quickly mention what the project does, but more importantly, show the Elasticsearch portion from the queries you used, the custom tools and agents you built within Agent Builder.
The top three projects will each win a pair of Meta Ray-Ban Smart Glasses.
Good luck, have fun, and happy hacking!
You have the choice on where to start:
- [Our project] We extended the starter with live in-game prediction — see
PROJECT_SUMMARY.mdfor the full build. - Head to starter_project.md and follow the steps to build the World Cup Predictor agent. Extend this project by adding more data, queries, features, nuance etc.
- A completely new project that uses Elasticsearch, AWS Bedrock (through EIS) and soccer data in some capacity. Head over to open_challenge.md for examples of what you can build and an example of how to ingest data.
Either direction you follow you must use a serverless Elastic deployment: Elastic Cloud Serverless free-trial
Need an LLM or embeddings? Use the Elastic Inference Service (EIS) - Bedrock-hosted models with no API keys and no setup. See the EIS guide for using it as your agent's LLM, for semantic search, and for embeddings.
These are publicly available soccer datasets for player performance analysis, match data, and event-level analytics. You are not restricted to these, feel free to use any dataset you find.
| Dataset | Description | Data Type |
|---|---|---|
| FIFA World Cup 2026 Player Performance Dataset | Simulated/player performance dataset for the FIFA World Cup 2026. Includes player statistics, match performance metrics, team information, and tournament-related data suitable for machine learning and analytics. | Player & Match Statistics |
| openfootball/worldcup.json | Open-source JSON dataset containing historical FIFA World Cup tournaments, including teams, fixtures, match results, venues, and tournament structure in an easy-to-use format. | Historical Match Results |
| StatsBomb Open Data | One of the most comprehensive free football analytics datasets available. Provides detailed event-level data (passes, shots, dribbles, pressures, tackles, etc.), lineups, matches, competitions, and 360° data for selected competitions. Widely used in football analytics research and visualization. :contentReference[oaicite:0]{index=0} | Event-Level Match Data |
Handy documentation and references for building tonight.
- Elasticsearch quickstart - your first index and query
- Connecting to Elasticsearch - endpoints, API keys, and client setup
- Agent Builder overview
- Building custom tools
- Building custom agents
- Expose agents over MCP - connect to Claude Desktop or your own app
- ES|QL reference - the query language the starter tools use
- Query DSL - full-text, filters, and boolean queries
- Aggregations - stats, terms, and metrics for dashboards
- Search relevance & autocomplete - for player/team search experiences
- Semantic search with
semantic_text- the fastest path to semantic search - kNN / dense vector search
- Bringing your own embeddings
- Python Elasticsearch client - what the notebook uses
- Bulk API - efficient batch indexing
- Upload a file in Kibana - no-code CSV/JSON ingest
- EIS guide (this repo) - use Bedrock-hosted LLMs and embeddings with zero setup, no keys
- Elastic Inference Service docs
- Model configuration in Agent Builder