Skip to content

praneethravuri/job-assistant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

job-assistant

job-assistant is a toolkit for automating job applications and tailoring resumes using AI-powered agents.

Overview

This repository contains two main components:

  1. jobs-applier: Automates filling out web-based job application forms using a browser agent and your personal data.
  2. resume-tailor: Scrapes and analyzes job descriptions, tailors a YAML-based resume to match the JD, and generates a formatted .docx file.

Repository Structure

.gitignore
README.md            ← This file
requirements.txt     ← Python dependencies

data/                ← Directory for YAML data files
  ├─ personal_info.yml     ← Candidate personal data for form filling
  └─ resume.yml            ← Candidate resume data for tailoring
  └─ job_preferences.yml   ← Job preferences and other information

src/
  ├─ jobs-applier/
  │   └─ main.py        ← Script to run the application-filling agent
  └─ resume-tailor/
      ├─ main.py        ← Script to run scraping, analysis, tailoring, and docx generation
      └─ create_resume_docx.py  ← Utility to convert JSON resume to .docx

Getting Started

Prerequisites

  • Python 3.8+
  • pip (for installing dependencies)

Installation

  1. Clone this repository:

    git clone https://github.com/yourusername/job-assistant.git
    cd job-assistant
  2. Install dependencies:

    pip install -r requirements.txt
  3. Export your api key:

    setx GOOGLE_API_KEY your_google_api_key_here

Data Folder (data/)

Place your YAML files under the data/ directory. Below are example files you should create.

1. personal_info.yml

This file supplies personal and contact details used by the jobs-applier agent to fill forms.

# data/personal_info.yml
first_name: John
last_name: Doe
phone_number: "+1 555 123 4567"
email: "[email protected]"
address:
  street: "123 Main St"
  city: "Anytown"
  state: "CA"
  zip: "90210"
  country: "USA"
date_of_birth: "1985-01-15"
websites:
  personal_website: "https://johndoe.dev"
  portfolio: "https://github.com/johndoe"
  linkedin: "https://www.linkedin.com/in/johndoe"
passwords:
  first_preference: "Password123!"
  second_preference: "JDoe$ecure2025"
veterans_preference:
  disabled_veteran: false

2. resume.yml

This file defines your existing resume in a structured format. The tailoring agent will read this and output a matched JSON before converting to .docx.

# data/resume.yml
header:
  name: "John Doe"
  contact:
    - "+1 555 123 4567"
    - "[email protected]"
    - "https://johndoe.dev"

work_experience:
  - company: "Acme Corp"
    location: "San Francisco, CA"
    position: "Software Engineer"
    start_date: "2021-06"
    end_date: "2023-08"
    bullets:
      - "Developed web applications using Python and React, improving user engagement by 20%."
      - "Implemented RESTful APIs and integrated them with third-party services."
  - company: "Beta Solutions"
    location: "Austin, TX"
    position: "Backend Developer"
    start_date: "2019-01"
    end_date: "2021-05"
    bullets:
      - "Designed microservices with Node.js and Docker, reducing deployment times by 30%."
      - "Collaborated with cross-functional teams to define API contracts and data models."

education:
  - institution: "University of Example"
    location: "Example City, EX"
    degree: "B.S. in Computer Science"
    start_date: "2015-08"
    end_date: "2019-05"

skills:
  - name: "Programming Languages"
    items:
      - "Python"
      - "JavaScript"
      - "Go"
  - name: "Frameworks & Libraries"
    items:
      - "React"
      - "Express"
      - "FastAPI"

projects:
  - name: "Example Project One"
    bullets:
      - "Created a data-visualization dashboard using D3.js."
      - "Optimized database queries, reducing response time by 50%."
  - name: "Example Project Two"
    bullets:
      - "Developed a mobile app prototype with React Native."
      - "Integrated push notifications and authentication with OAuth."

3. job_preferences.yml

