First 2 Apply (https://first2apply.com/) is an open-source job board aggregator that centralizes listings from platforms like LinkedIn, Indeed, Dice, and more, helping job seekers find opportunities faster. Watch demo video.
- Node.js (v20+ recommended)
- pnpm (v10+ recommended)
- Supabase CLI
- Docker (required for local Supabase)
This project is organized as a monorepo using Nx.
- apps/
backend: Supabase configuration, migrations, and edge functions.desktopProbe: The Electron desktop application.webapp: The main web application (Next.js).landingPage: Marketing landing page.blog: Project blog.invoiceDownloader: Utility for downloading invoices.nodeBackend: Additional Node.js backend services.
- libraries/: Shared code and utilities.
pnpm installIf you want to run the apps in Docker:
pnpm upThis will start all services defined in docker-compose.yml in detached mode.
Create .env files in the application directories by copying the examples:
- Backend:
apps/backend/.env(copy from.env.exampleif available, or set up Supabase env vars) - Desktop Probe:
apps/desktopProbe/.env(copy fromapps/desktopProbe/.env.example)
Navigate to the backend app directory:
cd apps/backendInitialize and start Supabase locally (only needs to be run once):
pnpm supabase startYou should now be able to visit the Supabase dashboard at http://localhost:54323/.
Import Data:
Import the sites_rows.csv file into the sites table in the Supabase dashboard.
Run Edge Functions:
pnpm supabase functions serveYou can use nx to run applications from the root directory.
Run All Apps (Dev Mode):
pnpm devNote:
pnpm devruns thedevscript for all apps. For the desktop app, use the specific command below.
Desktop Probe:
pnpm nx start first2apply-desktopThis project uses Nx for task management.
- Run Dev Server:
pnpm nx dev <project-name>orpnpm nx start <project-name> - Build:
pnpm nx build <project-name> - Test:
pnpm nx test <project-name> - Lint:
pnpm nx lint <project-name>
To run tasks for all projects:
pnpm nx run-many -t buildUpdate the version in apps/desktopProbe/package.json and the .appx manifest.
MacOS: Run the package command:
pnpm nx run first2apply-desktop:package
# or from the folder
cd apps/desktopProbe && npm run packageWindows: Build the AppX bundle:
pnpm nx run first2apply-desktop:make
# or from the folder
cd apps/desktopProbe && npm run makePublishing:
The root package.json includes a publish script that runs across projects:
pnpm run publishManual upload of .deb file to S3 and update of RELEASES.json is required.