Rishabh2095's picture
Modified Dockerfile and docker-compose for HF Deployement
c7be661
---
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
```bash
# 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
```bash
# 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:
```bash
# 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
```python
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:
```bash
python -m job_writer.workflow --resume path/to/resume.pdf --job https://example.com/job-posting --type cover_letter
```
Run with uv
```bash
uv run --active -m job_writing_agent.workflow --resume resumefilepath --job jobposturl
```