Rishabh2095's picture
Modified Dockerfile and docker-compose for HF Deployement
c7be661
metadata
title: Job Application Writer
emoji: 📝
colorFrom: blue
colorTo: purple
sdk: docker
app_port: 7860
pinned: false
python_version: 3.12.8

Job Writer Module

A modular, well-structured package for creating tailored job applications using LangChain and LangGraph with LangSmith observability.

Features

  • Creates personalized job application materials based on resumes and job descriptions
  • Supports multiple application types: cover letters, bullet points, and LinkedIn messages
  • Uses RAG for personalization and web search for company research
  • Provides human-in-the-loop feedback integration
  • Implements self-consistency voting for quality control

Installation

# Install the package and its dependencies
pip install -e .

# Install development dependencies (including linting tools)
pip install -r requirements-dev.txt

Code Standards and Linting

This project uses several tools to ensure code quality:

  1. Black - Code formatter that enforces consistent style
  2. isort - Sorts imports according to best practices
  3. Flake8 - Style guide enforcement
  4. mypy - Static type checking

Running the Linters

# Format code with Black
black job_writer/

# Sort imports
isort job_writer/

# Check style with Flake8
flake8 job_writer/

# Type checking with mypy
mypy job_writer/

Pre-commit Hooks

We use pre-commit hooks to automatically run linters before each commit:

# Install the pre-commit hooks
pip install pre-commit
pre-commit install

# You can also run the hooks manually
pre-commit run --all-files

Usage Example

import asyncio
from job_writer.workflow import run_job_application_writer

# Run the job application writer
result = asyncio.run(run_job_application_writer(
    resume_path="path/to/resume.pdf",
    job_desc_path="https://example.com/job-posting",
    content="cover_letter"
))

print(result["final"])

Alternatively, you can use the command-line interface:

python -m job_writer.workflow --resume path/to/resume.pdf --job https://example.com/job-posting --type cover_letter

Run with uv

uv run --active -m job_writing_agent.workflow --resume resumefilepath --job jobposturl