This file contains all of your job preferences and other options required to fill job applications

# data/resume.yml
work_arrangements:
  remote: true
  hybrid: true
  onsite: true

experience_level:
  internship: false
  entry: true
  associate: true
  mid_senior_level: true
  director: false
  executive: false

job_types:
  full_time: true
  contract: false
  part_time: false
  temporary: false
  internship: false
  volunteer: true
  other: false

positions:
  - Software Engineer
  - Full-Stack Developer

locations:
  - United States

apply_once_at_company: true

sponsorship:
  current_visa: "F1 OPT"
  require_sponsorship: true
  require_future_sponsorship: true
  us_citizen: false
  permanent_resident: false
  lawful_permanent_resident: false
  us_person: false
  refugee: false
  asylum_seeker: false
  granted_asylum: false

mobility:
  willing_to_relocate: true
  relocation_assistance: true
  willing_to_commute: true
  max_commute_distance_miles: 100

how_did_you_hear_about_us:
  job_board: true
  company_website: false
  referral: false
  social_media: false
  networking_event: false
  career_fair: false
  linkedin: true
  careers_page: true
  other: false

company_blacklist: []
title_blacklist: []

restrictive_agreements:
  non_compete: false
  non_solicit: false
  confidentiality: false
  intellectual_property: false

worked_at_auditing_firms:
  prefer_not_to_say: true
  worked_at_deloitte: false
  worked_at_ernst_and_young: false
  worked_at_kpmg: false
  worked_at_pricewaterhousecoopers: false

government_employment:
  prefer_not_to_say: true
  government_employee: false
  government_contractor: false
  former_government_employee: false
  barred_from_receiving_government_contracts: false

relations_or_related_to_employees: false

previously_worked_at_company: false

romantic_relationships_in_company:
  prefer_not_to_say: true
  romatic_partners_in_company: false

consent:
  agree_to_terms_of_service: true
  agree_to_privacy_policy: true
  agree_to_cookie_policy: true
  agree_to_data_processing: true
  agree_to_data_storage: true
  agree_to_data_sharing: false
  agree_to_receive_updates: false
  agree_to_receive_marketing: false

e_signature: "John Doe"

preferred_locations:
  - Austin, TX
  - San Francisco, CA
  - New York, NY
  - Seattle, WA
  - San Jose, CA
  - Los Angeles, CA
  - Chicago, IL
  - Boston, MA
  - Washington, DC
  - Dallas, TX
  - Miami, FL
  - Atlanta, GA
  - Denver, CO
  - Phoenix, AZ
  - Philadelphia, PA
  - Houston, TX
  - Raleigh, NC
  - Charlotte, NC
  - Nashville, TN
  - Portland, OR

compensation:
  salary_min: 70000
  salary_max: 120000
  equity: optional

industries:
  - all

follow_up:
  enabled: true
  cadence_days: 7
  max_attempts: 3

communications:
  email: true
  sms: false
  linkedin_message: true

portfolio:
  website: "https://praneethravuri.com"
  github: "https://github.com/praneethravuri"
  linkedin: "https://linkedin.com/in/prav10"

interview:
  onsite: true
  virtual: true
  coding_challenge: true

Usage

1. Automate Job Applications

python src/jobs-applier/main.py
  • The script loads data/personal_info.yml, flattens the fields, and injects them into the browser automation task.
  • Modify the Greenhouse URL and form instructions directly in src/jobs-applier/main.py under the task string.

2. Tailor Resume and Generate DOCX

python src/resume-tailor/main.py

This pipeline will:

  1. Scrape the job description from the URL configured in src/resume-tailor/main.py.
  2. Analyze and extract structured JD information.
  3. Load your resume from data/resume.yml.
  4. Produce a tailored JSON resume.
  5. Convert the JSON into a .docx file named <Company>_<Role>_<JobID>.docx in the project root.

About

Agentic AI that tailors your resume and applies to jobs for you

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages