divapply 0.4.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- divapply-0.4.2/.env.example +22 -0
- divapply-0.4.2/.github/workflows/ci.yml +29 -0
- divapply-0.4.2/.github/workflows/publish.yml +38 -0
- divapply-0.4.2/.gitignore +51 -0
- divapply-0.4.2/AI_ASSISTANCE.md +7 -0
- divapply-0.4.2/CHANGELOG.md +28 -0
- divapply-0.4.2/CONTRIBUTING.md +24 -0
- divapply-0.4.2/LICENSE +661 -0
- divapply-0.4.2/MIGRATION_CHECKLIST.md +43 -0
- divapply-0.4.2/PKG-INFO +278 -0
- divapply-0.4.2/PUBLISHING.md +54 -0
- divapply-0.4.2/README.md +231 -0
- divapply-0.4.2/install.cmd +6 -0
- divapply-0.4.2/install.ps1 +41 -0
- divapply-0.4.2/install.sh +169 -0
- divapply-0.4.2/profile.example.json +61 -0
- divapply-0.4.2/pyproject.toml +73 -0
- divapply-0.4.2/src/divapply/__init__.py +3 -0
- divapply-0.4.2/src/divapply/__main__.py +5 -0
- divapply-0.4.2/src/divapply/apply/__init__.py +1 -0
- divapply-0.4.2/src/divapply/apply/chrome.py +360 -0
- divapply-0.4.2/src/divapply/apply/dashboard.py +203 -0
- divapply-0.4.2/src/divapply/apply/launcher.py +1404 -0
- divapply-0.4.2/src/divapply/apply/prompt.py +942 -0
- divapply-0.4.2/src/divapply/cli.py +765 -0
- divapply-0.4.2/src/divapply/config/coursework.seed.json +560 -0
- divapply-0.4.2/src/divapply/config/employers.yaml +31 -0
- divapply-0.4.2/src/divapply/config/searches.example.yaml +113 -0
- divapply-0.4.2/src/divapply/config/sites.yaml +107 -0
- divapply-0.4.2/src/divapply/config.py +445 -0
- divapply-0.4.2/src/divapply/database.py +635 -0
- divapply-0.4.2/src/divapply/discovery/__init__.py +0 -0
- divapply-0.4.2/src/divapply/discovery/jobspy.py +557 -0
- divapply-0.4.2/src/divapply/discovery/smartextract.py +1268 -0
- divapply-0.4.2/src/divapply/discovery/workday.py +575 -0
- divapply-0.4.2/src/divapply/enrichment/__init__.py +0 -0
- divapply-0.4.2/src/divapply/enrichment/detail.py +1003 -0
- divapply-0.4.2/src/divapply/llm.py +367 -0
- divapply-0.4.2/src/divapply/pipeline.py +551 -0
- divapply-0.4.2/src/divapply/scoring/__init__.py +1 -0
- divapply-0.4.2/src/divapply/scoring/cover_letter.py +337 -0
- divapply-0.4.2/src/divapply/scoring/pdf.py +789 -0
- divapply-0.4.2/src/divapply/scoring/scorer.py +230 -0
- divapply-0.4.2/src/divapply/scoring/tailor.py +800 -0
- divapply-0.4.2/src/divapply/scoring/ultimate.py +214 -0
- divapply-0.4.2/src/divapply/scoring/validator.py +374 -0
- divapply-0.4.2/src/divapply/social.py +1324 -0
- divapply-0.4.2/src/divapply/view.py +407 -0
- divapply-0.4.2/src/divapply/wizard/__init__.py +0 -0
- divapply-0.4.2/src/divapply/wizard/init.py +396 -0
- divapply-0.4.2/tests/test_migration.py +53 -0
- divapply-0.4.2/tests/test_tier.py +67 -0
- divapply-0.4.2/tools/bootstrap.ps1 +250 -0
- divapply-0.4.2/tools/extract_transcript.ps1 +43 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# DivApply environment configuration
|
|
2
|
+
# Copy to ~/.divapply/.env and fill in your values.
|
|
3
|
+
|
|
4
|
+
# AI-assisted stages: use one provider.
|
|
5
|
+
GEMINI_API_KEY=
|
|
6
|
+
OPENAI_API_KEY=
|
|
7
|
+
LLM_URL=
|
|
8
|
+
|
|
9
|
+
# Default model. Gemini is the easiest free-tier starting point.
|
|
10
|
+
LLM_MODEL=gemini-2.0-flash
|
|
11
|
+
|
|
12
|
+
# Optional per-stage model overrides.
|
|
13
|
+
LLM_MODEL_SCORE=
|
|
14
|
+
LLM_MODEL_TAILOR=
|
|
15
|
+
LLM_MODEL_COVER=
|
|
16
|
+
LLM_MODEL_APPLY=
|
|
17
|
+
|
|
18
|
+
# Optional browser / automation settings
|
|
19
|
+
DIVAPPLY_APPLY_BACKEND=
|
|
20
|
+
DIVAPPLY_BROWSER=firefox
|
|
21
|
+
CHROME_PATH=
|
|
22
|
+
CAPSOLVER_API_KEY=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch: # manual trigger only
|
|
5
|
+
|
|
6
|
+
jobs:
|
|
7
|
+
test:
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
strategy:
|
|
10
|
+
matrix:
|
|
11
|
+
python-version: ["3.11", "3.12", "3.13"]
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- name: Checkout
|
|
15
|
+
uses: actions/checkout@v4
|
|
16
|
+
|
|
17
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
18
|
+
uses: actions/setup-python@v5
|
|
19
|
+
with:
|
|
20
|
+
python-version: ${{ matrix.python-version }}
|
|
21
|
+
|
|
22
|
+
- name: Install dependencies
|
|
23
|
+
run: pip install -e ".[dev]"
|
|
24
|
+
|
|
25
|
+
- name: Lint
|
|
26
|
+
run: ruff check src/
|
|
27
|
+
|
|
28
|
+
- name: Test
|
|
29
|
+
run: pytest tests/ -v
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
publish:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
environment:
|
|
13
|
+
name: pypi
|
|
14
|
+
url: https://pypi.org/p/divapply
|
|
15
|
+
permissions:
|
|
16
|
+
contents: read
|
|
17
|
+
id-token: write
|
|
18
|
+
|
|
19
|
+
steps:
|
|
20
|
+
- name: Checkout
|
|
21
|
+
uses: actions/checkout@v4
|
|
22
|
+
|
|
23
|
+
- name: Set up Python
|
|
24
|
+
uses: actions/setup-python@v5
|
|
25
|
+
with:
|
|
26
|
+
python-version: "3.12"
|
|
27
|
+
|
|
28
|
+
- name: Install build tools
|
|
29
|
+
run: python -m pip install --upgrade build twine
|
|
30
|
+
|
|
31
|
+
- name: Build package
|
|
32
|
+
run: python -m build
|
|
33
|
+
|
|
34
|
+
- name: Check package metadata
|
|
35
|
+
run: python -m twine check dist/*
|
|
36
|
+
|
|
37
|
+
- name: Publish package to PyPI
|
|
38
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# User data (NEVER commit)
|
|
2
|
+
profile.json
|
|
3
|
+
resume.txt
|
|
4
|
+
resume.pdf
|
|
5
|
+
*.env
|
|
6
|
+
.env.*
|
|
7
|
+
!.env.example
|
|
8
|
+
|
|
9
|
+
# Runtime artifacts
|
|
10
|
+
*.db
|
|
11
|
+
tailored_resumes/
|
|
12
|
+
cover_letters/
|
|
13
|
+
chrome-workers/
|
|
14
|
+
apply-workers/
|
|
15
|
+
apply_logs/
|
|
16
|
+
logs/
|
|
17
|
+
.venv/
|
|
18
|
+
.vendor/
|
|
19
|
+
academic_progress.txt
|
|
20
|
+
tmcc_transcript.txt
|
|
21
|
+
unr_transcript.txt
|
|
22
|
+
base_import_test.txt
|
|
23
|
+
base_py_test.txt
|
|
24
|
+
module_check.json
|
|
25
|
+
pipeline_result.json
|
|
26
|
+
test_pipeline.py
|
|
27
|
+
|
|
28
|
+
# MCP configs (per-machine)
|
|
29
|
+
.mcp*.json
|
|
30
|
+
|
|
31
|
+
# Python
|
|
32
|
+
__pycache__/
|
|
33
|
+
*.py[cod]
|
|
34
|
+
*$py.class
|
|
35
|
+
*.egg-info/
|
|
36
|
+
dist/
|
|
37
|
+
build/
|
|
38
|
+
*.egg
|
|
39
|
+
|
|
40
|
+
# IDE
|
|
41
|
+
.vscode/
|
|
42
|
+
.idea/
|
|
43
|
+
*.swp
|
|
44
|
+
*.swo
|
|
45
|
+
|
|
46
|
+
# OS
|
|
47
|
+
.DS_Store
|
|
48
|
+
Thumbs.db
|
|
49
|
+
|
|
50
|
+
# Claude Code
|
|
51
|
+
.claude/
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# AI Assistance Disclosure
|
|
2
|
+
|
|
3
|
+
DivApply contains code that was developed with help from OpenAI Codex and then reviewed and adapted by the repository owner.
|
|
4
|
+
|
|
5
|
+
The project is intentionally transparent about that history. Codex-assisted work was used to help with implementation, refactoring, and documentation, but the repository owner remains responsible for the final code and its behavior.
|
|
6
|
+
|
|
7
|
+
If you contribute changes, please keep that same standard of review and accountability: Codex-assisted work is welcome, but it should be checked carefully before merge or release.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to DivApply will be documented here.
|
|
4
|
+
|
|
5
|
+
## 0.4.0
|
|
6
|
+
|
|
7
|
+
- Renamed the project from ApplyPilot to DivApply.
|
|
8
|
+
- Moved the Python package to `src/divapply/`.
|
|
9
|
+
- Kept the public CLI entry point as `divapply`.
|
|
10
|
+
- Added a Windows bootstrap install flow for fresh GitHub clones.
|
|
11
|
+
- Added legacy migration support for previous `~/.applypilot` data.
|
|
12
|
+
- Added hidden coursework storage for profile matching.
|
|
13
|
+
- Added one-page resume shaping and tighter PDF layout defaults.
|
|
14
|
+
|
|
15
|
+
## 0.4.1
|
|
16
|
+
|
|
17
|
+
- Fixed the GitHub Actions PyPI publish workflow so it requests repository contents access before checkout.
|
|
18
|
+
- Kept the DivApply release/docs branding aligned with the Codex-assisted development disclosure.
|
|
19
|
+
|
|
20
|
+
## 0.4.2
|
|
21
|
+
|
|
22
|
+
- Added a PyPI trusted-publishing workflow for `pip install divapply` releases.
|
|
23
|
+
- Reworked the README around the simple pip-first install path.
|
|
24
|
+
- Kept the GitHub clone installers as fallback/development options.
|
|
25
|
+
|
|
26
|
+
## Unreleased
|
|
27
|
+
|
|
28
|
+
- Future work will continue under the DivApply branding.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Contributing to DivApply
|
|
2
|
+
|
|
3
|
+
Thanks for helping improve DivApply. This project is a Windows-first, AI-assisted job application pipeline, and changes should be checked carefully before merge.
|
|
4
|
+
|
|
5
|
+
## Local Setup
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
git clone https://github.com/InnitDivine/DivApply.git
|
|
9
|
+
cd DivApply
|
|
10
|
+
pip install -e ".[dev]"
|
|
11
|
+
divapply --version
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Repo Layout
|
|
15
|
+
|
|
16
|
+
- `src/divapply/` contains the Python package.
|
|
17
|
+
- `src/divapply/config/` contains shipped YAML config.
|
|
18
|
+
- `README.md` documents the public workflow.
|
|
19
|
+
|
|
20
|
+
## Contributing Notes
|
|
21
|
+
|
|
22
|
+
- Keep the public CLI and docs aligned with DivApply.
|
|
23
|
+
- Prefer small, reviewable changes.
|
|
24
|
+
- If you use AI-assisted code generation, review the result before commit.
|