An AI-powered job application automation platform that scrapes jobs, matches them to your profile, and automates the application process.
Getting Started ยท Contributing ยท Documentation ยท Architecture
- What is HIRE?
- Why HIRE?
- Features
- Tech Stack
- Project Structure
- Quick Start
- API Reference
- Contributing
- Apertre 3.0 Contributors
- License
HIRE is an intelligent job application automation engine that streamlines the job hunting process using AI and browser automation. Instead of spending hours applying to jobs manually, HIRE does the heavy lifting for you!
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ 1. SCRAPE โ โโโถ โ 2. MATCH โ โโโถ โ 3. TAILOR โ โโโถ โ 4. APPLY โ
โ Jobs from โ โ Jobs to your โ โ Resume for โ โ Automatically โ
โ platforms โ โ profile โ โ each job โ โ using AI โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
Applying to jobs is time-consuming and repetitive. Job seekers spend hours:
| Pain Point | Time Wasted |
|---|---|
| ๐ Searching for relevant jobs | 2-3 hours/day |
| ๐ Tailoring resumes | 30 mins/application |
| โ๏ธ Filling forms repeatedly | 15-20 mins/application |
| ๐ Writing cover letters | 20-30 mins/application |
HIRE automates the entire workflow:
| Feature | What HIRE Does |
|---|---|
| ๐ท๏ธ Smart Scraping | Scrapes jobs from platforms based on your skills |
| ๐ฏ AI Matching | Ranks jobs by relevance using vector embeddings |
| ๐ Resume Tailoring | Customizes your resume for each job using LLM |
| ๐ค Auto-Apply | Fills applications with AI-generated answers |
| ๐ Handles Complexity | Manages popups, multi-page forms, file uploads |
- ๐ท๏ธ Multi-Platform Job Scraping - Currently supports Internshala, with more platforms coming!
- ๐ฏ AI-Powered Job Matching - Uses vector similarity (pgvector) to find relevant jobs
- ๐ Smart Resume Tailoring - LLM-powered resume customization for each application
- ๐ค Automated Form Filling - Playwright-based browser automation with AI-generated responses
- ๐ Application Dashboard - Track all your applications in one place
| Capability | Description |
|---|---|
| Smart Form Detection | Detects all form fields and their labels |
| Multi-Page Forms | Navigates through form pages automatically |
| Popup Handling | Auto-dismisses alerts, modals, and cookie popups |
| File Uploads | Uploads resume to file inputs (PDF, DOCX, DOC) |
| Layer | Technology | Purpose |
|---|---|---|
| Backend | NestJS + TypeScript | REST API, business logic |
| Database | PostgreSQL + pgvector | Data storage, vector similarity |
| Automation | Playwright | Browser automation |
| AI/LLM | Google Gemini / OpenAI | Resume tailoring, form answers |
| Frontend | React + Vite | User interface |
| Containerization | Docker + Docker Compose | Easy deployment, development |
HIRE/
โโโ ๐ backend/ # NestJS Backend
โ โโโ ๐ src/
โ โ โโโ ๐ applications/ # Application workflow management
โ โ โโโ ๐ jobs/ # Job listing management
โ โ โโโ ๐ scrapers/ # โญ Job scraping services
โ โ โโโ ๐ services/ # Core services (LLM, automation)
โ โ โโโ ๐ users/ # User management & resume handling
โ โ โโโ ๐ config/ # Database & app configuration
โ โโโ ๐ resumes/ # Tailored resume storage
โ โโโ ๐ screenshots/ # Automation screenshots
โ โโโ ๐ uploads/ # User uploaded files
โ
โโโ ๐ frontend/ # React Frontend (Vite)
โ โโโ ๐ src/
โ โ โโโ ๐ components/ # Reusable UI components
โ โ โโโ ๐ pages/ # Application pages
โ
โโโ ๐ .github/ # GitHub Actions & Issue Templates
โ โโโ ๐ ISSUE_TEMPLATE/ # Issue templates for contributors
โ
โโโ ๐ docker-compose.yml # PostgreSQL container setup
โโโ ๐ CONTRIBUTING.md # Contribution guidelines
โโโ ๐ ARCHITECTURE.md # System architecture details
โโโ ๐ README.md # You are here! ๐
Before you begin, make sure you have:
- โ Node.js 18+ - Download
- โ Docker Desktop - Download
- โ Git - Download
- โ Gemini API Key - Get Free Key
The easiest way to get started! Docker handles all dependencies including Playwright browsers.
# Clone the repository
git clone https://github.com/JAYATIAHUJA/HIRE.git
cd HIRE
# Configure environment
cp .env.docker .env
# Edit .env with your API keys and credentials
# Start all services (database, backend, frontend)
npm run docker:dev
# View logs
npm run docker:logs
# Access the application
# Frontend: http://localhost:5173
# Backend API: http://localhost:3000That's it! All services are running in containers with hot reload enabled.
Docker notes:
- Local development uses Docker Compose (Postgres + backend + frontend) with hot reload.
- Backend uses mcr.microsoft.com/playwright:v1.40.1-jammy-chromium for Playwright + Chromium.
- Keep Docker Playwright version aligned with backend/package.json Playwright version.
- Docker is intended for local development; production deployment should use managed cloud services.
If you prefer running services locally:
# Clone the repository
git clone https://github.com/JAYATIAHUJA/HIRE.git
cd HIRE
# Install backend dependencies
cd backend && npm install
# Install frontend dependencies
cd ../frontend && npm install# From project root
docker compose up -d postgres
# Verify database is running
docker compose ps# Copy example environment file
cp env.example backend/.envEdit backend/.env with your values:
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/hire_db
LLM_PROVIDER=gemini
GEMINI_API_KEY=your_gemini_api_key_here
INTERNSHALA_EMAIL=your_internshala_email
INTERNSHALA_PASSWORD=your_internshala_password# Terminal 1: Start Backend
cd backend
npm run start:dev
# Terminal 2: Start Frontend (Optional)
cd frontend
npm run dev# Test the API
curl http://localhost:3000/api/scrapers/stats
# Expected response:
# {"message":"Job statistics","total":0,...}๐ Congratulations! You're all set up!
| Endpoint | Method | Description |
|---|---|---|
/api/users |
POST | Create user with resume |
/api/users/:id |
GET | Get user profile |
/api/users/:id/upload-resume |
POST | Upload PDF/Word resume |
/api/feed?userId=X |
GET | Get personalized job feed |
/api/scrapers/stats |
GET | Get job statistics |
/api/scrapers/scrape-for-user |
POST | Scrape jobs for user's skills |
/api/applications |
POST | Create job application |
/api/applications/:id |
GET | Get application status |
/api/applications/:id/approve |
POST | Approve & submit |
For detailed API documentation, see DOCUMENTATION.md.
We love contributions! Whether you're fixing a bug, adding a feature, or improving documentation, we appreciate your help.
- Fork the repository
- Clone your fork
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to your branch (
git push origin feature/amazing-feature) - Open a Pull Request
| Type | Description | Good For |
|---|---|---|
| ๐ Bug Fixes | Fix reported issues | Everyone |
| โจ Features | Add new functionality | Intermediate+ |
| ๐ Documentation | Improve docs, fix typos | Beginners |
| ๐งช Tests | Add or improve tests | All levels |
| ๐ท๏ธ Scrapers | Add new job platform support | Intermediate+ |
We especially welcome scrapers for new job platforms! You can contribute:
Create a dedicated scraper for a specific job platform:
Platforms we'd love scrapers for:
- LinkedIn Jobs
- Indeed
- Glassdoor
- Naukri
- AngelList/Wellfound
- RemoteOK
- WeWorkRemotely
- Hacker News Jobs
Build a single scraper that aggregates jobs from multiple platforms using libraries like JobSpy.
See CONTRIBUTING.md for detailed scraper guidelines.
If you're participating in Apertre 3.0, we're excited to have you here! This project is beginner-friendly and we're here to help you succeed.
โ ๏ธ When creating any issue (bug report, feature request, scraper proposal), please addApertre 3.0in your issue description if you are a participant!
This helps maintainers identify and prioritize your contributions during the program.
When creating an issue, add this at the top of your description:
**Program:** Apertre 3.0 ParticipantOr use our dedicated Apertre 3.0 Contributor Template when requesting to work on issues!
Look for issues labeled:
- ๐ท๏ธ
good first issue- Perfect for beginners - ๐ท๏ธ
apertre3.0- Specifically for program participants - ๐ท๏ธ
documentation- Great for getting started - ๐ท๏ธ
help wanted- We need your help!
Maintain proper labels before merging any Pull Requests.
Available Labels: easy, medium, hard, apertre3.0
| Rule | Description |
|---|---|
apertre3.0 label is required for all PRs from program participants |
|
Admin should give only ONE difficulty label (easy, medium, or hard) per PR |
Earn points for your contributions based on difficulty!
| Difficulty | Points |
|---|---|
| EASY | 5 PTS |
| MEDIUM | 7 PTS |
| HARD | 10 PTS |
๐ Points contribute to the Apertre 3.0 leaderboard!
- ๐ฌ Discord: Join our community server
- ๐ Issues: Ask questions on GitHub issues
- ๐ Docs: Read CONTRIBUTING.md and ARCHITECTURE.md
- Internshala scraper
- Basic automation pipeline
- LinkedIn scraper
- Indeed scraper
- Multi-platform unified scraper
- Chrome extension for quick applications
- Mobile app
- Interview preparation AI
- Salary negotiation assistant
For a detailed technical deep-dive, see ARCHITECTURE.md.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Frontend (React) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ REST API
โโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Backend API (NestJS + TypeScript) โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ ScrapersService โ MatchingService โ LlmService โ โ
โ โ ApplicationsService โ AutomationService โ ... โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโ
โผ โผ โผ
โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ
โ PostgreSQL โ โ Playwright โ โ LLM Provider โ
โ + pgvector โ โ Browser โ โ (Gemini/GPT) โ
โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ
- ๐ Never commit
.envfiles - ๐ Rotate API keys regularly
- ๐ Use environment variables for secrets
- ๐ต๏ธ Credentials are only used during automation sessions
This project is licensed under the MIT License - see the LICENSE file for details.
- NestJS - Backend framework
- Playwright - Browser automation
- Google Gemini - AI/LLM capabilities
- pgvector - Vector similarity search
Built with โค๏ธ by Jayati Ahuja and contributors
โญ Star this repo if you find it helpful! โญ