Franklink - Your AI Career Companion via iMessage

Inspiration

We've all been there: scrolling through LinkedIn posts about that perfect internship someone landed, only to realize the deadline passed three weeks ago. The opportunities are out there, but they're buried in email newsletters, university portals, and GroupMe chats. Discovery is broken.

We thought: What if you had a friend who proactively texted you about opportunities before you even thought to look?

That's Frank—an AI career counselor who doesn't wait for you to ask. He finds you. He reminds you. He connects you.


What it does

Frank is proactive by design. In an era where attention is scarce and students are overwhelmed, Frank does the searching for you.

Proactive Discovery

Frank texts you first when he finds opportunities matching your interests. No need to remember to check job boards or search portals. He monitors everything—internships, networking events, hackathons, workshops—and surfaces what matters to you.

Proactive Networking

  1. Finds the best match from other Franklink users based on shared interests
  2. Drafts a personalized cold email (no templates, genuinely human)
  3. Sends it for you after approval

Students don't have time to cold email. Frank does it for them.

Proactive Reminders

  • 24 hours before event deadlines, Frank texts you
  • 2 hours before, he sends the Zoom link
  • After events, he follows up: "how was the McKinsey info session?"

You never miss a deadline. You never forget an RSVP. Frank handles it.

Natural Conversations

Frank talks like a real person—lowercase, no emojis, Gen-Z colloquialisms. He's the friend who knows you're into fintech and texts you about that Goldman info session before it fills up.


How we built it

LangGraph + Stateful Conversations

  • 6 specialized graphs (Onboarding, Recommendations, Networking, Matching, Sharing, General)
  • PostgreSQL checkpoints for state persistence across iMessage sessions
  • Seamless multi-turn conversations (even if you ghost mid-flow)

Tech Stack

  • Backend: FastAPI, LangGraph, Celery + Redis (background jobs)
  • AI: Azure OpenAI (GPT-4 + embeddings), custom prompt engineering
  • Integrations: SendBlue (iMessage), Google OAuth (Gmail + Calendar), Supabase (database), Stripe (payments)
  • Infrastructure: AWS App Runner, Docker, Sentry

Key Innovation: State Persistence iMessage is stateless—every message is independent. We solved this with LangGraph checkpoints that remember:

  • Who you are
  • What stage of the conversation you're in
  • What opportunities you've seen
  • What emails you're drafting

Users can say "yes" to an email draft 3 days later, and Frank remembers exactly what they're referring to.


Challenges we ran into

State Persistence Nightmare: iMessage doesn't remember anything. We built a checkpoint system using PostgreSQL to persist full conversation state across sessions.

Cold Email Quality: Initial drafts were generic and formal. After 12+ iterations on prompts and building a revision loop, emails now feel genuinely human.

OAuth Token Expiry: Gmail API calls would randomly fail. We weren't storing the expiry field! Now we auto-refresh tokens before every API call.


Accomplishments that we're proud of

Production system with real users on AWS App Runner Full networking automation (find → draft → revise → send cold emails) Semantic search that actually works (context-aware ranking) Proactive reminders that prevent missed deadlines AI personality that feels human (students actually want to text Frank) 363+ commits in 2 months (idea → deployed product)


What we learned

Proactivity is everything. Students are overwhelmed. They don't have time to search for opportunities. If Frank waits for them to ask, they won't. Proactive outreach is the killer feature.

State management is hard. In stateless systems like iMessage, you're responsible for all context. LangGraph's checkpoint system was a game-changer.

Gen-Z users expect speed and authenticity. Sub-2-second responses, natural tone, zero friction (no app download, no account creation).


Why Franklink Will Win

Genuine Utility: Solves a real, painful problem (missed opportunities) Zero Friction: No app download. Just text a number. Proactive by Design: Frank finds you. You don't have to search. Network Effects: More students = better matching = more value Technical Moat: LangGraph architecture is hard to replicate


Built with ❤️ by students, for students.

Try Frank: Text +1 (302) 724-2007 (iMessage only)

Built With

Share this project:

Updates