Skip to content

smkent/epoa-tools

Repository files navigation

epoa-tools: WA EPOA pay transparency tools

PyPI PyPI - Python Version Build codecov GitHub stars

Washington state's Equal Pay and Opportunities Act requires pay ranges to be included on job ads (RCW 49.58.110). WA L&I provides a PDF complaint form for violations. epoa-tools automates some of the toil around this form, such as filling out basic information, checking the right boxes, and optionally including additional PDF files as evidence (e.g. the related job posting without pay range information).

The output is a single PDF which can be dropped into WA L&I's secure file upload.

Prerequisites

epoa-tools depends on pdftk for filling out forms and joining pages.

On Debian / Ubuntu, install with:

sudo apt install pdftk-java

Installation

epoa-tools is available on PyPI:

pip install epoa-tools

Usage

Save a PDF file with evidence of the violation (e.g. job ad or recruiter email). Browsers can print or save web pages as PDFs.

Then, use epoa-job-ad to complete the complaint form, attaching your evidence file:

epoa-job-ad \
    --name "John Q. Public" --email john.q.public@example.com \
    "ACME Anti-Pay Ranges, Inc." \
    saved_job_ad.pdf

To file anonymously, omit the --name argument. The complainant name on the form will be listed as Anonymous and the signature line will contain Anonymous (your.email.address@example.com):

epoa-job-ad \
    --email anon.e.mouse@example.com \
    "ACME Anti-Pay Ranges, Inc." \
    saved_job_ad.pdf

Optionally include additional information text about your complaint with the -i / --addinfo / --additional-information option:

epoa-job-ad \
    --email anon.e.mouse@example.com \
    "ACME Anti-Pay Ranges, Inc." \
    saved_job_ad.pdf \
    -i "This job ad is public, contains specific job requirements for a job in WA, but lists no pay range"

Word(s) can be redacted from evidence file attachments on a best effort basis:

epoa-job-ad \
    --email anon.e.mouse@example.com \
    "ACME Anti-Pay Ranges, Inc." \
    saved_job_ad.pdf \
    -r remove_this_word -r also_remove_this_word

Each of these examples creates a file such as john-q-public-acme-anti-pay-ranges-inc-20230101-pay-transparency-complaint.pdf which can then be uploaded to WA L&I.

Development

Poetry installation

Via pipx:

pip install pipx
pipx install poetry
pipx inject poetry poetry-dynamic-versioning poetry-pre-commit-plugin

Via pip:

pip install poetry
poetry self add poetry-dynamic-versioning poetry-pre-commit-plugin

Development tasks

  • Setup: poetry install
  • Run static checks: poetry run poe lint or poetry run pre-commit run --all-files
  • Run static checks and tests: poetry run poe test

Created from smkent/cookie-python using cookiecutter