Skip to content

KIET7UKE/ApplyX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


GitHub stars License: MIT PRs Welcome Made with Llama Chrome Extension


ApplyX - Apply to jobs with 1-click personalized outreach | Product Hunt

Apply to jobs with personalized outreach in 1 click β€” powered by Llama 3 & Groq.

The open-source job application tool that actually respects your time.


πŸ“„ See job post β†’ ⚑ 1 click β†’ πŸ’Œ Personalized email sent. Done.


😀 The Problem (You Know This Pain)

You:  *copies job description*
You:  *opens ChatGPT*
You:  "Write me a cold email for this job"
GPT:  "Dear Hiring Manager, I am writing to express my keen interest..."
You:  *dies inside*
You:  *does this 30 more times today*

There has to be a better way.


⚑ Enter ApplyX

ApplyX Demo

1-click from LinkedIn post β†’ personalized email in your drafts. Real demo gif coming β€” PRs welcome!

ApplyX is a Chrome extension + web dashboard that lives on LinkedIn. Spot a job post, click once, and a laser-targeted cold email β€” written from your resume, in your voice β€” is ready to send via Gmail. No copy-paste. No generic templates. No cringe.


πŸ”₯ Features

Feature What it does
⚑ 1-Click Generation Reads the LinkedIn post, grabs your resume, writes a tailored email via Groq (Llama 3.1) in ~1 second
πŸ“Ž Auto-attach Resume Your PDF resume is automatically attached to every outreach email
πŸ“¬ One-Click Send Fires the email via Gmail API β€” without leaving the LinkedIn page
🎨 Dynamic Personalization Your name, portfolio, and vibe are baked into every message
πŸ”’ Self-Hosted & Private Your data lives in your Supabase. Zero middlemen.
πŸ†“ Actually Free Groq's free tier handles thousands of generations per day

πŸš€ Quick Start

Prerequisites: Node.js 18+, a Google Cloud project, a Supabase account, a Groq API key.

1. Clone & Install

git clone https://github.com/kiet7uke/ApplyX.git
cd ApplyX

2. Fire up the Extension

cd apps/extension
npm install
npm run dev

Then in Chrome β†’ chrome://extensions β†’ Load Unpacked β†’ select apps/extension/build/chrome-mv3-dev

3. Fire up the Dashboard

cd apps/web
cp .env.example .env.local  # fill in your keys (see below)
npm install
npm run dev

Open localhost:3000 πŸŽ‰

4. Connect Everything

  1. Log into the dashboard β†’ Manage Profile
  2. Upload your resume PDF + add your portfolio URL
  3. Copy your Extension Key from Dashboard Settings
  4. Paste it into the LinkedIn sidebar settings panel
  5. Go to LinkedIn. Find a job. Click the button. βœ…

πŸ› οΈ Full Infrastructure Setup

πŸ—„οΈ Supabase (Database) β€” click to expand
  1. Create a free project at supabase.com
  2. In the SQL Editor, run this schema:
-- Users profile table
create table profiles (
  id uuid references auth.users on delete cascade primary key,
  full_name text,
  portfolio_url text,
  resume_url text,
  extension_key uuid default gen_random_uuid(),
  created_at timestamp with time zone default timezone('utc'::text, now())
);

-- Enable Row Level Security
alter table profiles enable row level security;

create policy "Users can view their own profile."
  on profiles for select using ( auth.uid() = id );

create policy "Users can insert their own profile."
  on profiles for insert with check ( auth.uid() = id );

create policy "Users can update own profile."
  on profiles for update using ( auth.uid() = id );
  1. Note your Project URL and anon public key from Project Settings β†’ API
πŸ”‘ Google OAuth & Gmail API β€” click to expand
  1. Go to Google Cloud Console β†’ New Project
  2. Enable the Gmail API: APIs & Services β†’ Library β†’ search "Gmail API" β†’ Enable
  3. Create credentials: APIs & Services β†’ Credentials β†’ Create OAuth 2.0 Client ID
    • Application type: Web application
    • Authorized redirect URI: http://localhost:3000/api/auth/callback/google
  4. Required OAuth Scopes:
    • openid
    • email
    • profile
    • https://www.googleapis.com/auth/gmail.send
  5. Save your Client ID and Client Secret
