Inspiration
Job searching is overwhelming. You apply to dozens of companies across LinkedIn, company websites, and email — then three weeks later you have no idea what's pending, what moved forward, or what you forgot to follow up on. I built ApplyMate because I lived that problem and wanted a solution that fits where my day already happens: Slack.
Required Technology: Slack AI Capabilities
ApplyMate uses Google Gemini AI (gemini-1.5-flash-8b) as its core AI capability inside Slack. The /suggest command sends the user's application data to the Gemini API and returns personalised, intelligent job search coaching — specific next steps based on exactly where the user stands in their job search. This is not a bolt-on feature; without AI, ApplyMate would only be a tracker. With Gemini AI, it becomes a job search coach.
What it does
ApplyMate is an AI-powered Slack agent that helps job seekers track every job application and get intelligent coaching — without leaving Slack. Instead of juggling spreadsheets or sticky notes, you log, view, update, and get AI-powered suggestions using simple slash commands.
- /apply Company, Role — log a new job application
- /mystatus — view all applications with colour-coded statuses
- /update Number, Status — update an application status
- /delete Number — remove an application
- /suggest — get AI-powered job search coaching from Gemini
How I built it
- Slack Bolt to handle slash commands and verify requests
- Flask as the server receiving Slack's webhook POST requests
- Railway for cloud deployment so the bot runs 24/7 without a local server
- Google Gemini AI (gemini-1.5-flash-8b) for intelligent job search suggestions
- python-dotenv for environment variable management
- JSON file storage to persist application data per user
- Slack Block Kit for structured, native-feeling UI responses
Challenges we ran into
Getting the Slack webhook routing working correctly was the biggest challenge. I had to switch from say() to respond() to handle slash command contexts properly, resolve a scope issue with chat:write.public permissions, and fix Gemini API model compatibility issues. Deploying to Railway so judges could test without running a local server was also a key technical hurdle.
Accomplishments that we're proud of
Building a fully functional AI-powered Slack agent from scratch in under a week with no prior Slack development experience. The /suggest command genuinely adds value — it doesn't just track applications, it coaches the user on what to do next based on their real data.
What we learned
How to build a fully functional Slack agent from scratch using Slack Bolt and Flask, how webhook-based architectures work in practice, how to use Block Kit to build structured native-feeling Slack UI, and how to integrate Google Gemini AI into a real production Slack app deployed on Railway.
What's next for ApplyMate
- Automatic follow-up reminders based on application age
- Interview preparation tips powered by AI
- Integration with LinkedIn and job boards to auto-log applications
- Team mode for career coaches to track multiple clients
Log in or sign up for Devpost to join the conversation.