An AI-powered career assistant built with Flutter. Upload your resume and Aestimo turns it into actionable insights, a resume score, tailored cover letters, interview prep, job matches, an ATS-optimized resume, and a chat that actually knows your background — all grounded in your real experience using Google Gemini.
Live Demo · Download (Windows / Android) · Report a Bug · Request a Feature
- Overview
- Features
- Download
- Screenshots
- Tech Stack
- Architecture
- Getting Started
- Configuration
- Deployment
- Roadmap
- Contributing
- Author
- License
Aestimo reads your resume once and powers every feature from it. There's no manual data entry — upload a PDF, and the app extracts, understands, and uses your experience to help you land your next role.
Every answer, score, and suggestion is grounded in the resume you actually uploaded rather than generic advice, so the output stays specific to your background instead of reading like a template. It runs on Android, Web, and Windows from a single Flutter codebase, with Firebase handling authentication and hosting, and Google Gemini powering the AI layer end to end — extraction, scoring, chat, and generation.
Try it instantly in the browser at the live demo link above, or grab a native build from Releases if you'd rather install it on Windows or Android.
- Resume Upload & Parsing — drop in a PDF; Gemini extracts and structures the content.
- Resume Insights — skills, experience, strengths, and gaps at a glance.
- Resume Score — an objective score with concrete, prioritized improvements.
- ATS Resume — generate an ATS-optimized version of your resume.
- AI Chat — ask anything about your career; every answer is grounded in your resume with sources.
- Interview Prep — personalized questions plus a live, interactive mock interview with feedback.
- Job Match — live roles ranked against your resume.
- Cover Letter Generator — tailored letters written from your background.
- Secure Auth — email/password sign-in via Firebase Authentication.
- Adaptive UI — a navigation rail on desktop/tablet and a slide-out drawer on mobile.
Aestimo runs anywhere without installing anything via the live web app, or you can install a native build:
| Platform | How to get it |
|---|---|
| 🌐 Web | Open aestimo-career-copilot.web.app — nothing to install |
| 🪟 Windows | Download the latest installer .exe from Releases and run it |
| 🤖 Android | Download the latest .apk from Releases and install it |
Windows Setup and the Android APK aren't code-signed yet, so you may see a SmartScreen or "unknown sources" prompt on first install — this is expected for a self-distributed build. Choose More info → Run anyway on Windows, or allow installs from your browser/file manager on Android.
Check the Releases page for release notes, version history, and checksums on each build.
| Desktop | Mobile |
|---|---|
![]() |
![]() |
| Desktop | Mobile |
|---|---|
![]() |
![]() |
| Desktop | Mobile |
|---|---|
![]() |
![]() |
| Desktop | Mobile |
|---|---|
![]() |
![]() |
| Desktop | Mobile |
|---|---|
![]() |
![]() |
| Desktop | Mobile |
|---|---|
![]() |
![]() |
| Desktop | Mobile |
|---|---|
![]() |
![]() |
| Desktop | Mobile |
|---|---|
![]() |
![]() |
| Desktop | Mobile |
|---|---|
![]() |
![]() |
| Desktop | Mobile |
|---|---|
![]() |
![]() |
| Desktop | Mobile |
|---|---|
![]() |
![]() |
| Desktop | Mobile |
|---|---|
![]() |
![]() |
| Layer | Tools |
|---|---|
| Framework | Flutter, Dart |
| State | Riverpod |
| Routing | GoRouter |
| AI | Google Gemini (Generative Language API) |
| Auth | Firebase Authentication |
| Hosting | Firebase Hosting |
| Networking | Dio |
| Other | file_picker, url_launcher, flutter_markdown_plus |
Feature-first clean architecture. Each feature owns its models / data / providers / presentation layers, so functionality stays isolated and easy to extend without touching unrelated parts of the app.
lib/
├── core/ # constants, theme, router, networking, Gemini client, utils
├── features/ # auth, dashboard, upload_resume, insights, rag_chat,
│ # interview_prep, job_match, cover_letter, resume_score,
│ # ats_resume, about, settings
├── shared/widgets/ # reusable UI (cards, buttons, shell, drawer, ...)
└── main.dart
State is managed with Riverpod providers scoped per feature, navigation runs through GoRouter with a shared responsive shell, and all AI calls flow through a single Gemini client in core/gemini so prompting, error handling, and retries live in one place instead of being duplicated across features.
- Flutter SDK 3.x
- A Firebase project
- A free Google AI Studio API key
# 1. Clone
git clone https://github.com/ArsalanKaleem/Aestimo.git
cd aestimo
# 2. Install dependencies
flutter pub get
# 3. Connect Firebase (generates lib/firebase_options.dart)
dart pub global activate flutterfire_cli
flutterfire configure
# 4. Run
flutter run # mobile
flutter run -d chrome # web
flutter run -d windows # windowsAdd your Gemini API key in lib/core/constants/app_constants.dart:
static const String geminiApiKey = 'YOUR_GEMINI_API_KEY';In the Firebase console, enable Authentication → Sign-in method → Email/Password.
⚠️ Security note: the Gemini key is bundled into the client app. Before deploying publicly, restrict it in the Google Cloud console (APIs & Services → Credentials → your key → set an HTTP referrer / application restriction) so it can't be reused elsewhere. Never commit the key — pass it at build time with--dart-define.
flutter build web --release --dart-define=GEMINI_API_KEY=your_key
firebase deploy --only hostingLive at aestimo-career-copilot.web.app.
- Code-signed Windows and Android builds
- iOS and macOS support
- Team/organization accounts for career coaches and recruiters
- Offline resume parsing fallback
- Localized UI for non-English resumes
Have an idea that isn't listed? Open a feature request.
Contributions, issues, and feature requests are welcome.
- Fork the repo
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a pull request
Please keep PRs focused — one feature or fix per PR makes review much faster.
Arsalan Kaleem — Flutter Developer
Distributed under the MIT License. See LICENSE for details.























