Skip to content

Repository files navigation

HackaLink

Paste a hackathon attendee list to find five people worth meeting, personalized conversation starters, and suggested teams.

Judge's Favorite — StackAuth Hackathon

At a large hackathon, it is hard to know who shares your interests or complements your skills. HackaLink takes a list of names, finds public LinkedIn, Twitter/X, and GitHub profiles through Google search, and uses an LLM to rank people you may want to meet. It also suggests what to say. HackaLink does not scrape LinkedIn. It uses public search results or information that participants provide.

What it does

  • Top people — ranks the five most influential participants by job level and company, with a score and short reason for each
  • Conversation starters — creates three ideas for each top person based on their role, profile headline, and recent posts when available; otherwise, it uses general suggestions
  • Social profiles — finds Twitter/X and GitHub profiles so suggestions can refer to real activity
  • Team builder — suggests teams of about four people with complementary skills and explains each choice
  • Similar backgrounds — scores shared schools, companies, and skills with fixed rules instead of an LLM
  • LinkedIn post generator — drafts a post about your hackathon experience and the people you met
  • Live progress — streams each stage through Server-Sent Events so you can follow the analysis

How it works

Sign in with Stack Auth through /login or /signup. The handler is at src/app/handler/[...stack], and AuthGuard protects the app. On the dashboard, enter one name per line. You can also use Name | linkedin-url. The client sends the list to /api/participants, which returns an SSE stream.

flowchart LR
    A["Dashboard: paste names"] -->|POST| B["/api/participants (SSE)"]
    B --> C["ParticipantService"]
    C -->|"SerpAPI Google search"| D["LinkedIn profile discovery"]
    D -->|"gpt-3.5-turbo"| E["Rank top 5 heavy hitters"]
    E -->|"SerpAPI Twitter/GitHub search"| F["Social enrichment"]
    F -->|"gpt-3.5-turbo"| G["Talking points + teams"]
    G -->|"progress + results"| A
Loading

Main files under src/:

  • lib/services/participant-service.ts — discovers profiles, ranks people, adds social data, and generates suggestions
  • lib/linkedin-scraper-legal.ts — finds profiles with SerpAPI Google searches such as site:linkedin.com/in/ "Name" "Company", then reads result snippets; it also supports the official LinkedIn API through LINKEDIN_ACCESS_TOKEN and manually entered profiles
  • lib/social-media-scraper.ts — finds Twitter/X and GitHub profiles for top candidates with SerpAPI
  • lib/llm-client.ts — uses OpenAI gpt-3.5-turbo in JSON mode for rankings, conversation starters, teams, and posts; every call has a rule-based fallback
  • lib/rate-limiter.ts — limits SerpAPI calls to 10 requests per minute with added timing variation
  • app/api/linkedin-post/route.ts — generates LinkedIn posts

Next.js App Router API routes run all processing on the server. There is no database; results stay in the browser for the current session.

Tech stack

Next.js 14 (App Router) · TypeScript · Tailwind CSS · Stack Auth (@stackframe/stack) · OpenAI API · SerpAPI

Run it locally

npm install
npm run dev   # http://localhost:3000

Create .env.local with:

Variable Purpose
OPENAI_API_KEY Required for rankings, conversation starters, team suggestions, and posts
SERPAPI_API_KEY Recommended for finding LinkedIn, Twitter/X, and GitHub profiles through Google; without it, analysis uses names only
NEXT_PUBLIC_STACK_PROJECT_ID Stack Auth project
NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY Stack Auth client key
STACK_SECRET_SERVER_KEY Stack Auth server key
LINKEDIN_ACCESS_TOKEN Optional access to the official LinkedIn API as another profile source

For production, run npm run build and then npm start. Run npm run lint to check the code.

Built at

Built by Abhiram Segu (Nightwolf7570) at the StackAuth Hackathon, where it won Judge's Favorite. Licensed under MIT.

About

Paste a hackathon attendee list, get who to meet and what to say. Judge's Favorite — StackAuth Hackathon

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages