Skip to content

joe2708/Resume-Matcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Resume_Match_AI

Resume_Match_AI is a fully automated, open-source job matcher that uses AI to analyze your resume and fetch real-time job listings from LinkedIn — then scores and ranks them based on how well they fit your profile.

License: MIT

✨ Features

  • AI-Powered Resume Analysis: Extracts key skills, job titles, and experience from your resume.
  • Real-Time Job Scraping: Fetches the latest job postings from LinkedIn based on your profile.
  • Intelligent Job Matching: Scores and ranks jobs based on how well they align with your resume.
  • In-depth Resume Critique: Provides "brutally honest" feedback on your resume to help you improve it.
  • Dynamic 3D UI: Engaging and interactive user interface built with Three.js and React Three Fiber.

🛠️ Tech Stack

Frontend

  • React: A JavaScript library for building user interfaces.
  • Vite: A blazing-fast frontend build tool.
  • TypeScript: A typed superset of JavaScript.
  • Tailwind CSS: A utility-first CSS framework.
  • React Three Fiber: A React renderer for Three.js.

Backend

  • FastAPI: A modern, fast (high-performance) web framework for building APIs with Python.
  • Selenium: A powerful tool for automating web browsers.
  • spaCy: An open-source software library for advanced Natural Language Processing (NLP).
  • OpenAI: For AI-powered analysis and matching.
  • Uvicorn: A lightning-fast ASGI server implementation.

🚀 Getting Started

Follow these instructions to get the project up and running on your local machine.

Prerequisites

Installation

  1. Clone the repository:

    git clone https://github.com/your-username/Resume_Match_AI.git
    cd Resume_Match_AI
  2. Backend Setup:

    # Navigate to the backend directory
    cd backend
    
    # Create a virtual environment
    python -m venv venv
    source venv/bin/activate  # On Windows, use `venv\Scripts\activate`
    
    # Install dependencies
    pip install -r ../requirements.txt
  3. Frontend Setup:

    # Navigate to the frontend directory
    cd ../frontend
    
    # Install dependencies
    npm install

🏃‍♀️ Usage

  1. Start the Backend Server:

    • Make sure you are in the backend directory with your virtual environment activated.
    • Run the FastAPI server:
    python api/main.py
    • The backend will be running at http://127.0.0.1:8000.
  2. Start the Frontend Development Server:

    • Open a new terminal and navigate to the frontend directory.
    • Run the Vite development server:
    npm run dev
    • The frontend will be available at http://localhost:5173.
  3. Open the App:

    • Open your web browser and navigate to http://localhost:5173.
    • Provide your OpenAI API Key, upload your resume, and start matching!

⚠️ A Note on Production Use & Monetization

You are free to clone, modify, and monetize this project. However, if you plan to run this in a production environment, especially with multiple users, it is critical to take precautions to avoid getting your LinkedIn account and IP address blocked.

When you scale this application, all scraping should be handled by your backend server, not the user's browser. The user should only have to interact with your frontend.

Here are the essential guidelines for running this in production:

  • Use a Dedicated Fake LinkedIn Account: Never use your personal LinkedIn account for scraping. Create a dedicated, realistic-looking account solely for the scraper's use.
  • Use Proxies to Avoid IP Blocks: LinkedIn will quickly flag and block an IP address that sends too many automated requests. To prevent this, you must use a proxy service.
    • Residential Proxies are Strongly Recommended: Standard datacenter proxies are easily detected by services like LinkedIn. Use residential proxies (IPs from real home internet connections) for higher success rates.
    • Rotate Your IPs: To mimic real user behavior, you should rotate the IP address frequently (ideally for each request or session).
  • Scrape Responsibly: Implement random delays and limit the rate of your scraping to appear more like a human user and avoid overwhelming LinkedIn's servers.

Disclaimer: Scraping may be against the terms of service of some websites. The creators of this project are not responsible for any consequences that arise from its use. Please use this tool responsibly and at your own risk.

⚙️ Customization

Changing the AI Model

For cost-effectiveness, this project uses the gpt-4.1-nano model by default for all AI-related tasks. If you wish to use a different model (e.g., gpt-4, gpt-3.5-turbo), you can change it in the backend/ai_engine/analyzer.py file.

You will need to update the model parameter inside each function that makes a call to the OpenAI API.

📄 License

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

🤝 Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

🙏 Acknowledgements

About

Resume_Match_AI is a fully automated, open-source job matcher that uses AI to analyze your resume and fetch real-time job listings from LinkedIn - then scores and ranks them based on how well they fit your profile.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages