How timewithpotato/conversational-agentic-ai works
Conversational-Agentic-AI is a web platform for resume-assisted mock interviews and interviewer-led sessions. Users authenticate, upload a resume, conduct a spoken AI interview, and review feedback; interviewers can create sessions, invite participants, and inspect interviewee results. The client routes and providers organize these workflows, an Express API handles requests and persistence, and a Flask service exposes interview, resume-formatting, and evaluation capabilities. The sampled excerpts confirm the resume/interview calls and service wiring; several other feature connections are documented only by route registrations or the source index.
Main entry points: index.js HTTP API · main.jsx App routing · app.py Model API · VoiceToTextAndSpeak.jsx Voice interview
Components 25
Client workflows
- App routing
client/src/main.jsx - Authentication
client/src/ContextProvider/AuthProvider.jsx - Resume upload
client/src/Pages/ResumeUpload.jsx - Voice interview
client/src/Pages/VoiceToTextAndSpeak.jsx - Speech utilities
client/src/CustomHook/useSpeechRecognition.js - Interview room
client/src/Layouts/ParentInterViewContainer.jsx - Video session
client/src/components/JitsiComponent.jsx - Create interview
client/src/Pages/InterviewCallCreator.jsx - Evaluation views
client/src/Pages/MockInterviewResult.jsx - Interviewee roster
client/src/Pages/IntervieweesList.jsx
API and coordination
- HTTP API
server/index.js - PDF processing
server/controllers/pdfController.js - Interview proxy
server/controllers/interviewController.js - Evaluation proxy
server/controllers/evaluateController.js - Email invitations
server/controllers/sendInterviewEmailController.js
AI services
- Model API
model/app.py - Interview generation
model/llm_models/deepseek_v3_turbo/interviewer.py - Resume formatting
model/llm_models/meta_llama_3_70B_Instruct/resumeFormatter.py - Interview evaluation
model/llm_models/deepseek_R1_0528/evaluator.py
Interview data
- Interview records
server/db/createInterview.js - MongoDB connection
server/db/mongoClient.js
Other components
- Participant
- Interviewer
- Firebase Auth
- Email provider
Connections 31
- Participant → App routing: uses
client/src/main.jsx - Interviewer → App routing: uses
client/src/main.jsx - App routing → Authentication: provides auth
client/src/main.jsx - Authentication → Firebase Auth: authenticates with
client/src/ContextProvider/AuthProvider.jsx - App routing → Resume upload: routes to
client/src/main.jsx - App routing → Voice interview: routes to
client/src/main.jsx - Voice interview → Speech utilities: uses
client/src/Pages/VoiceToTextAndSpeak.jsx - App routing → Interview room: routes to
client/src/main.jsx - Interview room → Video session: renders
client/src/Layouts/ParentInterViewContainer.jsx - App routing → Create interview: routes to
client/src/main.jsx - App routing → Evaluation views: routes to
client/src/main.jsx - App routing → Interviewee roster: routes to
client/src/main.jsx - Resume upload → HTTP API: uploads PDF
- Voice interview → HTTP API: requests interview
client/src/Pages/VoiceToTextAndSpeak.jsx - Voice interview → HTTP API: uploads resume PDF
client/src/Pages/VoiceToTextAndSpeak.jsx - HTTP API → PDF processing: routes PDF upload
server/index.js - HTTP API → Interview proxy: routes interview
server/index.js - HTTP API → Evaluation proxy: routes evaluation
server/index.js - HTTP API → Email invitations: routes invitations
server/index.js - PDF processing → Model API: formats resume via
server/controllers/pdfController.js - Interview proxy → Model API: forwards interview
server/controllers/interviewController.js - Evaluation proxy → Model API: requests evaluation
- Model API → Interview generation: dispatches to
model/app.py - Model API → Resume formatting: dispatches to
model/app.py - Model API → Interview evaluation: dispatches to
model/app.py - Email invitations → Email provider: sends invitation
server/controllers/sendInterviewEmailController.js - HTTP API → Interview records: routes record operations
- Interview records → MongoDB connection: uses connection
- Create interview → HTTP API: creates session
- Interviewee roster → HTTP API: loads interviewees
- Evaluation views → HTTP API: loads evaluation