TalentRush — Screen smarter. Interview faster.

About the project

Hiring teams lose hours on manual screening, back-and-forth scheduling, and inconsistent interviews. TalentRush turns a job description into a structured, fair interview—then auto-invites candidates who meet a clear threshold (85%) and proposes calendar slots automatically. The goal: go from résumé to next round in minutes, not days.## Inspiration We’ve all watched good candidates stall in inbox limbo. Recruiters juggle hundreds of emails; engineers context-switch for interviews; candidates wait. We wanted a tool that:

standardizes the first conversation,

measures skills transparently,

and moves fast when someone is clearly a fit.

What it does

Recruiter Console (web): paste JD → set auto-invite toggle → generate interview → later view a recruiter-friendly report (HTML/PDF) with a final score and one-click “Send next-round invite.”

Candidate Chat: a guided, chat-style interview with progress indicators and adaptive follow-ups if answers are weak.

Auto-Invite Flow: if the final score ≥ 85%, generate 2–3 time slots, sign confirmation links, email candidates (with .ics), and mark the selected slot as confirmed when they click.

Results & Confirm pages: recruiters get a summary; candidates get a clean confirmation screen.

How we built it

Architecture (3 modules, clean seams):

Front-End (Streamlit / static HTML+JS): Pages: Recruiter Console, Candidate Chat, Results, Confirm State: st.session_state for chat and progress Output: downloadable PDF report for recruiters

LLM/NLP Engine (Python):

Keyword extraction from JD (spaCy/YAKE + custom dictionary)

Canonical skill mapping (via skills.yaml)

Question script builder (templates in templates.yaml)

Scoring: rule-based key-term matching + optional semantic similarity (MiniLM sentence embeddings)

Adaptive follow-ups when a score < 3/5

Backend & Infra (SQLite + SQLAlchemy + Email):

Tables: jobs, candidates, interviews, questions, turns, scores, slots, emails

HMAC-signed confirmation links, .ics generation, SendGrid/SMTP sending

Slot proposer (timezone-aware, 2–3 suggestions), status transitions: proposed → confirmed/released

Challenges we ran into

Email deliverability: balancing provider setup (SendGrid) vs. quick SMTP fallback.

Latency vs. quality: keeping interviews snappy while doing embedding lookups.

State management: ensuring chat progress is robust to refreshes.

Schema discipline: resisting last-minute changes that ripple across UI/LLM/backend.

What we learned

Designing for handoffs beats “one big script.” Shared function signatures and table names made integration smooth under time pressure.

Explainability matters. Even simple, readable rules + short semantic checks build trust.

Timezones & calendars are tricky. Using UTC storage, IANA timezones for proposal, and per-slot .ics files kept things consistent.

What's next for TalentRush

Multi-interviewer panels and calendar sync (Google/Microsoft)

Bias/fairness checks and topic coverage dashboards

Recruiter feedback loops that auto-tune question templates

Export to ATS and Slack notifications

Built With

Share this project:

Updates