A flexible, open-source React/Next.js application for conducting and tracking candidate interviews during hiring events. Features a modern dark interface, persistent storage, and support for any interview format. Built with efficiency in mind for high-pressure hiring events where every minute counts. See the history at the bottom for a fun twist.
- Universal Compatibility: Works with any CSV format and question structure
- Persistent Storage: Auto-saves all evaluations to browser localStorage
- Smart Search: Search candidates across all fields
- Structured Evaluation: Support for categorized questions with rating systems
- Comprehensive Notes: Track responses, key points, strengths, and concerns
- Data Export: Export all evaluations as JSON for further analysis
- Professional UI: Dark mode interface optimized for long interview sessions
- Configurable: Customize display fields and app behavior
-
Install dependencies:
npm install
-
Add your data files to the
publicfolder:candidates.csv- Your candidate list (any CSV format)questions.md- Your interview questionsanswers.md(optional) - Expected answer guidelinesconfig.json(optional) - Display configuration
-
Start the application:
npm run dev
-
Open in browser: Navigate to http://localhost:3000
The application auto-detects CSV columns. Any standard CSV format works:
Name,Email,Role,Experience,Location
John Doe,john@email.com,Engineer,5 years,New YorkSupports multiple formats:
# Interview Questions
## Category Name
1. First question text?
2. Second question text?
## Another Category
3. Third question text?Or simple numbered list:
1. Question one
2. Question two
3. Question three
Structure your answer evaluations:
## Question 1: [Question Title]
### Best Answer
- Key point 1
- Key point 2
### Good Answer
- Acceptable point 1
- Acceptable point 2
### Acceptable Answer
- Minimum requirement 1
- Minimum requirement 2Customize the display in config.json:
{
"appTitle": "Your Event Name",
"primaryDisplayFields": ["Name", "Role", "Company"],
"secondaryDisplayFields": ["Experience", "Location"]
}- Search & Select: Type any keyword to find candidates
- Evaluate Responses:
- Rate each answer (Best/Good/Acceptable/Poor/Not Asked)
- Add specific notes and key points
- View expected answer guidelines
- Overall Assessment:
- Rate candidate 1-10
- Choose recommendation level
- List strengths and concerns
- Add general observations
- Auto-Save: All changes save automatically after 1 second
- Session Recovery: Close and reopen anytime - all progress is preserved
- Clear Current: Reset evaluation for current candidate
- Export JSON: Download all evaluations with timestamp
- Bulk Operations: Export includes all evaluated candidates
The app intelligently identifies common field patterns:
- Name fields (First Name, Last Name, Full Name)
- Title/Position fields
- Company/Organization fields
- Location/City fields
- Experience/Seniority fields
Override auto-detection with config.json:
- Specify which fields appear prominently
- Combine fields (e.g., "FirstName+LastName")
- Set custom app title
- Framework: Next.js 15.5 with TypeScript
- Styling: Tailwind CSS with dark theme
- Storage: Browser localStorage
- Export: Timestamped JSON files
- Browser Support: All modern browsers
public/
├── candidates.csv # Your candidate data
├── questions.md # Interview questions
├── answers.md # Answer guidelines (optional)
├── config.json # Display settings (optional)
└── sample-*.csv/md # Example files
- CSV Format: Include headers in first row
- Questions: Number questions for easy reference
- Categories: Use markdown headers (##) to group questions
- Answer Guide: Match question numbers in answer guide
- Export Regularly: Create backups during long events
npm run build
npm startContributions are welcome! This tool is designed to be:
- Framework agnostic for data formats
- Easily extendable
- Accessible for all hiring scenarios
MIT - Free to use and modify for your hiring needs
- Report issues on GitHub
- Works offline after initial load
- No external dependencies for core functionality
- Respects user privacy - all data stays in browser
On August 28th, 2025, I attended a speed hiring event in Seattle while looking for an ML engineer. I had around 100 candidates to interview for 5 minutes each, so I needed a way to quickly capture input and see who I wanted to have a more meaningful conversation with. I hate using spreadsheets for this, so I used Claude Code Opus 4 with very concrete specifications of the looks, features, inputs and outputs I needed. This code was generated in exactly 8 minutes, with only one error. I used it successfully at the event with my own set of questions and I have a good list for in-depth discussions. I figured I'd open source this because I think it can be useful to others, and it can be used as a baseline to expand even into an ATS of sorts if someone is that motivated.