First off β thank you for being here. Whether you're fixing a typo or building a whole new feature, every contribution matters.
This guide will get you from zero to your first PR in minutes.
- Code of Conduct
- Ways to Contribute
- Getting Started
- Development Setup
- Project Structure
- Making a Pull Request
- Commit Message Guide
- Good First Issues
Be kind. Be constructive. We're all here to build something useful.
- No harassment, gatekeeping, or condescension
- Assume good intent β English may not be everyone's first language
- Critique code, never people
Violations can be reported to the maintainer directly via GitHub.
You don't have to write code to contribute. Here's everything that helps:
| Type | Examples |
|---|---|
| π Bug reports | Something broken? Open an issue |
| β¨ Feature requests | Have an idea? We want to hear it |
| π§ Code | Fix bugs, build features, improve performance |
| π Docs | Improve the README, fix typos, add examples |
| π§ͺ Testing | Write tests, catch edge cases |
| π¨ Design | Improve the dashboard UI or extension sidebar |
| π¬ Community | Answer issues, review PRs, share the project |
# Fork via GitHub UI, then:
git clone https://github.com/YOUR_USERNAME/ApplyX.git
cd ApplyX# Always branch off main
git checkout -b feat/your-feature-name
# or
git checkout -b fix/the-bug-you-foundFollow the full setup in README.md. You'll need:
- Node.js 18+
- A Supabase project
- A Groq API key
- Google OAuth credentials
# Install all dependencies from root
npm install
# Start the web dashboard
cd apps/web && npm run dev
# Start the extension (separate terminal)
cd apps/extension && npm run devLoad the extension in Chrome:
- Go to
chrome://extensions - Enable Developer Mode
- Click Load Unpacked
- Select
apps/extension/build/chrome-mv3-dev
ApplyX/
βββ apps/
β βββ extension/ # Chrome Extension (Plasmo + React)
β βββ web/ # Next.js Dashboard + API routes
βββ packages/ # Shared types & utilities
Key files to know:
apps/web/app/api/β backend API routes (generation, email sending)apps/extension/src/sidebar/β the LinkedIn sidebar UIapps/web/components/β reusable dashboard components
# 1. Make your changes
# 2. Test them locally
# 3. Commit (see commit guide below)
git add .
git commit -m "feat: add follow-up email scheduling"
# 4. Push
git push origin feat/your-feature-name
# 5. Open a PR on GitHubBefore submitting, make sure:
- Your branch is up to date with
main - The feature/fix works locally end-to-end
- You haven't committed
.env.localor any secrets - PR title is clear and descriptive
- You've added a short description of what and why
PR title format:
feat: add LinkedIn Easy Apply support
fix: resume not attaching on first send
docs: update Supabase setup instructions
We follow Conventional Commits:
| Prefix | When to use |
|---|---|
feat: |
New feature |
fix: |
Bug fix |
docs: |
Documentation only |
style: |
Formatting, no logic change |
refactor: |
Code restructure, no feature/fix |
chore: |
Build process, dependencies |
test: |
Adding or fixing tests |
# β
Good
git commit -m "feat: add Wellfound job platform support"
git commit -m "fix: email not sending when resume is missing"
git commit -m "docs: add FAQ section to README"
# β Avoid
git commit -m "update stuff"
git commit -m "fix"
git commit -m "WIP"- Stuck on setup? Open a GitHub Discussion
- Found a bug? Open an Issue
- Have a quick question? Drop a comment on any relevant issue
Built with π by the community. Every star, issue, and PR keeps this project alive.