Spaces:
Sleeping
A newer version of the Streamlit SDK is available: 1.56.0
title: Assistant-Tiya
emoji: π€
colorFrom: blue
colorTo: purple
sdk: streamlit
sdk_version: 1.28.1
app_file: app.py
pinned: false
AI Resume Assistant
A Streamlit-based LLM assistant that helps you tailor your resume and cover letter based on job descriptions.
Features
- Resume Finder - Automatically selects the most relevant portfolio (AI or Data Science) based on job description
- Cover Letter Generator - Creates customized cover letters using your selected resume with AI-powered web search for company research
- General Query - Answers questions about your application with relevant context
Setup
1. Install Dependencies
pip install -r requirements.txt
2. Configure API Keys
Create a .env file in the project directory:
OPENROUTER_API_KEY=your_openrouter_api_key_here
OPENAI_API_KEY=your_openai_api_key_here
Or provide API keys through the Streamlit UI sidebar.
3. Ensure Portfolio Files Exist
Make sure you have:
AI_portfolio.mdDS_portfolio.md
in the same directory as app.py
4. Create README.md File (For HuggingFace Spaces)
Create a README.md file in your project root with:
```yaml
title: Assistant-Tiya emoji: π€ colorFrom: blue colorTo: purple sdk: streamlit sdk_version: "1.28.1" app_file: app.py pinned: false
This configuration file is **required** for HuggingFace Spaces deployment. It tells HuggingFace:
- The space name and appearance
- That it's a Streamlit app
- Which file to run (`app.py`)
### 5. Run the Application
```bash
streamlit run app.py
How It Works
Input Section
- Job Description (Required) - Paste the job posting
- Resume Finder (Optional) - Check to find the best matching resume
- Cover Letter (Optional) - Check to generate a cover letter with web search
- Length of Resume (Optional) - Choose response length (short/medium/long)
- Select Resume (Optional) - Choose AI_portfolio or DS_portfolio
- Entry Query (Optional) - Ask specific questions (max 5000 characters)
Processing Logic
The system categorizes inputs based on your selections:
| Resume Finder | Cover Letter | Select Resume | Action |
|---|---|---|---|
| β | β | No Select | Resume Finder - Picks best portfolio |
| β | β | Resume_P/Dss | Cover Letter - Generates with web search context |
| β | β | Resume_P/Dss | General Query - Answers your question |
| Any other combination | Retry - Validation error |
Output
Each category produces:
Resume Finder Output
- Selected Resume: Resume_P or Resume_Dss
- Reasoning: 25-30 words explaining why
Cover Letter Output
- Professional cover letter (<250 words)
- Starts with "Dear Hiring Manager,"
- Ends with "Best,\nDhanvanth Voona" (signature on separate line)
- No em dashes or corporate jargon
- Personalized with company-specific research via web search
General Query Output
- Natural human-like response
- Tailored to specified word count
- Ready to use in applications
Technologies Used
- Frontend: Streamlit
- LLM Models:
- Resume Finder: openai/gpt-oss-safeguard-20b (via OpenRouter)
- Cover Letter & General Query: gpt-5-mini-2025-08-07 (OpenAI)
- Cover Letter Context (Web Search): perplexity/sonar (via OpenRouter)
- APIs: OpenAI, OpenRouter (with Perplexity web search capability)
- PDF Generation: ReportLab
- Timezone Support: Pytz (EST timestamps)
Key Features
β¨ Auto-Generated Company Research - Uses Perplexity/Sonar to search the web for company information
β¨ Two-Stage Cover Letter Generation - First generates company-specific context, then writes personalized letter
β¨ PDF Download - Export cover letters as PDFs with EST timestamps
β¨ Edit & Save - Modify responses and save changes before downloading
β¨ Multi-Portfolio Support - Switch between AI and Data Science portfolios
β¨ No Generic Templates - All outputs are authentic and personalized
Notes
- All LLM outputs are without preamble for direct usage
- Cover letters have no em dashes as per specifications
- General queries are kept under word limits specified
- Responses are formatted to be immediately usable in applications
- Web search for cover letter context requires OpenRouter API key (Perplexity/Sonar model)
Created by: Dhanvanth Voona