Skip to content

YanmiYu/Sleep-Apply

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

40 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ Sleep-Apply

Pixelated Dreams and Job Hunts

Apply to jobs automatically while you sleep.

Sleep-Apply is an intelligent job application automation system that scrapes job postings, generates tailored resumes using AI, and automatically fills out applications across multiple job portals.

License: MIT Python 3.11+


โœจ Features

  • ๐Ÿ” Smart Job Scraping - Find jobs from LinkedIn, Indeed, ZipRecruiter, and more
  • ๐Ÿค– AI-Powered Resume Generation - Tailored resumes for each job using GPT
  • โšก Automated Application - Auto-fill forms across different job portals
  • ๐Ÿ“Š Application Tracking - Monitor status and success rates
  • ๐Ÿ“ง Email Integration - Parse interview invites automatically
  • ๐Ÿง  Learning Engine - Improve over time based on success patterns
  • ๐Ÿ”’ Secure - Encrypted credential storage and session management

๐ŸŽฏ Quick Start

Prerequisites

  • Python 3.11+
  • Docker & Docker Compose (recommended)
  • OpenAI API key

Installation

  1. Clone the repository:

    git clone https://github.com/YanmiYu/Sleep-Apply.git
    cd Sleep-Apply
  2. Set up environment:

    cp .env.example .env
    # Edit .env with your API keys
  3. Start services:

    make setup
    make start
  4. Access the application:


๐Ÿ“ฆ Project Structure

Sleep-Apply/
โ”œโ”€โ”€ hunt/                    # Job scraping & automation module
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ scraping_service.py    # Multi-platform job scraper
โ”‚   โ”‚   โ””โ”€โ”€ apply_automation.py    # Browser automation
โ”‚   โ””โ”€โ”€ tests/
โ”‚
โ”œโ”€โ”€ auto-fill/              # Form auto-fill system
โ”‚   โ”œโ”€โ”€ backend/            # FastAPI backend
โ”‚   โ”œโ”€โ”€ frontend/           # Demo UI
โ”‚   โ”œโ”€โ”€ extension/          # Chrome extension
โ”‚   โ””โ”€โ”€ demo.html           # Interactive demo
โ”‚
โ”œโ”€โ”€ backend/                # Main backend (MVP - in progress)
โ”‚   โ”œโ”€โ”€ app/
โ”‚   โ”‚   โ”œโ”€โ”€ models/         # Database models
โ”‚   โ”‚   โ”œโ”€โ”€ services/       # Business logic
โ”‚   โ”‚   โ””โ”€โ”€ routers/        # API endpoints
โ”‚   โ””โ”€โ”€ tests/
โ”‚
โ”œโ”€โ”€ docker-compose.yml      # Full stack deployment
โ”œโ”€โ”€ Makefile               # Convenient commands
โ””โ”€โ”€ MVP_PLAN.md            # 4-week implementation plan

๐ŸŽฎ Usage

Hunt Module (Job Scraping)

from hunt.src.scraping_service import scrape_jobs_universal

# Scrape jobs
jobs = scrape_jobs_universal(
    search_term="software engineer",
    location="San Francisco, CA",
    site_name=["linkedin", "indeed"],
    results_wanted=50,
    is_remote=True
)

# Save to CSV
from hunt.src.scraping_service import save_jobs_csv
save_jobs_csv(jobs, "jobs.csv")

Apply Automation

from hunt.src.apply_automation import JobApplicationAutomator

# Apply to a job
automator = JobApplicationAutomator(headless=True)
result = automator.click_apply_button("https://www.linkedin.com/jobs/view/123456")

if result["success"]:
    print(f"Applied! Redirected to: {result['new_url']}")

Auto-Fill Demo

  1. Start the demo server:

    cd auto-fill
    python3 -m http.server 8080
  2. Open http://localhost:8080/demo.html

  3. Use keyboard shortcuts:

    • Ctrl+Shift+F - Auto-fill forms
    • Ctrl+Shift+R - Refresh field detection
    • Ctrl+Shift+A - Analyze page

๐Ÿ› ๏ธ Development

Available Commands

make setup      # Initial setup
make start      # Start all services
make stop       # Stop services
make test       # Run tests
make logs       # View logs
make migrate    # Run database migrations

Running Tests

# Hunt module tests
cd hunt
uv run pytest tests/ -v

# Auto-fill tests
cd auto-fill
python -m pytest tests/

Code Quality

make lint       # Check code quality
make lint-fix   # Auto-fix issues

๐Ÿ“Š MVP Roadmap

We're building an MVP in 4 weeks. See MVP_PLAN.md for details.

Week 1: Foundation & Database
Week 2: Core Automation
Week 3: Tracking & Analytics
Week 4: Polish & Documentation

Current Status: Week 1 - Setting up infrastructure


๐Ÿค Contributing

Contributions are welcome! Please:

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

โš ๏ธ Legal Disclaimer

This tool is for educational purposes. Automated job applications may violate terms of service of job sites. Use responsibly and at your own risk. Always review applications before submission.


๐Ÿ“ License

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


๐Ÿ™ Acknowledgments


๐Ÿ“ง Contact


Made with โค๏ธ by the Sleep-Apply Team

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors