InSight is an MVP for an AI-guided career exploration companion. It blends interview emotion analysis, immersive "day in the life" storytelling, and job market forecasting to help students discover paths aligned with their energy and confidence.
features are as follows:
- AI-powered mock interview analysis – Combines the spoken transcript with multi-modal engagement metrics to surface confidence, excitement, and stress signals per answer.
- Personalised career recommendations – Matches emotional resonance and topic interest to a curated career library with transparent reasoning.
- AI-generated day-in-the-life storyboard – Generates a narrated sequence that can be fed into video tooling to visualise daily tasks, environments, and tools for each role.
- Job market forecasting – Provides growth outlook, salary trend, and automation risk for every supported career.
app/
├── data/careers.json # Structured knowledge base powering all features
├── main.py # FastAPI application with HTTP endpoints
├── schemas.py # Pydantic models shared across services
└── services/ # Modular business logic
├── analysis.py # Interview signal extraction heuristics
├── data.py # Career library loader
├── forecaster.py # Forecast lookups and salary projections
├── recommendation.py # Career recommendation scoring engine
└── video.py # Day-in-the-life storyboard builder
-
Install dependencies (preferably in a virtual environment):
pip install -r requirements.txt
-
Run the test suite to validate the behaviour:
pytest
-
Launch the API with Uvicorn:
uvicorn app.main:app --reload
Once running, open
http://127.0.0.1:8000/docsto view a lightweight JSON summary of the available routes.
| Endpoint | Method | Description |
|---|---|---|
/careers |
GET | List all supported career profiles. |
/careers/{career_id} |
GET | Retrieve details for a specific career. |
/interview/analyze |
POST | Analyze an interview session and return emotions, engagement, and interest signals. |
/careers/recommendations |
POST | Run analysis and return the top career matches along with reasoning. |
/careers/{career_id}/day-in-life |
GET | Generate a storyboard of scenes that can be rendered into a video. |
/careers/{career_id}/forecast |
GET | Fetch job market forecast information. |
{
"participant": "Avery",
"context": "Mock interview for design roles",
"turns": [
{
"question": "Tell us about a project you loved.",
"answer": "I loved designing a mobile interface, running user interviews, and iterating on the prototype.",
"metrics": {
"eye_contact": 0.82,
"facial_expressiveness": 0.76,
"gesture_energy": 0.68,
"vocal_energy": 0.74,
"verbal_clarity": 0.81,
"speaking_pace": 0.65,
"filler_word_rate": 0.18,
"stress_signals": 0.22
}
}
]
}The response highlights per-answer sentiment, engagement scores, and the most relevant careers plus reasoning snippets.
- Plug in real sensors: Replace the heuristic metrics in
InterviewMetricswith outputs from actual eye-tracking, facial emotion, or voice analysis libraries. - Video generation: Feed the storyboard generated by
DayInLifeVideoBuilderinto tools such as Runway, Synthesia, or your own animation pipeline to create narrated clips. - Expand data coverage: Add new careers by updating
app/data/careers.jsonwith keywords, day-in-the-life scenes, and forecast information.
This project is provided as an educational MVP. Adapt it to your needs!