Automated monitoring tool for tracking recent activities and achievements of faculty members at Northeastern University's Institute for Experiential Robotics (IER).
FacultyPulse searches for and verifies recent faculty activities including:
- Publications
- Patents
- Awards & Grants
- News mentions
- Conference presentations
- Seminars
The tool uses Tavily for web search and OpenAI GPT for intelligent filtering and verification. It consists of:
- Backend API (Flask) - Python-based search and filtering engine
- Frontend UI (React + TypeScript) - Interactive dashboard for viewing results
FacultyPulse/
├── api.py # Flask REST API backend
├── search.py # Standalone CLI scanner
├── faculty.json # Faculty member names
├── .env # API keys (not in git)
├── frontend/ # React TypeScript UI
│ ├── src/
│ └── package.json
└── requirements.txt # Python dependencies
-
Install Python dependencies
pip install -r requirements.txt
-
Configure API keys
- Copy
.env.exampleto.env - Add your API keys:
TAVILY_API_KEY=your-tavily-api-key OPENAI_API_KEY=your-openai-api-key
- Copy
-
Start the API server
python3 api.py
The API will run on
http://localhost:5001
-
Navigate to frontend directory
cd frontend -
Install dependencies
npm install
-
Start development server
npm run dev
The UI will open at
http://localhost:5173
- Start the backend API (
python3 api.py) - Start the frontend (
cd frontend && npm run dev) - Open the UI in your browser
- Click "Run Scan" to search all 40 faculty members
- View, filter, and export results
Run the standalone scanner:
python3 search.pyResults are saved to results.json
GET /api/health- Check API statusGET /api/faculty- Get list of faculty namesPOST /api/scan- Run full scan of all facultyGET /api/results- Get most recent scan resultsPOST /api/scan/<name>- Scan single faculty member
- faculty.json: List of faculty names to monitor
- Time window: Currently set to 30 days (configurable in
api.pyandsearch.py) - Search depth: Advanced mode with max 5 results per query
Results are saved to results.json with:
- Metadata (scan date, time window, counts)
- Per-faculty results with verified activities
- Categorized entries (publication, award, grant, etc.)
- Python 3.7+
- openai
- tavily-python
- python-dotenv
- flask
- flask-cors
- Node.js 16+
- React 18
- TypeScript
- Vite
Backend: The Flask API (api.py) provides REST endpoints that the frontend calls. It handles all search and filtering logic.
Frontend: React TypeScript app with Material UI components. Uses Context API for state management.
Standalone: search.py can be run independently for CLI-based scanning.