×Full view
Back to Portfolio

// Flutter · BLoC · Mistral AI · REST API

Resume Customizer App

An AI-powered Flutter app that reads a job description URL and rewrites your PDF resume to match it — using Mistral AI via REST API, with BLoC managing all async state.

Platform: Flutter
State: BLoC
AI: Mistral AI

Overview

The Resume Customizer App lets job seekers paste a job listing URL and their existing PDF resume — the app extracts the job requirements via scraping, sends them alongside resume content to Mistral AI, and returns a tailored, keyword-optimized version of the resume. The entire async pipeline is managed with BLoC for clean, testable state transitions.

Tech Stack

FlutterDartBLoC Mistral AI APIREST API PDF ParsingWeb Scraping

Key Contributions

  • Built full BLoC architecture — separate blocs for URL fetching, PDF parsing, AI generation, and result display states.
  • Integrated Mistral AI REST API with proper error handling, retry logic, and token-aware prompt engineering.
  • Implemented PDF text extraction and re-generation within Flutter using native packages.
  • Designed a clean multi-step UI that reflects BLoC state transitions — idle, loading, success, error — without any state leaking into widgets.

Screenshots

Screenshot Screenshot Screenshot

Results & Learnings

Demonstrated how BLoC cleanly orchestrates multi-step AI pipelines. The strict event→state model made it trivial to add retry and cancellation without touching UI code.