An AI-powered platform connecting world-class researchers with career-defining opportunities through intelligent matching powered by Perplexity AI - Search API and Grounded LLM.
Perplexity ReSearcher is a building the reasoning graph to revolutionise technical recruitment by helping people and organizations ask better questions to reason their way to better answers on research expertise that is being seeked. The platform uses Perplexity's advanced AI capabilities to analyze research papers, extract skills, and find the perfect alignment between researchers and research opportunities including jobs.
- π AI-Powered Matching - Intelligent researcher-opportunity matching using Perplexity API
- π Research Profile Management - Automatic sync with Google Scholar publications
- π― Smart Recommendations - Personalized NeurIPS 2024 paper suggestions
- β‘ Fast Search - Parallel processing for 5-10x faster matching (~5 seconds)
- π¨ Modern UI - Clean, professional interface with responsive design
- π Detailed Analytics - Match scores, alignment analysis, and skill extraction
- Frontend: Next.js 14, React 18, Tailwind CSS
- Backend: Node.js / Vercel Serverless
- Intelligence Layer: Perplexity API (grounded search + citations)
- Data Sources: NeurIPS 2024 / arXiv / Google Scholar metadata
- Payments (demo): Stripe sandbox for sponsorship flows
βIf LinkedIn is the career graph of the industrial era,
ReSearcher is the reasoning graph of the intelligence era.β
Every paper, experiment, and idea becomes a living node in an evolving network of curiosity.
ReSearcher helps people and organisations ask better questions β and reason their way to better answers.
# Install dependencies
npm install
3. **Set up environment variables**
```bash
cp .env.example .env.localEdit .env.local and add your Perplexity API key:
PERPLEXITY_API_KEY=your_api_key_here-
Run the development server
npm run dev # or yarn dev # or pnpm dev
-
Open your browser
Navigate to http://localhost:3000
npm run build
npm startThe application integrates Perplexity AI in several key areas:
// Searches Google Scholar for researcher publications
async fetchResearcherProfile(name: string, affiliation: string, limit: number = 10)- Uses Perplexity to search Google Scholar in real-time
- Extracts top N most-cited papers (configurable, default: 10)
- Validates paper authorship and removes duplicates
- Returns structured profile with papers and summary
// Matches researcher portfolio against job requirements
async matchPaperToJob(paper: Paper, jobRequirements: string)- Analyzes researcher's work against job description
- Returns match score (0-100), alignment points, and gaps
- Uses critical scoring (strict rubric, realistic scores)
- Provides detailed explanations with citations
// Extracts technical skills from researcher profile
async askAboutResearcher(question: string, researcher: ResearcherContext)- Analyzes papers and profile for key skills
- Extracts research areas and methodologies
- Returns concise bullet-point summaries
- Used for matching and profile enhancement
// Recommends relevant NeurIPS 2024 papers
GET /api/researcher/recommendations?areas=<research_areas>- Finds top 5 NeurIPS 2024 papers aligned with researcher interests
- Ranks by relevance score
- Provides explanations for each recommendation
The Perplexity API client is configured in lib/perplexity.ts:
{
model: "sonar-pro", // Most capable model
temperature: 0.2, // Low randomness for consistency
return_citations: true, // Enable source attribution
search_domain_filter: [ // Focus on academic sources
"arxiv.org",
"scholar.google.com",
"github.com"
]
}- Parallel Processing - All researcher analyses run concurrently
- Caching - 30-minute TTL cache for repeated queries
- Batching - Multiple API calls combined per researcher
- Smart Prompts - Concise prompts for faster responses
- Graceful degradation on API failures
- Exponential backoff for retries
- Null filtering for failed matches
- User-friendly error messages
- Navigate to the Researcher Portal
- Enter your name and affiliation
- Select your profile from multiple candidates (if applicable)
- View your publications and get NeurIPS 2024 paper recommendations
- Navigate to the Recruiter Portal
- Paste a job description (or use the demo Perplexity AI job)
- Click "Find Top Matches"
- Review ranked researchers with:
- Match scores and confidence levels
- Alignment strengths and gaps
- Extracted skills and expertise
- Publication details
- Access
/adminto view and seed the researcher database - Pre-populated with example researchers (Yann LeCun, Geoffrey Hinton, Fei-Fei Li)
- Configurable limits: Request 1-20 papers per researcher
- Edge case handling: Gracefully handles researchers with 0, <5, or 20+ papers
- No hardcoding: All limits are dynamic and user-configurable
- Candidate search: Finds multiple matches for ambiguous names
- Confidence levels: High/Medium/Low rankings
- Manual selection: User chooses correct profile from list
- Realistic scores: Most candidates score 60-80% (not inflated)
- Strict rubric: 90+ reserved for exceptional matches
- Detailed feedback: Specific strengths and gaps highlighted
- White backgrounds with subtle shadows
- Professional blue/indigo color scheme
- Generous whitespace and padding
- Responsive design for all devices
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint| Variable | Description | Required |
|---|---|---|
PERPLEXITY_API_KEY |
Your Perplexity API key | Yes |
NEXT_PUBLIC_APP_URL |
Application URL (for production) | No |
- API Routes: Add to
app/api/ - Pages: Add to
app/ - Components: Add to
components/(if needed) - Utilities: Add to
lib/
| Metric | Value |
|---|---|
| Researcher Matching | ~5 seconds (for 5 researchers) |
| Profile Loading | ~3-6 seconds |
| Cached Queries | <100ms (instant) |
| Cache TTL | 30 minutes |
| Speedup vs Sequential | 5-10x faster |
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Perplexity AI for providing the powerful AI API
- Next.js team for the amazing framework
- Vercel for seamless deployment
- Tailwind CSS for beautiful styling utilities
For questions or support, please open an issue on GitHub.
Built with β€οΈ using Perplexity AI