Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

audio_to_resume 🎤📄

A Python CLI pipeline that converts audio recordings into structured resumes. Speak your background - the tool handles transcription, extraction, and formatting.


Pipeline

Audio (MP3/WAV)
    ↓
Whisper (local transcription → English text)
    ↓
LangChain + GPT-4o mini (structured extraction)
    ↓
Resume JSON + Markdown

Transcription is fully local - Whisper runs on your machine, no audio ever leaves it. The extraction step (turning raw transcript into structured resume sections) calls the OpenAI API via LangChain.


What Gets Extracted

From a raw spoken recording, the pipeline produces:

  • Professional summary
  • Work experience
  • Projects (with tech stack)
  • Education
  • Categorized technical skills

Output is both machine-readable JSON (ATS-compatible) and human-readable Markdown.


Tech Stack

Component Technology
Speech-to-text OpenAI Whisper (local)
LLM orchestration LangChain
Extraction model GPT-4o mini
Config Python (config.py)
Packaging Docker

Setup

Prerequisites: Python 3.10+ or Docker, OpenAI API key, 2GB+ disk space for Whisper model.

git clone https://github.com/koi-bito/audio_to_resume.git
cd audio_to_resume

Option 1 - Docker:

docker build -t audio-to-resume .
docker run -v $(pwd)/audio:/app/audio audio-to-resume --input audio/sample.mp3

Option 2 - Python:

pip install -r requirements.txt
python main.py --input audio/sample.mp3

Set your OpenAI API key in config.py before running.


Output

output/
├── resume.json      # Machine-readable, ATS-compatible
└── resume.md        # Human-readable Markdown

Context

Built to explore multi-modal AI pipelines - specifically the boundary between local inference (Whisper) and cloud LLM calls (GPT-4o mini via LangChain). The interesting engineering problem here isn't the transcription or the extraction individually - it's prompt engineering the extraction step to handle the messiness of real spoken language: filler words, non-linear storytelling, mixed languages.

About

CLI pipeline: Whisper (local) → LangChain → GPT-4o mini → structured resume JSON + Markdown. Speak your background, get a formatted resume.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages