Skip to content

Work in smarter, not later - Generate custom LinkedIn job search URLs with advanced filters. Fast, secure, and completely client-side. No data collection, ever.

License

Notifications You must be signed in to change notification settings

Systemsetco/WorkIn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

17 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

WorkIn - Work in smarter, not later

GitHub License

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!


Brought to you by

Systemset-Logo

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!

Features

  • ✨ 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

How It Works

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

LinkedIn Parameters

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

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • Git

Clone the Repository

git clone https://github.com/Systemsetco/WorkIn.git
cd WorkIn

Installation

npm install

Development Server

npm run dev

Open http://localhost:3000 with your browser to see the result.

Building for Production

npm run build
npm start

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

Installation

# Clone the repository
git clone https://github.com/Systemsetco/WorkIn.git
cd WorkIn

# Install dependencies
npm install

# Run development server
npm run dev

Open http://localhost:3000 in your browser.

Build for Production

npm run build
npm start

Usage

  1. Enter Job Details - Type your desired job designation (e.g., "Python Developer")
  2. Add Location (Optional) - Specify city or country (e.g., "Karachi, Pakistan")
  3. Select Filters - Choose job type, work mode, experience level
  4. Pick Time Range - Select when jobs were posted (1h, 24h, 7d, etc.)
  5. Generate Link - Click to create your LinkedIn job search URL
  6. Copy or Open - Use the generated link immediately or copy for later

Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run start - Start production server
  • npm run lint - Run ESLint
  • npm test - Run unit tests with Vitest
  • npm run test:e2e - Run E2E tests with Playwright
  • npm run test:e2e:ui - Run E2E tests in UI mode

Testing

Unit Tests

npm test

Tests 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

E2E Tests

npm run test:e2e

Tests cover:

  • Full user workflows
  • Accessibility (axe-core)
  • Keyboard navigation
  • Mobile responsiveness
  • Theme toggling
  • Clipboard operations

Tech Stack

  • 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)

Project Structure

β”œβ”€β”€ 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

URL Building Logic

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

Deployment

Vercel (Recommended)

Deploy with Vercel

  1. Push to GitHub
  2. Import repository in Vercel
  3. Deploy (zero configuration needed)

Manual Deployment

npm run build
# Deploy the .next folder to your hosting provider

Privacy & LinkedIn ToS

  • 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

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

MIT License - feel free to use this project for any purpose.

Acknowledgments


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.

About

Work in smarter, not later - Generate custom LinkedIn job search URLs with advanced filters. Fast, secure, and completely client-side. No data collection, ever.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published