A sophisticated AI-powered resume building application that combines voice interaction with intelligent multi-agent systems to create professional, ATS-optimized resumes.
- Voice Interaction: Natural conversation through speech recognition and text-to-speech
- Multi-Agent System: Specialized AI agents for different aspects of resume building
- Real-time Processing: Live conversation and resume generation
- Multiple Output Formats: HTML, PDF, Word, Text, and JSON formats
- ATS Optimization: Ensures resumes pass Applicant Tracking Systems
- ConversationAgent: Career counselor that guides users through natural conversation
- ResumeAnalyzerAgent: Analyzes resume content for gaps and improvements
- ContentOptimizerAgent: Optimizes content for maximum impact
- FormattingAgent: Handles professional formatting and structure
demo-va/
├── src/
│ ├── agents/ # AI Agent System
│ │ ├── base_agent.py # Base agent class
│ │ ├── conversation_agent.py
│ │ ├── resume_analyzer_agent.py
│ │ ├── content_optimizer_agent.py
│ │ ├── formatting_agent.py
│ │ └── agent_coordinator.py
│ ├── services/ # Core Services
│ │ ├── voice_service.py
│ │ ├── conversation_engine.py
│ │ ├── resume_parser.py
│ │ ├── resume_builder.py
│ │ └── agent_service.py
│ ├── models/ # Data Models
│ │ └── resume_models.py
│ └── utils/ # Utilities
├── examples/ # Example files
├── main.py # FastAPI application
├── requirements.txt # Python dependencies
└── .env.example # Environment configuration
- Role: Career Counselor & Resume Expert
- Purpose: Guides users through natural conversation to gather resume information
- Features:
- Warm, encouraging conversation style
- One focused question at a time
- Digs deeper to uncover hidden achievements
- Helps users articulate quantifiable results
- Identifies transferable skills
- Role: Resume Analysis Expert
- Purpose: Analyzes resume content for gaps and improvements
- Features:
- ATS optimization analysis
- Industry-specific keyword suggestions
- Content gap identification
- Achievement quantification opportunities
- Competitive positioning analysis
- Role: Resume Content Strategist
- Purpose: Optimizes resume content for maximum impact
- Features:
- Action verb optimization
- Quantifiable achievement enhancement
- ATS keyword integration
- Impact statement creation
- Industry-specific language adaptation
- Role: Resume Formatting Specialist
- Purpose: Handles resume formatting and structure optimization
- Features:
- ATS-compatible formatting
- Multiple output formats (HTML, PDF, Word, Text, JSON)
- Visual hierarchy optimization
- Print and digital optimization
- Python 3.9+
- macOS (for voice features)
- OpenAI API key (for AI agents)
-
Clone the repository
git clone <repository-url> cd demo-va
-
Create virtual environment
python3 -m venv venv source venv/bin/activate -
Install dependencies
pip install -r requirements.txt
-
Configure environment
cp .env.example .env # Edit .env and add your OpenAI API key -
Install audio dependencies (macOS)
# Install Homebrew if not already installed /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # Install PortAudio brew install portaudio # Reinstall PyAudio pip uninstall pyaudio pip install pyaudio
source venv/bin/activate
python main.pyThe application will be available at http://localhost:8000
POST /api/conversation- Start/continue conversationPOST /api/resume/generate- Generate resumeGET /api/resume/{session_id}- Get resume data
POST /api/agents/start- Start agent conversationPOST /api/agents/continue- Continue agent conversationPOST /api/agents/format- Format resume with agentsGET /api/agents/status/{session_id}- Get session statusGET /api/agents/info- Get agent information
POST /api/voice/speak- Text-to-speechPOST /api/voice/start-listening- Start voice recognitionPOST /api/voice/stop-listening- Stop voice recognition
import requests
# Start agent conversation
response = requests.post('http://localhost:8000/api/agents/start', json={
'session_id': 'user_123',
'target_role': 'Data Scientist',
'industry': 'Technology'
})
# Continue conversation
response = requests.post('http://localhost:8000/api/agents/continue', json={
'session_id': 'user_123',
'user_input': 'I have 5 years of experience in machine learning'
})
# Format resume
response = requests.post('http://localhost:8000/api/agents/format', json={
'session_id': 'user_123',
'format': 'html'
})# OpenAI API Configuration
OPENAI_API_KEY=your_openai_api_key_here
AGENT_TEMPERATURE=0.7
AGENT_MAX_TOKENS=1000
AGENT_MODEL=gpt-4Each agent can be customized by modifying their system prompts in the respective agent files:
src/agents/conversation_agent.pysrc/agents/resume_analyzer_agent.pysrc/agents/content_optimizer_agent.pysrc/agents/formatting_agent.py
# Run basic health check
curl http://localhost:8000/api/health
# Test agent system
curl http://localhost:8000/api/agents/info
# Test voice service
curl http://localhost:8000/api/voice/status-
Python command not found
- Use
python3instead ofpythonon macOS
- Use
-
Audio dependencies missing
- Install PortAudio:
brew install portaudio - Reinstall PyAudio:
pip uninstall pyaudio && pip install pyaudio
- Install PortAudio:
-
OpenAI API errors
- Ensure API key is set in
.envfile - Check API quota and rate limits
- Ensure API key is set in
-
Agent endpoints not found
- Restart the application
- Check that agent endpoints are properly registered
# Enable debug logging
export PYTHONPATH=.
python -c "import logging; logging.basicConfig(level=logging.DEBUG)"
python main.py- Set up proper environment variables
- Configure reverse proxy (nginx)
- Use production ASGI server (gunicorn)
- Set up monitoring and logging
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "main.py"]- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenAI for GPT-4 API
- FastAPI for the web framework
- SpeechRecognition and pyttsx3 for voice features
- All contributors and users
For support and questions:
- Create an issue in the repository
- Check the documentation
- Review the troubleshooting section
Note: This application requires an OpenAI API key for full functionality. Without it, the agents will operate in demo mode with limited capabilities.