Project Info
This project did not submit a demo video on Devpost.
The inspiration for Floo came from the need for personalized interview preparation. Many candidates struggle with behavioral interviews and lack the resources to practice effectively. We aimed to create a solution that tailors the interview experience to individual users based on their unique backgrounds and qualifications. Floo is an AI-driven platform that simulates behavioral interviews. It provides users with realistic interview scenarios and gives personalized feedback. By analyzing the user’s past experiences and resumes, Floo recommends the best responses, helping users build confidence and improve their interviewing skills. We developed Floo using a combination APIs including Hume, OpenAI, and Deepgram. The backend is powered by Flask, which manages user data and interacts with a database storing users’ past experiences and resumes. The front end is built with React, creating a seamless and interactive user experience. One of the main challenges was ensuring that the AI accurately interpreted user experiences and provided meaningful feedback. We also faced difficulties in designing an intuitive user interface that effectively communicated the AI’s recommendations. Integrating the database with the AI model posed additional technical challenges. We are proud to have successfully developed an AI agent to conduct realistic behavioral interviews. We go beyond a simple AI system that would only ask questions and give surface-level advice. Driven by the user's personal experiences derived from past responses and resume details, it curates advice specifically for the user, maximizing its impact on their learning experience. Through this project, we learned the importance of user-centered design and the value of iterative testing. We gained hands-on experience with speech/text APIs as well as, deepening our understanding of how to leverage AI in practical applications. Collaborating as a team taught us the significance of communication and adaptability in problem-solving. Moving forward, we plan to enhance Floo’s capabilities by incorporating more advanced AI algorithms for better feedback and recommendations. We aim to expand our database to include a wider range of industries and roles, providing users with a more comprehensive practice experience. Additionally, we want to explore partnerships with career services and educational institutions to reach a broader audience.
Analysis
View
Metric
- 23
- 15
- 11
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
- HTMLIn code
- JavaScriptIn code
- PythonIn code
- ReactIn code
- FirebaseClaimed
- FlaskClaimed
- OpenAIClaimed
5 of 8 appear in the indexed code. 3 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
53 KB
Source files
30
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
dangzdylan/floo
58 files · 1.3 MB · @ be823e8
Structure
Interface
11 files · 19%Screens, components and styles rendered to the user.
Application logic
16 files · 28%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
- JavaScript32%
- Python32%
- CSS20%
- HTML15%
- YAML1%
- Markdown0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
frontend/package.json
npm · 10- @deepgram/sdk
- @testing-library/jest-dom
- @testing-library/react
- @testing-library/user-event
- axios
- dotenv
- react
- react-dom
- react-scripts
- web-vitals
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.
Feature verification
Flask backend managing user dataVerified
The backend is powered by Flask, which manages user data
Claimed on Devposthigh confidencebackend/flaskbase.py:20— Flask app defined with CORS and multiple routes handling resume upload, audio upload, text-to-speech, and feedback.
React frontendVerified
The front end is built with React, creating a seamless and interactive user experience
Claimed on Devposthigh confidencefrontend/src/App.js:1— Standard Create React App structure with functional components and hooks orchestrating the Onboarding, InterviewSelection, InterviewScreen, and SynopsisScreen views.
Resume upload and parsingVerified
Analyzes the user's resumes; database storing users' past experiences and resumes
Claimed on Devposthigh confidencefrontend/src/components/Onboarding.jsx:21— Uploads a selected PDF file to POST /resumeParser.backend/flaskbase.py:98— /resumeParser route saves the uploaded file and calls pdf_to_text on it.backend/resume1.py:4— pdf_to_text extracts text from the PDF via PyPDF2 and writes it to resume.txt.
Speech-to-text transcription of interview answersVerified
Assesses performance using speech-to-text
Claimed on Devposthigh confidencefrontend/src/components/AudioRecorder.jsx:49— Records audio via MediaRecorder and POSTs it to /upload_audio.backend/flaskbase.py:116— /upload_audio route saves the file and calls run_deepgram on it.backend/deepgram_test.py:11— run_deepgram uses DeepgramClient prerecorded transcription and writes the transcript to speech_text_message.json.
Text-to-speech playback of interview questionsVerified
AI agent to conduct realistic behavioral interviews (implies spoken questions); Deepgram listed as built-with tech
Claimed on readmehigh confidencefrontend/src/components/TextSpeechFunction.jsx:1— Fetches generated audio from /text_to_speech and plays it in the browser.backend/flaskbase.py:124— /text_to_speech route calls text_to_speech(text) and returns the audio file.backend/text_to_speech.py:12— Uses Deepgram SpeakOptions to synthesize speech and save a wav file.
AI-simulated behavioral interview with dynamic question generationCode-supported
AI-driven platform that simulates behavioral interviews, providing realistic interview scenarios
Claimed on Devpostmedium confidencebackend/flaskbase.py:22— The OpenAI-driven conversational interview loop (/interview/setup, /interview, /interview/followup routes using client.chat.completions.create) is entirely wrapped in a triple-quoted string (lines 22-97), so it is dead code and not an active Flask route.frontend/src/components/InterviewScreen.jsx:7— Instead of calling an AI backend, the interview screen picks questions randomly from a hardcoded local array of 15 behavioral questions on a fixed 60s timer, with no OpenAI call in the question flow.
Facial/emotion expression analysis via HumeCode-supported
Hume listed as a core API used to assess performance
Claimed on Devpostlow confidencebackend/hume_funcs.py:13— top_emotions defines a Hume AsyncHumeClient call to submit an inference job on the recorded audio file.backend/hume_funcs.py:26— References InferenceBaseRequest without importing it, so the function would raise a NameError if executed.backend/flaskbase.py:1— hume_funcs is never imported or called from flaskbase.py, so this module is disconnected from any Flask route or frontend flow.
Personalized feedback driven by conversation history and resume data (OpenAI Assistants)Code-supported
By analyzing the user's past experiences and resumes, Floo recommends the best responses / gives personalized feedback driven by conversation history and resume data
Claimed on Devpostlow confidencebackend/interview_assesment.py:17— assessment_start uploads transcript.txt and resume.txt to OpenAI Assistants/vector stores and requests feedback, improved answers, and a score.backend/flaskbase.py:160— Route decorator uses the invalid kwarg method=['GET'] instead of methods=['GET'], which is not valid Flask route syntax and would likely error.backend/interview_assesment.py:10— transcript_saver, the only function that would populate transcript.txt from a live interview, is defined but never called anywhere in the codebase, so the transcript fed into the feedback pipeline is never actually generated by the app.
Post-interview feedback and analysis screenCode-supported
Provides personalized feedback
Claimed on Devpostlow confidencefrontend/src/components/SynopsisScreen.jsx:17— SynopsisScreen calls GET /perform_interview on mount, but the response is only logged to console; the UI renders a static placeholder div containing the text 'ok' instead of displaying any feedback, score, or improved answers.backend/data.json:1— The data store that /perform_interview appends results to is an empty previous_interviews array, consistent with the pipeline never having successfully run.
Database storing user resumes and past experiencesClaimed only
The backend...interacts with a database storing users' past experiences and resumes
Claimed on Devpostmedium confidence
An AI agent derived these features from the project’s Devpost page and readme, then searched the code for each one. Verified features are backed by cited code; claimed-only features had no supporting code, which is not by itself proof a feature is missing.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.