linkedin-apply-assistant 0.1.1
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.
- package/.github/ISSUE_TEMPLATE/bug_report.yml +72 -0
- package/.github/ISSUE_TEMPLATE/config.yml +5 -0
- package/.github/ISSUE_TEMPLATE/config_help.yml +49 -0
- package/.github/ISSUE_TEMPLATE/docs.yml +40 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +45 -0
- package/.github/ISSUE_TEMPLATE/safety_compliance.yml +48 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +43 -0
- package/CHANGELOG.md +47 -0
- package/CODE_OF_CONDUCT.md +47 -0
- package/CONTRIBUTING.md +64 -0
- package/GOVERNANCE.md +41 -0
- package/LEGAL.md +38 -0
- package/LICENSE +22 -0
- package/MIGRATION.md +50 -0
- package/README.md +167 -0
- package/RELEASE_CHECKLIST.md +454 -0
- package/SAFETY.md +33 -0
- package/SECURITY.md +37 -0
- package/SUPPORT.md +44 -0
- package/THIRD_PARTY_NOTICES.md +67 -0
- package/bin/linkedin-apply-assistant.mjs +95 -0
- package/configs/config.example.yml +24 -0
- package/configs/qa_bank.example.yml +35 -0
- package/docs/apply.md +40 -0
- package/docs/assist.md +35 -0
- package/docs/browser-session.md +45 -0
- package/docs/ci-and-release-policy.md +105 -0
- package/docs/commands.md +176 -0
- package/docs/install-and-configuration.md +265 -0
- package/docs/registry-publication-strategy.md +169 -0
- package/docs/reports.md +35 -0
- package/docs/search.md +39 -0
- package/docs/troubleshooting.md +57 -0
- package/examples/dry_run_input.example.json +25 -0
- package/examples/reports/apply-audit.example.json +31 -0
- package/examples/reports/search-report.example.json +40 -0
- package/install.ps1 +178 -0
- package/package.json +59 -0
- package/pyproject.toml +51 -0
- package/src/linkedin_apply_assistant/__init__.py +8 -0
- package/src/linkedin_apply_assistant/apply_reports.py +229 -0
- package/src/linkedin_apply_assistant/ats_handlers.py +217 -0
- package/src/linkedin_apply_assistant/browser_sessions.py +155 -0
- package/src/linkedin_apply_assistant/cli.py +570 -0
- package/src/linkedin_apply_assistant/config.py +109 -0
- package/src/linkedin_apply_assistant/contracts.py +255 -0
- package/src/linkedin_apply_assistant/form_engine.py +180 -0
- package/src/linkedin_apply_assistant/linkedin_layer.py +436 -0
- package/src/linkedin_apply_assistant/page_actions.py +110 -0
- package/src/linkedin_apply_assistant/page_selectors.py +88 -0
- package/src/linkedin_apply_assistant/paths.py +135 -0
- package/src/linkedin_apply_assistant/qa_bank.py +352 -0
- package/src/linkedin_apply_assistant/redaction.py +119 -0
- package/src/linkedin_apply_assistant/safety.py +230 -0
- package/src/linkedin_apply_assistant/workflows.py +435 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
name: Bug report
|
|
2
|
+
description: Report a reproducible package issue with sanitized details.
|
|
3
|
+
title: "[Bug]: "
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
Thanks for reporting a bug.
|
|
9
|
+
|
|
10
|
+
Do not post credentials, cookies, browser profiles, screenshots, CVs, private documents, generated local reports, full private URLs, or live job history.
|
|
11
|
+
- type: textarea
|
|
12
|
+
id: command
|
|
13
|
+
attributes:
|
|
14
|
+
label: Sanitized command
|
|
15
|
+
description: Paste the command after removing private paths and values.
|
|
16
|
+
placeholder: linkedin-apply-assistant config check
|
|
17
|
+
validations:
|
|
18
|
+
required: true
|
|
19
|
+
- type: textarea
|
|
20
|
+
id: reproduction
|
|
21
|
+
attributes:
|
|
22
|
+
label: Minimal reproduction steps
|
|
23
|
+
description: List the smallest steps that reproduce the issue.
|
|
24
|
+
validations:
|
|
25
|
+
required: true
|
|
26
|
+
- type: textarea
|
|
27
|
+
id: expected
|
|
28
|
+
attributes:
|
|
29
|
+
label: Expected result
|
|
30
|
+
validations:
|
|
31
|
+
required: true
|
|
32
|
+
- type: textarea
|
|
33
|
+
id: actual
|
|
34
|
+
attributes:
|
|
35
|
+
label: Actual result
|
|
36
|
+
validations:
|
|
37
|
+
required: true
|
|
38
|
+
- type: input
|
|
39
|
+
id: workflow
|
|
40
|
+
attributes:
|
|
41
|
+
label: Affected workflow
|
|
42
|
+
placeholder: config, search, assist, apply, dry-run, report
|
|
43
|
+
validations:
|
|
44
|
+
required: true
|
|
45
|
+
- type: input
|
|
46
|
+
id: os
|
|
47
|
+
attributes:
|
|
48
|
+
label: Operating system
|
|
49
|
+
placeholder: Windows 11, macOS, Ubuntu
|
|
50
|
+
validations:
|
|
51
|
+
required: true
|
|
52
|
+
- type: input
|
|
53
|
+
id: python
|
|
54
|
+
attributes:
|
|
55
|
+
label: Python version
|
|
56
|
+
placeholder: Python 3.11.9
|
|
57
|
+
validations:
|
|
58
|
+
required: true
|
|
59
|
+
- type: input
|
|
60
|
+
id: package
|
|
61
|
+
attributes:
|
|
62
|
+
label: Package version or source commit
|
|
63
|
+
placeholder: 0.1.0 or commit SHA
|
|
64
|
+
validations:
|
|
65
|
+
required: true
|
|
66
|
+
- type: checkboxes
|
|
67
|
+
id: private_data
|
|
68
|
+
attributes:
|
|
69
|
+
label: Private data removed
|
|
70
|
+
options:
|
|
71
|
+
- label: I removed credentials, cookies, browser profiles, screenshots, CVs, private documents, generated local reports, full private URLs, and live job history.
|
|
72
|
+
required: true
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
name: Config or setup help
|
|
2
|
+
description: Ask for setup help with sanitized local details.
|
|
3
|
+
title: "[Config]: "
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
Do not attach .env files, real config files, Q&A banks, browser profiles, cookies, screenshots, CVs, private documents, generated local reports, full private URLs, or live job history.
|
|
9
|
+
- type: textarea
|
|
10
|
+
id: question
|
|
11
|
+
attributes:
|
|
12
|
+
label: Sanitized setup question
|
|
13
|
+
validations:
|
|
14
|
+
required: true
|
|
15
|
+
- type: input
|
|
16
|
+
id: os
|
|
17
|
+
attributes:
|
|
18
|
+
label: Operating system
|
|
19
|
+
placeholder: Windows 11, macOS, Ubuntu
|
|
20
|
+
validations:
|
|
21
|
+
required: true
|
|
22
|
+
- type: input
|
|
23
|
+
id: install_path
|
|
24
|
+
attributes:
|
|
25
|
+
label: Install path used
|
|
26
|
+
placeholder: source checkout, editable install, pipx, npm launcher
|
|
27
|
+
validations:
|
|
28
|
+
required: true
|
|
29
|
+
- type: textarea
|
|
30
|
+
id: command
|
|
31
|
+
attributes:
|
|
32
|
+
label: Command run
|
|
33
|
+
placeholder: linkedin-apply-assistant config check
|
|
34
|
+
validations:
|
|
35
|
+
required: true
|
|
36
|
+
- type: textarea
|
|
37
|
+
id: redacted_config
|
|
38
|
+
attributes:
|
|
39
|
+
label: Redacted config shape or error text
|
|
40
|
+
description: Paste only sanitized keys, paths, and error text.
|
|
41
|
+
validations:
|
|
42
|
+
required: true
|
|
43
|
+
- type: checkboxes
|
|
44
|
+
id: private_data
|
|
45
|
+
attributes:
|
|
46
|
+
label: Private runtime data removed
|
|
47
|
+
options:
|
|
48
|
+
- label: I removed private runtime data, credentials, cookies, browser profiles, screenshots, CVs, private documents, generated local reports, full private URLs, and live job history.
|
|
49
|
+
required: true
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
name: Documentation issue
|
|
2
|
+
description: Report confusing, missing, or stale documentation.
|
|
3
|
+
title: "[Docs]: "
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
Do not attach private screenshots, generated local reports, CVs, private documents, full private URLs, credentials, cookies, browser profiles, or live job history.
|
|
9
|
+
- type: input
|
|
10
|
+
id: page
|
|
11
|
+
attributes:
|
|
12
|
+
label: Affected page or link
|
|
13
|
+
placeholder: README.md, docs/install-and-configuration.md, docs/troubleshooting.md
|
|
14
|
+
validations:
|
|
15
|
+
required: true
|
|
16
|
+
- type: textarea
|
|
17
|
+
id: stale_text
|
|
18
|
+
attributes:
|
|
19
|
+
label: Confusing, missing, or stale text
|
|
20
|
+
validations:
|
|
21
|
+
required: true
|
|
22
|
+
- type: textarea
|
|
23
|
+
id: correction
|
|
24
|
+
attributes:
|
|
25
|
+
label: Suggested correction
|
|
26
|
+
validations:
|
|
27
|
+
required: true
|
|
28
|
+
- type: dropdown
|
|
29
|
+
id: area
|
|
30
|
+
attributes:
|
|
31
|
+
label: Affected documentation area
|
|
32
|
+
options:
|
|
33
|
+
- Install
|
|
34
|
+
- Safety
|
|
35
|
+
- Legal
|
|
36
|
+
- Troubleshooting
|
|
37
|
+
- Command reference
|
|
38
|
+
- Other
|
|
39
|
+
validations:
|
|
40
|
+
required: true
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
name: Feature request
|
|
2
|
+
description: Propose a package improvement with safety and privacy context.
|
|
3
|
+
title: "[Feature]: "
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
Feature requests must preserve the no-submit boundary.
|
|
9
|
+
|
|
10
|
+
Do not request unattended or background submission, hidden submission, CAPTCHA or MFA bypass, fake answers, platform throttling bypass, or mass applications.
|
|
11
|
+
|
|
12
|
+
Do not post credentials, cookies, browser profiles, screenshots, CVs, private documents, generated local reports, full private URLs, or live job history.
|
|
13
|
+
- type: textarea
|
|
14
|
+
id: problem
|
|
15
|
+
attributes:
|
|
16
|
+
label: Problem
|
|
17
|
+
description: What user problem would this solve?
|
|
18
|
+
validations:
|
|
19
|
+
required: true
|
|
20
|
+
- type: textarea
|
|
21
|
+
id: proposed_behavior
|
|
22
|
+
attributes:
|
|
23
|
+
label: Proposed behavior
|
|
24
|
+
validations:
|
|
25
|
+
required: true
|
|
26
|
+
- type: input
|
|
27
|
+
id: workflow
|
|
28
|
+
attributes:
|
|
29
|
+
label: Affected workflow
|
|
30
|
+
placeholder: config, search, assist, apply, dry-run, report, docs
|
|
31
|
+
validations:
|
|
32
|
+
required: true
|
|
33
|
+
- type: textarea
|
|
34
|
+
id: safety_privacy
|
|
35
|
+
attributes:
|
|
36
|
+
label: Safety/privacy impact
|
|
37
|
+
description: Explain how the change preserves no-submit behavior and avoids private runtime data.
|
|
38
|
+
validations:
|
|
39
|
+
required: true
|
|
40
|
+
- type: textarea
|
|
41
|
+
id: alternatives
|
|
42
|
+
attributes:
|
|
43
|
+
label: Alternatives considered
|
|
44
|
+
validations:
|
|
45
|
+
required: true
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
name: Safety or compliance concern
|
|
2
|
+
description: Report a public safety concern without exploit details.
|
|
3
|
+
title: "[Safety]: "
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
Use this form only for public safety or compliance concerns that can be described without exploit details.
|
|
9
|
+
|
|
10
|
+
If the concern involves a vulnerability or exploit details, stop here and follow SECURITY.md private reporting guidance instead.
|
|
11
|
+
|
|
12
|
+
Do not post exploit details, credentials, cookies, browser profiles, screenshots, CVs, private documents, generated local reports, full private URLs, or live job history.
|
|
13
|
+
- type: textarea
|
|
14
|
+
id: concern
|
|
15
|
+
attributes:
|
|
16
|
+
label: Public safety/compliance concern summary
|
|
17
|
+
validations:
|
|
18
|
+
required: true
|
|
19
|
+
- type: input
|
|
20
|
+
id: workflow
|
|
21
|
+
attributes:
|
|
22
|
+
label: Affected workflow or docs
|
|
23
|
+
placeholder: search, assist, apply, SAFETY.md, LEGAL.md
|
|
24
|
+
validations:
|
|
25
|
+
required: true
|
|
26
|
+
- type: textarea
|
|
27
|
+
id: safer_behavior
|
|
28
|
+
attributes:
|
|
29
|
+
label: Expected safer behavior
|
|
30
|
+
validations:
|
|
31
|
+
required: true
|
|
32
|
+
- type: dropdown
|
|
33
|
+
id: vulnerability
|
|
34
|
+
attributes:
|
|
35
|
+
label: Could this involve a vulnerability?
|
|
36
|
+
options:
|
|
37
|
+
- "No"
|
|
38
|
+
- "Unsure"
|
|
39
|
+
- "Yes - I will use SECURITY.md private reporting instead"
|
|
40
|
+
validations:
|
|
41
|
+
required: true
|
|
42
|
+
- type: checkboxes
|
|
43
|
+
id: disclosure
|
|
44
|
+
attributes:
|
|
45
|
+
label: Public disclosure check
|
|
46
|
+
options:
|
|
47
|
+
- label: I did not post exploit details or private data publicly.
|
|
48
|
+
required: true
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Summary
|
|
2
|
+
|
|
3
|
+
Describe what changed.
|
|
4
|
+
|
|
5
|
+
# Rationale
|
|
6
|
+
|
|
7
|
+
Explain why the change is needed.
|
|
8
|
+
|
|
9
|
+
# Linked Issue
|
|
10
|
+
|
|
11
|
+
Link the issue or explain why no issue exists.
|
|
12
|
+
|
|
13
|
+
# Safety And No-Submit Impact
|
|
14
|
+
|
|
15
|
+
- Does this preserve no-submit behavior?
|
|
16
|
+
- Does this avoid unattended/background sending?
|
|
17
|
+
- Does this avoid hidden submission, CAPTCHA or MFA bypass, fake answers, and
|
|
18
|
+
platform throttling bypass?
|
|
19
|
+
|
|
20
|
+
# Privacy-Sensitive File Check
|
|
21
|
+
|
|
22
|
+
- Does this avoid private runtime data?
|
|
23
|
+
- Does this avoid credentials, cookies, browser profiles, screenshots, CVs,
|
|
24
|
+
private documents, generated local reports, full private URLs, and live job
|
|
25
|
+
history?
|
|
26
|
+
|
|
27
|
+
# Documentation Impact
|
|
28
|
+
|
|
29
|
+
List docs changed or explain why docs were not needed.
|
|
30
|
+
|
|
31
|
+
# Tests Or Commands Run
|
|
32
|
+
|
|
33
|
+
List commands run and their results.
|
|
34
|
+
|
|
35
|
+
# Release/Package Surface Impact
|
|
36
|
+
|
|
37
|
+
- Are package manifest or npm files affected?
|
|
38
|
+
- Are release-manifest entries affected?
|
|
39
|
+
- Are docs/tests updated?
|
|
40
|
+
|
|
41
|
+
# Residual Risk
|
|
42
|
+
|
|
43
|
+
Name any remaining risk, skipped checks, or follow-up work.
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable package-local changes are documented here.
|
|
4
|
+
|
|
5
|
+
This file follows the spirit of Keep a Changelog and uses semantic version labels where available.
|
|
6
|
+
|
|
7
|
+
## [Unreleased]
|
|
8
|
+
|
|
9
|
+
## [0.1.1] - 2026-06-13
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Community health files and contribution templates for the standalone public
|
|
14
|
+
repository package surface.
|
|
15
|
+
- Registry publication strategy covering GitHub source releases, PyPI,
|
|
16
|
+
TestPyPI, npm launcher, PowerShell installer, and deferred GitHub Packages
|
|
17
|
+
channels.
|
|
18
|
+
- NPM global launcher release path for `linkedin-apply-assistant`.
|
|
19
|
+
- PowerShell no-admin installer that downloads the public GitHub source archive,
|
|
20
|
+
creates a local virtual environment, writes command shims, and can optionally
|
|
21
|
+
install Playwright Chromium.
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
- NPM package contents now include `pyproject.toml`, `src/`, and `install.ps1`
|
|
26
|
+
so the global launcher can point users at the bundled Python package.
|
|
27
|
+
|
|
28
|
+
## [0.1.0] - 2026-06-12
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
|
|
32
|
+
- Initial GitHub source release for the standalone `linkedin-apply-assistant` package.
|
|
33
|
+
- Fresh-reader package README and user-journey docs.
|
|
34
|
+
- Package-local legal, security, contribution, migration, release checklist, license, and third-party notice docs.
|
|
35
|
+
- Synthetic report examples and release-readiness verification coverage.
|
|
36
|
+
- Source, Python, and npm launcher install path readiness for local validation without registry publication.
|
|
37
|
+
- Distribution metadata, Python build, npm pack, and release-manifest smoke coverage for version `0.1.0`.
|
|
38
|
+
- Terminal help, read-only config diagnostics, command reference docs, and release-readiness coverage for Phase 21 terminal UX.
|
|
39
|
+
- Public GitHub metadata and release-readiness documentation for PUB-07.
|
|
40
|
+
- Initial standalone package boundary for local LinkedIn job workflows.
|
|
41
|
+
- Console command `linkedin-apply-assistant` with `search`, `assist`, `apply`, `dry-run`, and `report`.
|
|
42
|
+
- Sanitized config, Q&A bank, and dry-run input examples.
|
|
43
|
+
- Package-local quality gate with pytest, Ruff, compile checks, and dependency audit.
|
|
44
|
+
- No-submit safety posture and visible-browser workflow boundaries.
|
|
45
|
+
- User-controlled source install and download path through the canonical GitHub repository.
|
|
46
|
+
- Release hygiene covering manifest verification, local build/pack smoke tests, and gitleaks evidence.
|
|
47
|
+
- GitHub source release scope only; no npm, PyPI, or TestPyPI registry package is part of this release.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Code of Conduct
|
|
2
|
+
|
|
3
|
+
This code of conduct is based on Contributor Covenant 2.1 and adapted for the
|
|
4
|
+
LinkedIn-apply-assistant standalone package.
|
|
5
|
+
|
|
6
|
+
## Our Pledge
|
|
7
|
+
|
|
8
|
+
We aim to keep project spaces open, respectful, and focused on useful work.
|
|
9
|
+
Contributors are expected to participate without harassment, intimidation,
|
|
10
|
+
personal attacks, or discriminatory language.
|
|
11
|
+
|
|
12
|
+
## Expected Behavior
|
|
13
|
+
|
|
14
|
+
- Be respectful when reporting bugs, reviewing pull requests, and discussing
|
|
15
|
+
safety tradeoffs.
|
|
16
|
+
- Keep criticism technical and specific.
|
|
17
|
+
- Respect user privacy, local runtime data, and platform-responsibility
|
|
18
|
+
boundaries.
|
|
19
|
+
- Help maintain the package no-submit posture and user-controlled browser
|
|
20
|
+
workflow.
|
|
21
|
+
|
|
22
|
+
## Unacceptable Behavior
|
|
23
|
+
|
|
24
|
+
Unacceptable behavior includes harassment, threats, doxxing, sexualized
|
|
25
|
+
language or imagery, sustained disruption, deliberate disclosure of private
|
|
26
|
+
data, and attempts to pressure maintainers into unsafe submission, evasion, or
|
|
27
|
+
platform-abuse behavior.
|
|
28
|
+
|
|
29
|
+
## Reporting
|
|
30
|
+
|
|
31
|
+
Conduct reports should use a maintainer-private channel placeholder until a
|
|
32
|
+
dedicated private contact is configured. Do not open public issues for conduct
|
|
33
|
+
reports that name people, include private context, or require confidential
|
|
34
|
+
handling.
|
|
35
|
+
|
|
36
|
+
Reports will be reviewed as privately as practical. Maintainers may remove
|
|
37
|
+
content, warn participants, restrict participation, or take other proportionate
|
|
38
|
+
action to protect the project.
|
|
39
|
+
|
|
40
|
+
Do not post credentials, cookies, browser profiles, screenshots, CVs, private
|
|
41
|
+
documents, generated local reports, full private URLs, or live job history in
|
|
42
|
+
public issues, pull requests, or discussions.
|
|
43
|
+
|
|
44
|
+
## Attribution
|
|
45
|
+
|
|
46
|
+
Adapted from Contributor Covenant version 2.1:
|
|
47
|
+
<https://www.contributor-covenant.org/version/2/1/code_of_conduct/>.
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
Contributions should stay scoped to the standalone package under `standalone/linkedin-apply-assistant/`.
|
|
4
|
+
|
|
5
|
+
## Local Setup
|
|
6
|
+
|
|
7
|
+
```powershell
|
|
8
|
+
python -m pip install -e ".[dev]"
|
|
9
|
+
python scripts\quality.py
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
The current repository root smoke command is:
|
|
13
|
+
|
|
14
|
+
```powershell
|
|
15
|
+
node test-all.mjs --quick
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Contribution Rules
|
|
19
|
+
|
|
20
|
+
- Keep examples synthetic.
|
|
21
|
+
- Do not commit credentials, cookies, browser profiles, screenshots, CVs, private documents, generated local reports, full private URLs, or live job history.
|
|
22
|
+
- Preserve the no-submit default.
|
|
23
|
+
- Do not add broad approvals, background sending, hidden submission, or unattended apply behavior.
|
|
24
|
+
- Do not make claims that the package is legal advice, platform compliant, audit certified, or guaranteed to succeed.
|
|
25
|
+
- Keep public docs English-only until localization is explicitly planned.
|
|
26
|
+
|
|
27
|
+
## Community and Reporting
|
|
28
|
+
|
|
29
|
+
- Support and setup help start in [SUPPORT.md](SUPPORT.md).
|
|
30
|
+
- Governance decisions follow [GOVERNANCE.md](GOVERNANCE.md).
|
|
31
|
+
- Conduct expectations and private conduct reporting are in [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).
|
|
32
|
+
- Vulnerability reporting stays in [SECURITY.md](SECURITY.md); do not post exploit details publicly.
|
|
33
|
+
- Public reports should use [.github/ISSUE_TEMPLATE/](.github/ISSUE_TEMPLATE/).
|
|
34
|
+
- Pull requests should follow [.github/PULL_REQUEST_TEMPLATE.md](.github/PULL_REQUEST_TEMPLATE.md).
|
|
35
|
+
|
|
36
|
+
Issue and pull request templates are the expected public contribution path. Keep
|
|
37
|
+
private runtime data out of issues and pull requests.
|
|
38
|
+
|
|
39
|
+
## Tests and Quality
|
|
40
|
+
|
|
41
|
+
Run the package quality gate before proposing changes:
|
|
42
|
+
|
|
43
|
+
```powershell
|
|
44
|
+
python scripts\quality.py
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Focused package tests:
|
|
48
|
+
|
|
49
|
+
```powershell
|
|
50
|
+
python -m pytest tests -q
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Live LinkedIn or Scrapling tests are opt-in only and must stay out of default CI. Use `CAREER_OPS_RUN_LIVE_TESTS=1` only when you intentionally run live tests in a controlled local environment.
|
|
54
|
+
|
|
55
|
+
## Pull Requests
|
|
56
|
+
|
|
57
|
+
Include:
|
|
58
|
+
|
|
59
|
+
- what changed
|
|
60
|
+
- why it is safe for the no-submit boundary
|
|
61
|
+
- commands run
|
|
62
|
+
- any residual release risk
|
|
63
|
+
|
|
64
|
+
If you add docs or examples, update docs smoke, privacy scan, or release-readiness tests as needed.
|
package/GOVERNANCE.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Governance
|
|
2
|
+
|
|
3
|
+
LinkedIn-apply-assistant uses a maintainer-led / BDFL governance model for the
|
|
4
|
+
standalone package.
|
|
5
|
+
|
|
6
|
+
## Scope
|
|
7
|
+
|
|
8
|
+
This governance model covers:
|
|
9
|
+
|
|
10
|
+
- package source code
|
|
11
|
+
- public documentation
|
|
12
|
+
- automated tests
|
|
13
|
+
- release checklist and release manifest
|
|
14
|
+
- community health files and contribution templates
|
|
15
|
+
|
|
16
|
+
Repository settings, branch protection, Discussions, labels, topics, release
|
|
17
|
+
automation, provenance, and registry publication are later approved phases and
|
|
18
|
+
are not changed by this file.
|
|
19
|
+
|
|
20
|
+
## Contributor Ladder
|
|
21
|
+
|
|
22
|
+
- Participant: opens issues, asks support questions, or proposes improvements.
|
|
23
|
+
- Contributor: sends focused pull requests that preserve safety and privacy
|
|
24
|
+
boundaries.
|
|
25
|
+
- Triager: helps reproduce issues, route support requests, and identify missing
|
|
26
|
+
evidence.
|
|
27
|
+
- Reviewer: reviews pull requests for correctness, tests, documentation, and
|
|
28
|
+
no-submit safety impact.
|
|
29
|
+
- Maintainer: owns release readiness, final merge decisions, and governance
|
|
30
|
+
updates.
|
|
31
|
+
|
|
32
|
+
## Decision Process
|
|
33
|
+
|
|
34
|
+
Normal project work flows through public issues and pull requests. The
|
|
35
|
+
maintainer makes the final call when tradeoffs remain unresolved or a change
|
|
36
|
+
affects release scope, safety boundaries, or public package identity.
|
|
37
|
+
|
|
38
|
+
Security vulnerabilities and conduct reports are handled privately where
|
|
39
|
+
appropriate. Public discussion should avoid credentials, cookies, browser
|
|
40
|
+
profiles, screenshots, CVs, private documents, generated local reports, full
|
|
41
|
+
private URLs, live job history, and exploit details.
|
package/LEGAL.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Legal and Acceptable Use
|
|
2
|
+
|
|
3
|
+
LinkedIn-apply-assistant is an experimental local automation package for individual job-search assistance. It is not a hosted service, legal advisor, compliance product, or platform compliance certification.
|
|
4
|
+
|
|
5
|
+
## User Responsibility
|
|
6
|
+
|
|
7
|
+
You are responsible for:
|
|
8
|
+
|
|
9
|
+
- following platform terms and employer application rules
|
|
10
|
+
- reviewing every form and generated answer before relying on it
|
|
11
|
+
- stopping when a platform checkpoint, rate limit, MFA prompt, CAPTCHA, or other risk signal appears
|
|
12
|
+
- keeping local browser profiles, reports, and documents private
|
|
13
|
+
- using truthful answers and application materials
|
|
14
|
+
|
|
15
|
+
## Prohibited Uses
|
|
16
|
+
|
|
17
|
+
Do not use this package for:
|
|
18
|
+
|
|
19
|
+
- mass applications or spam-like recruiting workflows
|
|
20
|
+
- unattended apply sessions
|
|
21
|
+
- CAPTCHA or MFA bypass
|
|
22
|
+
- fake answers or guessed application responses
|
|
23
|
+
- unrelated personal-data scraping
|
|
24
|
+
- hidden or evasive automation
|
|
25
|
+
- continued automation after platform throttling, checkpoints, or similar risk signals
|
|
26
|
+
|
|
27
|
+
## No Legal Advice
|
|
28
|
+
|
|
29
|
+
This document is not legal advice. It does not interpret platform terms, employment law, privacy law, or local rules for your situation.
|
|
30
|
+
|
|
31
|
+
## No Compliance Certification
|
|
32
|
+
|
|
33
|
+
This package is not a compliance certification for GDPR, CCPA, SOC 2, LinkedIn terms, employer rules, or any other legal, platform, or audit framework.
|
|
34
|
+
|
|
35
|
+
## Submission Boundary
|
|
36
|
+
|
|
37
|
+
The public package is no-submit by default. Current `apply` behavior is prepare-only and audit-focused. Any future submit-capable behavior must require explicit per-submission confirmation immediately before a specific application is sent.
|
|
38
|
+
|
package/LICENSE
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 LinkedIn-apply-assistant contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
package/MIGRATION.md
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Migration and Provenance
|
|
2
|
+
|
|
3
|
+
LinkedIn-apply-assistant is a standalone extraction of local LinkedIn job-search and application-assistance code. It keeps the package surfaces needed for search-only, visible-browser assistive filling, prepare-only apply audits, dry runs, and local report review.
|
|
4
|
+
|
|
5
|
+
## What Moved
|
|
6
|
+
|
|
7
|
+
The standalone package contains:
|
|
8
|
+
|
|
9
|
+
- Python package metadata and console entry point
|
|
10
|
+
- importable automation modules
|
|
11
|
+
- package-local config and Q&A examples
|
|
12
|
+
- synthetic input and report examples
|
|
13
|
+
- package-local tests and quality gate
|
|
14
|
+
- public docs, safety, legal, contribution, security, changelog, license, and notice files
|
|
15
|
+
|
|
16
|
+
## What Stayed Behind
|
|
17
|
+
|
|
18
|
+
The standalone package intentionally excludes the broader Career-Ops ecosystem:
|
|
19
|
+
|
|
20
|
+
- evaluation modes and scoring prompts
|
|
21
|
+
- application tracker workflows
|
|
22
|
+
- portal scanning and batch processing scripts
|
|
23
|
+
- dashboard and updater logic
|
|
24
|
+
- CV generation
|
|
25
|
+
- generated reports and runtime output
|
|
26
|
+
- root agent workflow artifacts
|
|
27
|
+
- private user-layer data
|
|
28
|
+
|
|
29
|
+
Do not copy those root surfaces into the standalone package as required public setup.
|
|
30
|
+
|
|
31
|
+
## Runtime and Private Data Boundary
|
|
32
|
+
|
|
33
|
+
Keep these local and ignored:
|
|
34
|
+
|
|
35
|
+
- real config files
|
|
36
|
+
- real Q&A banks
|
|
37
|
+
- local workspace data
|
|
38
|
+
- visible-browser profiles
|
|
39
|
+
- generated outputs
|
|
40
|
+
- local reports
|
|
41
|
+
- private documents
|
|
42
|
+
|
|
43
|
+
Use the example files only as shape references. Do not publish browser state, credentials, private documents, full private URLs, screenshots, generated local reports, or live job history.
|
|
44
|
+
|
|
45
|
+
## Maintainer Notes
|
|
46
|
+
|
|
47
|
+
Career-Ops may appear in this package only for neutral attribution, provenance, migration, or notice context. Product identity belongs to LinkedIn-apply-assistant.
|
|
48
|
+
|
|
49
|
+
Scrapling is documented as a normal dependency and notice item. Do not describe it as a stealth, bypass, anti-detection, or product identity claim.
|
|
50
|
+
|