this agent is based on our upcoming open-source framework sentient to help devs instantly build fast & reliable AI agents that can control browsers autonomously in 3 lines of code. checkout the beta sentient package on pypi & our experiemnts to advance oss web navigating agents in the agent-q repository
jobber is an ai agent that searches and applies for jobs on your behalf by controlling your browser. put in your resume and preferences and it does the work in background.
checkout this loom video for a quick demo
you might notice two separate implementations of jobber in the repo. jobber
folder contains a simpler approach to implementing multi-agent conversation required between a planner and a browser agent.
the jobber_fsm
folder contains another approach based on finite state machines. there are slight nuances and both result in similar level or performace. however, the fsm approach is more scalable, and we will be doing further improvements in it.
the downside of fsm agent is that it is dependent on structured output from open ai. so you can't reliably use cheaper models like gpt4o-mini or other oss models which is possible in jobber
-
we recommend installing poetry before proceeding with the next steps. you can install poetry using these instructions
-
install dependencies
poetry install
- start chrome in dev mode - in a seaparate terminal, use the command to start a chrome instance and do necesssary logins to job websites like linkedin/ wellfound, etc.
for mac, use command -
sudo /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
for linux -
google-chrome --remote-debugging-port=9222
for windows -
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222
-
set up env - add openai and langsmith keys to .env file. you can refer .env.example. currently adding langsmith is required but if you do not want to use it for tracing - then you can comment the line
litellm.success_callback = ["langsmith"]
in the./jobber_fsm/core/agent/base.py
file. -
update your preferences in the
user_preferences.txt
file in the folder of agent that you are running (jobber/ jobber_fsm). provide the local file path to your resume in this file itself for the agent to be able to upload it. -
run the agent - jobber_fsm or jobber
python -u -m jobber_fsm
or
python -u -m jobber
- enter your task. sample task -
apply for a backend engineer role based in helsinki on linkedin
- For Jobber
python -m test.tests_processor --orchestrator_type vanilla
- For Jobber FSM
python -m test.tests_processor --orchestrator_type fsm
a bunch of amazing work in the space has inspired this. see webvoyager, agent-e
@article{he2024webvoyager,
title={WebVoyager: Building an End-to-End Web Agent with Large Multimodal Models},
author={He, Hongliang and Yao, Wenlin and Ma, Kaixin and Yu, Wenhao and Dai, Yong and Zhang, Hongming and Lan, Zhenzhong and Yu, Dong},
journal={arXiv preprint arXiv:2401.13919},
year={2024}
}
@misc{abuelsaad2024-agente,
title={Agent-E: From Autonomous Web Navigation to Foundational Design Principles in Agentic Systems},
author={Tamer Abuelsaad and Deepak Akkil and Prasenjit Dey and Ashish Jagmohan and Aditya Vempaty and Ravi Kokku},
year={2024},
eprint={2407.13032},
archivePrefix={arXiv},
primaryClass={cs.AI},
url={https://arxiv.org/abs/2407.13032},
}