πŸ€– Groq (AI Engine) β€” click to expand
  1. Sign up free at console.groq.com
  2. Create an API key
  3. That's it. Llama 3.1 is absurdly fast (~300 tokens/sec) and the free tier is incredibly generous.

No OpenAI bill. No rate limit anxiety. Just vibes. ✨

πŸ” Environment Variables

Create apps/web/.env.local:

# πŸ€– AI
GROQ_API_KEY=gsk_...

# πŸ—„οΈ Database  
SUPABASE_URL=https://xxxx.supabase.co
SUPABASE_ANON_KEY=eyJ...

# πŸ”‘ Google OAuth + Gmail
GOOGLE_CLIENT_ID=xxxx.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=GOCSPX-...

# πŸ”’ NextAuth
NEXTAUTH_SECRET=your-super-secret-random-string  # run: openssl rand -base64 32
NEXTAUTH_URL=http://localhost:3000

πŸ—‚οΈ Project Structure

ApplyX/
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ extension/          # 🧩 Chrome Extension (Plasmo + React)
β”‚   β”‚   └── src/
β”‚   β”‚       β”œβ”€β”€ sidebar/    # LinkedIn sidebar UI
β”‚   β”‚       └── background/ # Service worker
β”‚   β”‚
β”‚   └── web/                # 🌐 Dashboard & Backend (Next.js)
β”‚       β”œβ”€β”€ app/            # Next.js App Router
β”‚       β”œβ”€β”€ components/     # React components
β”‚       └── lib/            # Supabase, NextAuth, Gmail helpers
β”‚
└── packages/               # πŸ“¦ Shared logic & types

🧠 How It Works

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    LinkedIn Feed                         β”‚
β”‚                                                         β”‚
β”‚  [Job Post by Recruiter]          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  "We're hiring a Senior           β”‚   ApplyX Sidebar β”‚  β”‚
β”‚   Backend Engineer at Stripe!"    β”‚                  β”‚  β”‚
β”‚                                   β”‚  [Generate ⚑]   β”‚  β”‚
β”‚                                   β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                             β”‚
                                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
                                    β”‚   Your Resume   β”‚
                                    β”‚  + Post Context β”‚
                                    β”‚  + Your Name    β”‚
                                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                             β”‚
                                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
                                    β”‚  Groq Llama 3.1 β”‚
                                    β”‚   (~800ms) ⚑   β”‚
                                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                             β”‚
                                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
                                    β”‚  Personalized   β”‚
                                    β”‚  Email β†’ Gmail  β”‚
                                    β”‚     Sent βœ…     β”‚
                                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

🀝 Contributing

ApplyX is fully open-source and contributions are very welcome!

# Fork the repo, then:
git checkout -b feature/your-amazing-idea
git commit -m "feat: add your amazing idea"
git push origin feature/your-amazing-idea
# Open a PR πŸš€

Ideas for contributions:

  • 🎯 LinkedIn Easy Apply form auto-fill
  • πŸ“Š Application tracking dashboard
  • 🌐 Support for other job platforms (Wellfound, Lever, Greenhouse)
  • πŸ” Follow-up email scheduling
  • πŸ§ͺ A/B testing different email tones
  • 🌍 Multi-language outreach support

πŸ’¬ Frequently Asked Questions

Q: Is this actually free?
A: Yes. Groq's free tier handles ~14,400 requests/day. You won't hit that limit job hunting.

Q: Is my resume data safe?
A: Your resume lives in your own Supabase instance. ApplyX never touches it.

Q: Will recruiters know I used AI?
A: The output is grounded in your real resume and their actual job post β€” it reads as genuinely tailored because it is.

Q: Does it work with LinkedIn Premium?
A: Works with any LinkedIn account. Premium not required.


⭐ Star History

Star History Chart


If ApplyX helped you land an interview, drop a ⭐ β€” it keeps the project alive.


Built with πŸ’œ by kiet7uke because job hunting is exhausting.

Let's make it smarter, together.


About

πŸš€ Apply to jobs with 1-click personalized outreach β€” Chrome extension that reads LinkedIn posts, matches your resume, and sends tailored emails via Gmail. Powered by Llama 3.1 & Groq.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors