This project analyzes structured JSON data from oncology fellowship interviews. The dataset includes fields such as:
questionansweranswer_qualityinterviewer_nameinterview_locationquestion_categoryanswer_word_count
The Python script produces summary tables and visualizations to help identify strengths, weaknesses, and preparation strategies for future interviews.
-
Python 3.9 or later
-
Packages:
pip install pandas numpy matplotlib scipy statsmodels streamlit
Or install from
requirements.txt:pip install -r requirements.txt
- Save the analysis script as
fellowship_interviews.py - Place your interview dataset JSON file (e.g.,
interviews.json) in the same directory
Navigate to the folder where your files are stored:
cd "C:\Users\Jake\InterviewAnalysis"Run the script with your JSON file:
python fellowship_interviews.py ".\interviews.json" --outdir ".\analysis"- Replace
interviews.jsonwith your actual dataset filename - The
--outdirflag sets the output folder (default:analysis/)
To quickly open the results folder after running:
Start-Process ".\analysis"For an interactive experience with visualizations and exploration:
-
Install Streamlit (if not already installed):
pip install streamlit
-
Run the Streamlit app:
streamlit run streamlit_app.py
-
Use the app:
- Upload your JSON file through the sidebar
- Explore different tabs: Overview, Plots, Statistics, Details
- View interactive plots and statistical summaries
- No files are saved - all analysis happens in your browser
-
CSV Tables (in
analysis/):overall_summary.csv— overall statsfreq_by_question_category.csv— frequency of categoriesquality_by_question_category.csv— mean + CI for each categorywordcount_by_question_category.csv— word count descriptivesquality_by_interviewer.csv,quality_by_location.csvcorrelation_wordcount_quality_overall.csv,_by_category.csvanova_quality_by_category.csv,kruskal_quality_by_category.csvwordcount_sweetspot_by_category.csv— optimal word count ranges
-
Figures (PNG):
- Heatmap: mean quality by category × location
- Scatterplot: word count vs quality with LOWESS fit
- Violin/Boxplot: quality distributions by category
- Histogram: distribution of word counts
-
Console Summary (printed in PowerShell):
- Overall stats
- Top categories by mean quality
- Correlation results
- ANOVA/Kruskal results
- Word count “sweet spot” ranges per category
cd "C:\Users\Jake\Documents\InterviewAnalysis"
python fellowship_interviews.py ".\interviews.json" --outdir ".\analysis"
Start-Process ".\analysis"- Use the sweet spot word count ranges to pace your answers.
- Focus practice on low-scoring categories identified in the CSVs.
- Review institution-specific profiles to anticipate themes.
- Track improvements by re-running this script after more interviews.