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.
- 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.
- 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.
- 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.
Follow these instructions to get the project up and running on your local machine.
- Node.js and npm: Download & Install Node.js
- Python 3.8+: Download & Install Python
- OpenAI API Key: You'll need an API key from OpenAI. You can get one here.
-
Clone the repository:
git clone https://github.com/your-username/Resume_Match_AI.git cd Resume_Match_AI -
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
-
Frontend Setup:
# Navigate to the frontend directory cd ../frontend # Install dependencies npm install
-
Start the Backend Server:
- Make sure you are in the
backenddirectory 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.
- Make sure you are in the
-
Start the Frontend Development Server:
- Open a new terminal and navigate to the
frontenddirectory. - Run the Vite development server:
npm run dev
- The frontend will be available at
http://localhost:5173.
- Open a new terminal and navigate to the
-
Open the App:
- Open your web browser and navigate to
http://localhost:5173. - Provide your OpenAI API Key, upload your resume, and start matching!
- Open your web browser and navigate to
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.
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.
This project is licensed under the MIT License. See the LICENSE file for details.
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request