A clean, accessible Next.js app that generates LinkedIn job search URLs from your filter preferences. No need to paste URLs - just select your criteria and get a ready-to-use link!
A clean, accessible Next.js app that generates LinkedIn job search URLs from your filter preferences. No need to paste URLs - just select your criteria and get a ready-to-use link!
- β¨ Smart Filter Form - Build URLs from scratch with intuitive filters
- π― Comprehensive Filters - Job type, work mode, experience level, location, and more
- β° Time Presets - 1h, 2h, 6h, 12h, 24h, 3d, 7d
- π Copy/Share - Easy clipboard copy and direct LinkedIn opening
- β Validation - Smart field validation with helpful error messages
- π Dark Mode - Full theme toggle support
- βΏ Accessible - WCAG compliant with ARIA labels and keyboard support
- π± Responsive - Mobile-first design
- π§ͺ Well Tested - Unit and E2E tests with comprehensive coverage
Select your job search preferences and the app builds a complete LinkedIn URL:
Your Selections:
- Designation: Software Engineer
- Location: San Francisco, Calirfornia
- Job Type: Full-time
- Work Mode: Remote
- Experience: Entry Level
- Posted: Last 1 hour
Generated URL:
https://www.linkedin.com/jobs/search/?keywords=Software+Engineer&location=Karachi&f_WT=1&f_WRA=1&f_E=2&f_TPR=r3600
| Parameter | Description | Values |
|---|---|---|
keywords |
Job title/designation | Any text |
location |
City/Country | Any location |
f_TPR |
Time posted | r3600 (1h), r86400 (24h), etc. |
f_WT |
Job type | 1=Full-time, 2=Part-time, 3=Contract, 4=Temporary, 5=Internship, 6=Volunteer |
f_WRA |
Work arrangement | 1=Remote, 2=On-site, 3=Hybrid |
f_E |
Experience level | 1=Internship, 2=Entry, 3=Associate, 4=Mid-Senior, 5=Director, 6=Executive |
sortBy |
Sort order | DD=Recent, R=Relevance |
- Node.js 18+
- Git
git clone https://github.com/Systemsetco/WorkIn.git
cd WorkInnpm installnpm run devOpen http://localhost:3000 with your browser to see the result.
npm run build
npm startThis project is licensed under the MIT License - see the LICENSE file for details.
- Next.js
- shadcn/ui
- Radix UI
- Lucide Icons
- npm or yarn
# Clone the repository
git clone https://github.com/Systemsetco/WorkIn.git
cd WorkIn
# Install dependencies
npm install
# Run development server
npm run devOpen http://localhost:3000 in your browser.
npm run build
npm start- Enter Job Details - Type your desired job designation (e.g., "Python Developer")
- Add Location (Optional) - Specify city or country (e.g., "Karachi, Pakistan")
- Select Filters - Choose job type, work mode, experience level
- Pick Time Range - Select when jobs were posted (1h, 24h, 7d, etc.)
- Generate Link - Click to create your LinkedIn job search URL
- Copy or Open - Use the generated link immediately or copy for later
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm test- Run unit tests with Vitestnpm run test:e2e- Run E2E tests with Playwrightnpm run test:e2e:ui- Run E2E tests in UI mode
npm testTests cover:
- URL building logic with all filter combinations
- Parameter validation
- Edge cases (empty fields, special characters, arrays, etc.)
- Filter validation functions
- Time formatting and summaries
npm run test:e2eTests cover:
- Full user workflows
- Accessibility (axe-core)
- Keyboard navigation
- Mobile responsiveness
- Theme toggling
- Clipboard operations
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Components: shadcn/ui + Radix UI
- Icons: Lucide React
- Theme: next-themes
- Testing: Vitest + Playwright + axe-core
- CI/CD: GitHub Actions
- Deployment: Vercel (recommended)
βββ app/
β βββ layout.tsx # Root layout with theme provider
β βββ page.tsx # Main app component (filter form)
β βββ globals.css # Global styles
βββ components/
β βββ ui/ # shadcn/ui components
β βββ theme-provider.tsx # Theme context provider
βββ lib/
β βββ utils.ts # Utility functions (cn)
β βββ linkedin-url-builder.ts # URL building logic
βββ hooks/
β βββ use-toast.ts # Toast notification hook
βββ __tests__/
β βββ linkedin-url-builder.test.ts # Unit tests
βββ e2e/
β βββ app.spec.ts # E2E tests
βββ public/ # Static assets
The core function (buildLinkedInJobURL) handles:
- β Building URLs from scratch with selected filters
- β Setting keywords (required field)
- β Adding optional location
- β
Setting time filter (
f_TPR) - β
Setting job type (
f_WT) - β
Setting work arrangement (
f_WRA) - β
Setting experience level (
f_E) - β
Setting sort order (
sortBy) - β URL encoding special characters
- β Supporting multiple values (arrays) for filters
- β Validation with helpful error messages
- Push to GitHub
- Import repository in Vercel
- Deploy (zero configuration needed)
npm run build
# Deploy the .next folder to your hosting provider- No Data Storage: All operations happen client-side
- No Scraping: Only generates URLs, doesn't access LinkedIn data
- No API Calls: Pure client-side JavaScript
- Respects ToS: Users are responsible for LinkedIn's Terms of Service
- No Login Required: Works without any authentication
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT License - feel free to use this project for any purpose.
Version: 2.0.0 - WorkIn - Work in smarter, not later
Note: This tool is not affiliated with or endorsed by LinkedIn. It simply generates search URLs based on your preferences. Use responsibly and respect LinkedIn's Terms of Service.