Project Info
This project did not submit a demo video on Devpost.
Inspiration
As computer science students, we are all too familiar with the challenges of breaking into the job market. The modern application process is time-consuming, repetitive, and often demoralizing, especially when juggling coursework, internships, and personal responsibilities. We wanted to build something that would genuinely help students and job-seekers like us: a tool that removes friction from the process, boosts confidence, and actually provides value. That’s how Employ AI was born.
What it does
Employ AI streamlines two of the most daunting tasks in the job search process: Personalized Cold Email Generator Upload your resume, and we’ll extract your key experiences using AI. Then, with just a few inputs (company name, recruiter name, email), we generate a polished, personalized cold outreach email—ready to send via Gmail integration. Mock Interview Coach with Feedback Upload your resume and specify your target job. We generate 10 intelligent interview questions tailored to your resume and career goals. You can record your spoken responses, and we’ll analyze your delivery using acoustic features (energy, entropy, ZCR) and provide real-time feedback—helping you improve both your content and communication.
How we built it
Backend: Built using Flask, Firebase (Firestore, Auth, and Cloud Storage), and PyMuPDF for PDF processing. Authentication: Google OAuth 2.0 for Gmail integration and Firebase Auth for signup/login. Audio & AI Features: Audio processing with FFmpeg and feature extraction using signal processing techniques. Natural language understanding with LLaMA-3 through Groq API for both email generation and mock interview logic. Frontend: HTML templates rendered via Flask’s Jinja2 with custom UI for uploading, form inputs, and dynamic question flows.
Challenges we ran into
Audio File Processing in Flask: Supporting webm-to-wav conversion on the fly required careful integration with FFmpeg. Session Management: Keeping track of resume uploads, question progression, and user state across multiple endpoints was tricky in Flask. Gmail API Integration: Setting up OAuth scopes and redirect URIs while keeping user tokens secure was non-trivial. Groq/OpenAI Rate Limits: Ensuring fast and consistent generation from a third-party API required retry logic and error handling.
Accomplishments we're proud of
Built a full-stack AI-driven product in a short time that feels useful and personal. Integrated multiple technologies (PDF parsing, audio analysis, generative AI, OAuth) in a cohesive, user-friendly flow. Successfully deployed a working end-to-end Gmail integration that sends real cold emails. Designed a feedback system that’s both data-driven and user-friendly for mock interviews.
What we learned
How to build robust, session-aware web applications with Flask. Real-world use of OAuth 2.0 with multiple scopes (profile, email, Gmail send). How to extract meaningful insights from raw audio signals using ZCR, entropy, and energy The value of iteration, especially in natural language prompts and generative outputs
What's next
Voice Tone Feedback: Incorporate sentiment and tone analysis into audio feedback Job-Specific Cold Emails: Add job scraping or integration with platforms like LinkedIn or Indeed to auto-tailor the cold email Question Difficulty Tuning: Let users choose beginner, intermediate, or expert mock questions Progress Tracking: Save user feedback over time to show improvement Mobile Optimization: Bring the full experience to mobile so users can practice on-the-go.
Analysis
View
Metric
- 11
- 4
- 2
- 1
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- FlaskIn code
- HTMLIn code
- JavaScriptIn code
- PythonIn code
- FirebaseClaimed
5 of 6 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
102 KB
Source files
29
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
ssridhar128/employAI
33 files · 401 KB · @ 29e2c49
Structure
Interface
10 files · 30%Screens, components and styles rendered to the user.
Application logic
11 files · 33%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python63%
- HTML20%
- CSS11%
- JavaScript7%
- YAML0%
- Markdown0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
requirements.txt
pypi · 78- annotated-types
- anyio
- Authlib
- blinker
- CacheControl
- cachetools
- certifi
- cffi
- charset-normalizer
- click
- contourpy
- cryptography
- cycler
- deprecation
- distro
- eyeD3
- filetype
- firebase-admin
- +60 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.