Never miss out on your dream job opportunity — all in one place.
job-finder-demo.mp4
Job Finder automatically monitors job boards and company career pages, then sends Slack notifications when it detects new relevant positions. This tool revolutionizes your job search by:
- Saving hours normally spent manually checking multiple job sites
- Keeping you informed of new opportunities in real-time
- Enabling quick applications before positions get flooded with candidates
Stop refreshing job boards manually and let automation work for you.
-
Job Collection 📥
- Monitors selected company career pages using Firecrawl's /extract
- Tracks job boards for new listings
- Runs on a scheduled basis using cron jobs
-
AI Analysis 🧠
- Processes job listings through Together AI
- Identifies relevant positions based on your criteria
- Analyzes job requirements and qualifications
- Filters out irrelevant positions
-
Notification System 📢
- Sends Slack notifications when relevant jobs are found
- Provides direct application links or contact information
- Includes key job details and requirements
- 🤖 AI-powered job matching using Together AI
- 🔍 Career page monitoring with Firecrawl
- 💼 Job board integration
- 💬 Instant Slack notifications
- ⏱️ Scheduled monitoring using cron jobs
- 📋 Automatic job requirement analysis
- 🔗 Direct application links
- Runtime: Node.js with TypeScript
- Framework: Express.js
- AI/ML: Together AI
- Data Sources:
- Firecrawl for web scraping
- Company career pages
- Notifications: Slack Webhooks
- Scheduling: node-cron
- Development:
- nodemon for hot reloading
- TypeScript for type safety
- Express for web server
- Node.js (v20 or higher)
- npm or yarn
- Slack workspace with webhook permissions
- API keys for required services
Copy .env.example
to .env
and configure the following variables:
-
Clone the repository:
git clone https://github.com/ejirocodes/job-finder.git cd job-finder
-
Install dependencies:
npm install
-
Configure environment variables:
cp .env.example .env # Edit .env with your configuration
-
Run the application:
# Development mode with hot reloading npm run start # Build for production npm run build
├── app/
│ ├── controllers/
│ │ └── cron.controller.ts # Job search scheduling
│ ├── services/
│ │ ├── notification.service.ts # Slack notifications
│ │ ├── scrape-sources.service.ts # Job source scraping
│ │ └── cron-sources.service.ts # Scheduling service
│ └── index.ts # App entry point
├── .env # Environment variables
└── package.json # Dependencies and scripts
Edit app/services/scrape-sources.service.ts
to add or modify job sources:
- Company career pages
- Job board URLs
- Search criteria and filters
Customize notifications in app/services/notification.service.ts
:
- Message format
- Job detail inclusion
- Notification frequency
Adjust monitoring frequency in app/services/cron-sources.service.ts
:
- Set check intervals
- Configure time windows
- Manage rate limits
- Fork the repository
- Create your feature branch (
git checkout -b feature/new-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/new-feature
) - Open a Pull Request
- This project was heavily inspired by Trend Finder
MIT License - see LICENSE file for details