Project Info
Inspiration
This TreeHacks team first began to take shape at one of the earliest meetings of Stanford Climate Week, where Martin and Aarush, ironically enough, bonded over a shared frustration: they were deeply motivated to fight climate change, yet unsure how their respective interests in mechanical engineering and data science fit into the vast, overwhelming landscape of climate tech. From that simple conversation, they decided to form a TreeHacks team with Grant Conroy later joining their team. Motivation At their first official brainstorming session, they stumbled upon the seventh challenge of the TreeHacks Sustainability Track: building a tool to help aspiring climate professionals navigate the climate tech job market, a solution to the shared standpoint that brought the group together in the first place. As a team of motivated entrepreneurs who had personally struggled to explore climate-tech careers in a clear and structured way, we transformed that frustration into inspiration. We decided to build Eco-Match, a platform designed to give students searching for internships, professionals looking to pivot into sustainability, and anyone passionate about climate action the clarity, direction, and tools we once wished we had.
What it does
We offer a resume parser, an interactive chatbot, and a curated set of resources to help users explore the climate-tech landscape. Users can upload a PDF of their resume, which we analyze to identify their skills and recommend relevant sectors and roles that align with their background. From here, the user can input any additional preferences they have about the user’s areas of interest, risk appetite, and years of experience. Our chatbot enhances this experience by enabling users to explore real job opportunities and gain insight into different areas of climate tech. It can provide clear overviews of the various areas of climate tech, generate personalized job recommendations based on a user’s interests and skills, and suggest actionable steps to build the qualifications needed for targeted roles. In addition, users can navigate the broader climate-tech landscape through structured sector overviews, helping them understand how different parts of the industry connect. The platform also highlights which roles align with specific academic backgrounds and how those roles map across sectors, making it easier for users to identify relevant and realistic career pathways.
How we built it
We built this platform through a combination of deep curiosity, sustained effort, and a shared commitment to making climate-tech careers more accessible. What began as whiteboard sketches and long conversations about possible features evolved into a fully integrated system. We developed the core components from the ground up, including a job scraper, a resume parser, and an intelligent chatbot. Then we carefully brought them together into a cohesive experience. Throughout the process, we wanted to focus not just on functionality but on usability, so we refined every element of the interface to ensure the platform is intuitive, responsive, and genuinely helpful to users navigating a complex and unfamiliar space.
Challenges we ran into
The development process was far from straightforward. We encountered a range of unforeseen challenges that required both technical problem-solving and careful decision-making. For example, limitations imposed by the company's Terms of Service constrained our ability to scrape job data, forcing us to rethink how we sourced and structured information. On the modeling side, early versions of our filtering and recommendation systems proved ineffective, requiring extensive iteration and tuning to produce meaningful, relevant results. We also faced the nontrivial task of integrating and navigating the taxonomy from climatetechmap.com, which involved distinguishing between closely related categories and ensuring that our system could interpret and present them without confusion. However, these difficulties actually became the perfect opportunities for us. They encouraged us to persevere through the adversity, to think inventively and collaboratively to fix the issues. Ultimately, they lead to a more robust, thoughtful, and reliable platform.
Accomplishments we're proud of
Despite the challenges along the way, we accomplished a functional AI-backed UI and career coach that helps users find their place in the climate-tech sector. Not only was it exciting to provide a solution to such a commonly faced problem (even putting in our own resumes and finding job postings for ourselves!), but most importantly, it was inspiring to see how much we could learn about UI development, backend programming, teamwork, and nimble problem-solving in 36 hours.
What we learned
As this was our first hackathon, the experience also reshaped our understanding of what it means to be a software engineer. We came to see that it extends far beyond writing code or using tools, actually requiring careful planning, constant communication, and the ability to adapt quickly when things don’t go as expected.
What's next
for Eco-Match What’s next for Eco-Match? More jobs. Improved Retrieval Augmented Generation. Grow our software. Become a job board. Expanding across geographies. Motivating people across all sectors to join the climate tech space.
Eco-Match (Climate-Tech Career Counsellor Platform)
Features
- ** AI-Powered**: Uses Google Gemini Pro for intelligent responses
- ** Climate-Tech Expertise**: Specialized knowledge across 6 key sectors:
- Buildings (heat pumps, smart buildings, sustainable materials)
- Manufacturing (green hydrogen, industrial electrification)
- Transportation (EVs, hydrogen fuel cells, sustainable aviation)
- Food, Agriculture & Nature (methane reduction, regenerative farming)
- Electricity (renewables, energy storage, grid modernization)
- GHG Removal (direct air capture, carbon sequestration)
- ** Smart Context Retrieval (RAG)**: Automatically injects relevant climate-tech context based on your queries
- ** Keyword Filtering**: Detects and emphasizes climate-tech topics in conversations
- ** Interactive UI**: Clean, responsive chat interface with typing indicators and suggestions
Tech Stack
- Frontend: HTML, CSS, JavaScript (Vanilla)
- Backend: Node.js + Express
- AI: Google Gemini API
- Data: JSON-based knowledge base with comprehensive climate-tech taxonomy
Prerequisites
- Node.js 18.x or higher
- A free Google Gemini API key (Get one here)
Installation
-
Clone or download this repository
-
Install dependencies
npm install -
Get your free Gemini API key
- Visit Google AI Studio
- Sign in with your Google account
- Click "Create API Key"
- Copy your API key
-
Configure environment variables
- Open the
.envfile - Replace
your_api_key_herewith your actual Gemini API key:
GEMINI_API_KEY=your_actual_api_key_here PORT=3000 - Open the
Usage
-
Open your browser
- Navigate to https://eco-match-treehacks-2026.vercel.app/
-
Start chatting!
- Try asking about:
- "What are heat pumps and how do they work?"
- "How can we decarbonize transportation?"
- "Tell me about direct air capture"
- "What are climate-tech moonshots?"
- Try asking about:
Project Structure
.
├── index.html # Main chat interface
├── styles.css # UI styling (climate-themed)
├── app.js # Frontend JavaScript
├── server.js # Express backend + Gemini integration
├── climate-knowledge.json # Climate-tech taxonomy database
├── package.json # Node dependencies
├── .env # Environment variables (API key)
├── .gitignore # Git ignore rules
└── README.md # This file
How It Works
1. System Prompt Configuration
The chatbot is configured with a specialized system prompt that establishes it as a climate-tech expert with knowledge across all 6 sectors.
2. Keyword Extraction
When you send a message, the backend analyzes your query to extract climate-tech keywords (e.g., "heat pumps", "carbon capture", "solar", etc.).
3. Context Retrieval (RAG)
Based on extracted keywords, the system retrieves relevant information from the climate knowledge base:
- Sector descriptions
- Key technologies
- Innovation imperatives
- Moonshot projects
4. Enhanced Prompt
The retrieved context is injected into the prompt sent to Gemini, ensuring responses are grounded in climate-tech knowledge.
5. Intelligent Response
Gemini generates a comprehensive response using both its base knowledge and the injected climate-tech context.
Example Queries
- "What are the main technologies for decarbonizing buildings?"
- "How does green hydrogen work and where can it be used?"
- "What's the difference between DAC and BECCS?"
- "Tell me about regenerative agriculture"
- "What are the challenges with electric vehicles?"
- "How can we reduce methane emissions from livestock?"
- "What innovations are needed for sustainable aviation?"
- "Explain grid-scale battery storage"
API Endpoints
POST /api/chat
Send a message to the chatbot.
Request:
{
"message": "What are heat pumps?"
}
Response:
{
"response": "Heat pumps are...",
"metadata": {
"keywords": ["heat_pumps", "buildings"],
"sectorsReferenced": ["Buildings"]
}
}
GET /api/health
Check server health status.
Response:
{
"status": "ok",
"message": "Climate-Tech Chatbot API is running",
"sectorsLoaded": 6
}
Troubleshooting
"Invalid API key" error
- Make sure you've added your Gemini API key to the
.envfile - Verify the key is correct (no extra spaces or quotes)
- Ensure you've created the API key at Google AI Studio
"API quota exceeded" error
- The free Gemini API has rate limits
- Wait a few minutes and try again
- Consider upgrading to a paid plan if needed
Server won't start
- Make sure Node.js 18+ is installed:
node --version - Delete
node_modulesand runnpm installagain - Check if port 3000 is available (or change PORT in
.env)
Customization
Adding More Climate Data
Edit climate-knowledge.json to add:
- New sectors
- Additional technologies
- More keywords for better matching
- Custom imperatives or moonshots
Changing the AI Model
In server.js, line 17:
const model = genAI.getGenerativeModel({ model: 'gemini-pro' });
You can change to other Gemini models if needed.
Styling
Edit styles.css to customize:
- Colors and theme
- Layout and spacing
- Responsive breakpoints
Credits
- Climate Data: Climate Tech Map by Breakthrough Energy, Stanford, and McKinsey
- AI: Google Gemini API
- Built for: TreeHacks 2026
License
ISC
Support
For issues or questions, please check:
- This README
- Server console logs
- Browser console (F12)
Analysis
View
Metric
- 3
- 1
- 1
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- ExpressIn code
- Google GeminiIn code
- HTMLIn code
- JavaScriptIn code
- PythonIn code
- VercelClaimed
6 of 7 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
- Claude CodeConfig · Commits
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
603 KB
Source files
84
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
Aarush-Garg/Eco-Match-TreeHacks-2026
109 files · 11.0 MB · @ eae8635
Structure
Interface
67 files · 61%Screens, components and styles rendered to the user.
Application logic
24 files · 22%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- HTML40%
- JavaScript25%
- Python25%
- CSS7%
- Markdown3%
- Shell0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 6- @google/generative-ai
- cors
- dotenv
- express
- multer
- pdf-parse
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.