Skip to content

mohammed97ashraf/ApplyWizard

Repository files navigation

ApplyWizard 🚀

Automate your job application process with AI-powered form filling using LangChain, ReAct Agent, and AgentQL. Save time, boost productivity, and simplify your job search journey.

High Level Design


Why ApplyWizard?

  • Automate: Let AI fill out your job applications.
  • Save Time: Focus on important tasks, while ApplyWizard does the repetitive work.
  • Customize: Tailor the tool to match your specific job search needs.

For a detailed explanation, read this article: Automate Job Applications with LangChain and ReAct Agent


🚀 Quick Start Guide

Prerequisites

  • Python 3.9 or higher
  • An OpenAI API key (get one at OpenAI)
  • An AgentQL API key (sign up at AgentQL)
  • A LangChain API key (optional, for tracing; get one at LangChain)

1. Clone the Repository

git clone https://github.com/mohammed97ashraf/ApplyWizard.git
cd ApplyWizard

2. Create a Python virtual environment

python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

3. Install the dependencies

pip install -r requirements.txt

4. Create a .env file with API keys

AGENTQL_API_KEY=your_agentql_api_key
OPENAI_API_KEY=your_openai_api_key
LANGCHAIN_API_KEY=your_langchain_api_key  # optional
LANGCHAIN_TRACING_V2="true"  # optional
LANGCHAIN_PROJECT=ApplyWizard  # optional

5. Run the example

Create a run.py file with the following content:

import os
from dotenv import load_dotenv
from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain_core.tools import tool
from langchain_openai import ChatOpenAI
from langchain_utils.create_embeddings import create_new_embedding  # Note: fixed typo
from langchain_utils.langgraph_react_agent import get_react_agent
from langchain import hub
from agental_utils.get_application import get_form_files
from agental_utils.fill_form import fill_the_form, flatten_and_filter_questions
from langchain_core.output_parsers import JsonOutputParser
from langchain.agents import AgentExecutor

load_dotenv()

# Example usage (pseudo-code – adapt to your actual workflow)
def main():
    try:
        # Initialize LLM
        llm = ChatOpenAI(model="gpt-4", temperature=0)
        
        # Load job application form (replace with actual URL or file path)
        form_url = "https://example.com/job-application"
        
        # Fetch form fields
        form_data = get_form_files(form_url)
        
        # Flatten questions
        questions = flatten_and_filter_questions(form_data)
        
        # Create agent
        agent = get_react_agent(llm, tools=...)
        executor = AgentExecutor(agent=agent, tools=..., verbose=True)
        
        # Execute form filling
        result = fill_the_form(questions, user_data_path="resume.pdf")
        print("Application completed:", result)
        
    except Exception as e:
        print(f"Error: {e}")
        raise

if __name__ == "__main__":
    main()

Troubleshooting

  • API Key errors: Ensure you have set all required keys in .env.
  • Import errors: If you see ModuleNotFoundError: No module named 'langchain_utils.cretae_embaddings', rename the directory to langchain_utils and fix the import to create_embeddings.
  • Form not detected: Verify the URL is accessible and contains a valid form.

📚 Documentation

For full API reference and architecture, see the docs folder (coming soon).

🤝 Contributing

Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.

📄 License

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

About

Automate job applications with AI-powered form filling using LangChain, ReAct Agent, and AgentQL. Save time, increase productivity, and simplify your job search journey.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages