Skip to content

Commit 110e993

Browse files
committed
update readme
1 parent 2513bde commit 110e993

File tree

3 files changed

+13
-280
lines changed

3 files changed

+13
-280
lines changed

README.md

+8-189
Original file line numberDiff line numberDiff line change
@@ -46,48 +46,12 @@ Auto_Jobs_Applier_AIHawk is continuously evolving, and your feedback, suggestion
4646

4747
## Introduction
4848

49-
Auto_Jobs_Applier_AIHawk is a cutting-edge, automated tool designed to revolutionize the job search and application process. In today's fiercely competitive job market, where opportunities can vanish in the blink of an eye, this program offers job seekers a significant advantage. By leveraging the power of automation and artificial intelligence, Auto_Jobs_Applier_AIHawk enables users to apply to a vast number of relevant positions efficiently and in a personalized manner, maximizing their chances of landing their dream job.
49+
Auto_Jobs_Applier_AIHawk is a cutting-edge, automated tool designed to revolutionize the job search and application process. In today's fiercely competitive job market, where opportunities can vanish in the blink of an eye, this program offers job seekers a significant advantage. By leveraging the power of automation and artificial intelligence.
5050

5151
### The Challenge of Modern Job Hunting
5252

5353
In the digital age, the job search landscape has undergone a dramatic transformation. While online platforms have opened up a world of opportunities, they have also intensified competition. Job seekers often find themselves spending countless hours scrolling through listings, tailoring applications, and repetitively filling out forms. This process can be not only time-consuming but also emotionally draining, leading to job search fatigue and missed opportunities.
5454

55-
### Enter Auto_Jobs_Applier_AIHawk: Your Personal Job Search Assistant
56-
57-
Auto_Jobs_Applier_AIHawk steps in as a game-changing solution to these challenges. It's not just a tool; it's your tireless, 24/7 job search partner. By automating the most time-consuming aspects of the job search process, it allows you to focus on what truly matters - preparing for interviews and developing your professional skills.
58-
59-
## Features
60-
61-
1. **Intelligent Job Search Automation**
62-
- Customizable search criteria
63-
- Continuous scanning for new openings
64-
- Smart filtering to exclude irrelevant listings
65-
66-
2. **Rapid and Efficient Application Submission**
67-
- One-click applications
68-
- Form auto-fill using your profile information
69-
- Automatic document attachment (resume, cover letter)
70-
71-
3. **AI-Powered Personalization**
72-
- Dynamic response generation for employer-specific questions
73-
- Tone and style matching to fit company culture
74-
- Keyword optimization for improved application relevance
75-
76-
4. **Volume Management with Quality**
77-
- Bulk application capability
78-
- Quality control measures
79-
- Detailed application tracking
80-
81-
5. **Intelligent Filtering and Blacklisting**
82-
- Company blacklist to avoid unwanted employers
83-
- Title filtering to focus on relevant positions
84-
85-
6. **Dynamic Resume Generation**
86-
- Automatically creates tailored resumes for each application
87-
- Customizes resume content based on job requirements
88-
89-
7. **Secure Data Handling**
90-
- Manages sensitive information securely using YAML files
9155

9256
## Installation
9357

@@ -144,34 +108,6 @@ Auto_Jobs_Applier_AIHawk steps in as a game-changing solution to these challenge
144108
pip install -r requirements.txt
145109
```
146110

147-
### Option 2: Using Conda
148-
149-
1. **Install Conda:**
150-
- Download and install Miniconda from the [official website](https://docs.conda.io/en/latest/miniconda.html)
151-
- Or install Anaconda from the [Anaconda website](https://www.anaconda.com/download)
152-
153-
2. **Create and activate conda environment:**
154-
```bash
155-
# Create new environment
156-
conda create -n aihawk python=3.11
157-
158-
# Activate environment
159-
conda activate aihawk
160-
```
161-
162-
3. **Clone the repository:**
163-
```bash
164-
git clone https://github.com/feder-cr/Auto_Jobs_Applier_AIHawk.git
165-
cd Auto_Jobs_Applier_AIHawk
166-
```
167-
168-
4. **Install dependencies:**
169-
```bash
170-
# Install from requirements.txt
171-
pip install -r requirements.txt
172-
```
173-
174-
175111
## Configuration
176112

177113
### 1. secrets.yaml
@@ -189,80 +125,8 @@ This file contains sensitive information. Never share or commit this file to ver
189125
You can find more about your organization limits on the [official page](https://platform.openai.com/settings/organization/limits).
190126
- For obtaining Gemini API key visit [Google AI for Devs](https://ai.google.dev/gemini-api/docs/api-key)
191127

192-
### 2. work_preferences.yaml
193-
194-
This file defines your job search parameters and bot behavior. Each section contains options that you can customize:
195-
196-
- `remote: [true/false]`
197-
198-
- Set to `true` to include remote jobs, `false` to exclude them
199-
200-
- `hybrid: [true/false]`
201128

202-
- Set to `true` to include hybrid jobs, `false` to exclude them
203-
204-
- `onsite: [true/false]`
205-
206-
- Set to `true` to include onsite jobs, `false` to exclude them
207-
208-
- `experience_level:`
209-
210-
- Set desired experience levels to `true`, others to `false`
211-
212-
- `job_types:`
213-
- Set desired job types to `true`, others to `false`
214-
215-
- `date:`
216-
- Choose one time range for job postings by setting it to `true`, others to `false`
217-
218-
- `positions:`
219-
- List job titles you're interested in, one per line
220-
- Example:
221-
222-
```yaml
223-
positions:
224-
- Software Developer
225-
- Data Scientist
226-
```
227-
228-
- `locations:`
229-
- List locations you want to search in, one per line
230-
- Example:
231-
232-
```yaml
233-
locations:
234-
- Italy
235-
- London
236-
```
237-
238-
- `apply_once_at_company: [True/False]`
239-
- Set to `True` to apply only once per company, `False` to allow multiple applications per company
240-
241-
- `distance: [number]`
242-
- Set the radius for your job search in miles
243-
- Example: `distance: 50`
244-
245-
- `companyBlacklist:`
246-
- List companies you want to exclude from your search, one per line
247-
- Example:
248-
249-
```yaml
250-
companyBlacklist:
251-
- Company X
252-
- Company Y
253-
```
254-
255-
- `titleBlacklist:`
256-
- List keywords in job titles you want to avoid, one per line
257-
- Example:
258-
259-
```yaml
260-
titleBlacklist:
261-
- Sales
262-
- Marketing
263-
```
264-
265-
#### 2.1 config.py - Customize LLM model endpoint
129+
#### 1.1 config.py - Customize LLM model endpoint
266130

267131
- `LLM_MODEL_TYPE`:
268132
- Choose the model type, supported: openai / ollama / claude / gemini
@@ -280,7 +144,7 @@ This file defines your job search parameters and bot behavior. Each section cont
280144
- gemini: <https://aistudio.google.com/app/apikey>
281145
- Note: To run local Ollama, follow the guidelines here: [Guide to Ollama deployment](https://github.com/ollama/ollama)
282146

283-
### 3. plain_text_resume.yaml
147+
### 2. plain_text_resume.yaml
284148

285149
This file contains your resume information in a structured format. Fill it out with your personal details, education, work experience, and skills. This information is used to auto-fill application forms and generate customized resumes.
286150

@@ -579,9 +443,6 @@ Using this folder as a guide can be particularly helpful for:
579443

580444
## Usage
581445

582-
0. **Account language**
583-
To ensure the bot works, your account language must be set to English.
584-
585446
1. **Data Folder:**
586447
Ensure that your data_folder contains the following files:
587448
- `secrets.yaml`
@@ -590,38 +451,20 @@ Using this folder as a guide can be particularly helpful for:
590451

591452
2. **Output Folder:**
592453
Contains the output of the bot.
593-
- `data.json` results of the --collect mode
594-
- `failed.json` failed applications
595-
- `open_ai_calls.json` all the calls made to the LLM model
596-
- `skipped.json` applications that were skipped
597-
- `success.json` successful applications
454+
TODO
455+
598456

599-
**Note:** `answers.json` is not part of the output folder and can be found in the root of the project. It is used to store the answers of the questions asked to the user. Can be used to update the bot with corrected answers. Search for `Select an option`, `0`, `Authorized`, and `how many years of` to verify correct answers.
600457

601458
3. **Run the Bot:**
602459

603460
Auto_Jobs_Applier_AIHawk offers flexibility in how it handles your pdf resume:
604461

605-
- **Dynamic Resume Generation:**
606-
If you don't use the `--resume` option, the bot will automatically generate a unique resume for each application. This feature uses the information from your `plain_text_resume.yaml` file and tailors it to each specific job application, potentially increasing your chances of success by customizing your resume for each position.
462+
- **Resume and Cover Letter Generation:**
607463

608464
```bash
609465
python main.py
610466
```
611467

612-
- **Using a Specific Resume:**
613-
If you want to use a specific PDF resume for all applications, place your resume PDF in the `data_folder` directory and run the bot with the `--resume` option:
614-
615-
```bash
616-
python main.py --resume /path/to/your/resume.pdf
617-
```
618-
619-
- **Using the collect mode:**
620-
If you want to collect job data only to perform any type of data analytics you can use the bot with the `--collect` option. This will store in output/data.json file all data found from linkedin jobs offers.
621-
622-
```bash
623-
python main.py --collect
624-
```
625468

626469
### Troubleshooting
627470

@@ -639,20 +482,7 @@ openai.RateLimitError: Error code: 429 - {'error': {'message': 'You exceeded you
639482
- If you've recently added funds or upgraded, wait 12-24 hours for changes to take effect
640483
- Free tier has a 3 RPM limit; spend at least $5 on API usage to increase
641484

642-
#### 2. Easy Apply Button Not Found
643-
644-
**Error Message:**
645-
646-
Exception: No clickable 'Easy Apply' button found
647-
648-
**Solution:**
649-
650-
- Ensure that you're logged properly
651-
- Check if the job listings you're targeting actually have the "Easy Apply" option
652-
- Verify that your search parameters in the `config.yaml` file are correct and returning jobs with the "Easy Apply" button
653-
- Try increasing the wait time for page loading in the script to ensure all elements are loaded before searching for the button
654-
655-
#### 3. Incorrect Information in Job Applications
485+
#### 2. Incorrect Information in Job Applications
656486

657487
**Issue:** Bot provides inaccurate data for experience, CTC, and notice period
658488

@@ -662,7 +492,7 @@ Exception: No clickable 'Easy Apply' button found
662492
- Add fields in `config.yaml` for current CTC, expected CTC, and notice period
663493
- Modify bot logic to use these new config fields
664494

665-
#### 4. YAML Configuration Errors
495+
#### 3. YAML Configuration Errors
666496

667497
**Error Message:**
668498

@@ -675,16 +505,6 @@ yaml.scanner.ScannerError: while scanning a simple key
675505
- Use a YAML validator tool
676506
- Avoid unnecessary special characters or quotes
677507

678-
#### 5. Bot Logs In But Doesn't Apply to Jobs
679-
680-
**Issue:** Bot searches for jobs but continues scrolling without applying
681-
682-
**Solution:**
683-
684-
- Check for security checks or CAPTCHAs
685-
- Verify `config.yaml` job search parameters
686-
- Ensure your account profile meets job requirements
687-
- Review console output for error messages
688508

689509
### General Troubleshooting Tips
690510

@@ -726,7 +546,6 @@ For further assistance, please create an issue on the [GitHub repository](https:
726546

727547
- [Lang Chain Developer Documentation](https://python.langchain.com/v0.2/docs/integrations/components/)
728548

729-
- [Workflow diagrams](docs/workflow_diagrams.md)
730549

731550
- If you encounter any issues, you can open an issue on [GitHub](https://github.com/feder-cr/Auto_Jobs_Applier_AIHawk/issues).
732551
Please add valuable details to the subject and to the description. If you need new feature then please reflect this.

config.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# In this file, you can set the configurations of the app.
22

3-
from src.utils.constants import DEBUG, LLM_MODEL, OPENAI
3+
from src.utils.constants import DEBUG, ERROR, LLM_MODEL, OPENAI
44

55
#config related to logging must have prefix LOG_
6-
LOG_LEVEL = DEBUG
7-
LOG_SELENIUM_LEVEL = DEBUG
8-
LOG_TO_FILE = True
9-
LOG_TO_CONSOLE = True
6+
LOG_LEVEL = ERROR
7+
LOG_SELENIUM_LEVEL = ERROR
8+
LOG_TO_FILE = False
9+
LOG_TO_CONSOLE = False
1010

1111
MINIMUM_WAIT_TIME_IN_SECONDS = 60
1212

src/utils/browser_utils.py

-86
This file was deleted.

0 commit comments

Comments
 (0)