atsfill 0.0.8.dev221__tar.gz → 0.0.8.dev223__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.
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/PKG-INFO +1 -1
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/pyproject.toml +1 -1
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/pyproject.toml.orig +1 -1
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/hrmdirect.py +1 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/recruiterflow.py +1 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/taleo.py +1 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/workday.py +1 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/core/adapter.py +8 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/LICENSE +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/README.md +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/__init__.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/__init__.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/adp.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/adpmyjobs.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/ashby.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/bamboohr.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/breezy.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/dayforce.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/eightfold.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/greenhouse.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/gupy.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/hireology.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/hiringthing.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/isolvedhire.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/jazzhr.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/jobaffinity.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/jobstreet.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/join.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/lever.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/manatal.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/oracle.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/paycor.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/paylocity.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/personio.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/phenom.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/pinpoint.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/recruitee.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/rippling.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/smartrecruiters.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/successfactors.js +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/successfactors.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/teamtailor.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/ukg.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/welcomekit.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/wellfound.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/werecruit.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/workable.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/workatastartup.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/wttj.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/adapters/zohorecruit.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/cli.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/core/__init__.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/core/accounts.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/core/attempts.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/core/browser.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/core/commands.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/core/conditions.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/core/countries.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/core/html.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/core/matching.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/core/otp.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/core/passwords.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/core/paths.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/core/registry.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/core/results.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/core/snapshot.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/core/telemetry.py +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/py.typed +0 -0
- {atsfill-0.0.8.dev221 → atsfill-0.0.8.dev223}/src/atsfill/registry.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: atsfill
|
|
3
|
-
Version: 0.0.8.
|
|
3
|
+
Version: 0.0.8.dev223
|
|
4
4
|
Summary: Read, dry-run and submit job application forms on hiring systems: Ashby, Greenhouse, Teamtailor, Welcome to the Jungle.
|
|
5
5
|
Keywords: job-applications,ats,ashby,greenhouse,teamtailor,ai-agents,cli
|
|
6
6
|
Author: shbernal
|
|
@@ -95,6 +95,7 @@ _FIELDS = """form => [...form.querySelectorAll('.form-field')].flatMap(f => {
|
|
|
95
95
|
|
|
96
96
|
class HRMDirect:
|
|
97
97
|
name = "hrmdirect"
|
|
98
|
+
lists_every_field = "the fill stops on a field the read did not list, page by page"
|
|
98
99
|
per_employer = True
|
|
99
100
|
asks = {"name"}
|
|
100
101
|
known_gaps = {"screening_first": Gap.FLOW}
|
|
@@ -116,6 +116,7 @@ class _Control:
|
|
|
116
116
|
|
|
117
117
|
class Recruiterflow:
|
|
118
118
|
name = "recruiterflow"
|
|
119
|
+
lists_every_field = "the page's JSON holds every field whatever the answers"
|
|
119
120
|
known_gaps: dict[str, Gap] = {}
|
|
120
121
|
filters = ["recruiterflow.com##.rf-careers-cookie-banner-container"] # over the questions
|
|
121
122
|
side_effects = [
|
|
@@ -208,6 +208,7 @@ def posting(url: str) -> Posting | None:
|
|
|
208
208
|
|
|
209
209
|
class Taleo:
|
|
210
210
|
name = "taleo"
|
|
211
|
+
lists_every_field = "the fill stops on a field the read did not list, page by page"
|
|
211
212
|
per_employer = True
|
|
212
213
|
asks: set[str] = set()
|
|
213
214
|
known_gaps = {LOCATION_GAP: Gap.RENDERING, DATE_PICKER_GAP: Gap.RENDERING}
|
|
@@ -194,6 +194,7 @@ def _profile_hosts(request: Request, scope: str | None) -> list[str]:
|
|
|
194
194
|
|
|
195
195
|
class Workday:
|
|
196
196
|
name = "workday"
|
|
197
|
+
lists_every_field = "the fill stops on a field the read did not list, page by page"
|
|
197
198
|
per_employer = True
|
|
198
199
|
asks: set[str] = set()
|
|
199
200
|
known_gaps = {
|
|
@@ -325,3 +325,11 @@ class ListsShownFields(Adapter, Protocol):
|
|
|
325
325
|
def shown_fields(self, page: Page) -> list[str]:
|
|
326
326
|
"""The ids of the fields the filled page shows, each as `browser_read` would name it."""
|
|
327
327
|
...
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
@runtime_checkable
|
|
331
|
+
class ListsEveryField(Adapter, Protocol):
|
|
332
|
+
"""An adapter that is neither `ListsShownFields` nor `RevealsFields`: it says why no field
|
|
333
|
+
can appear after a read, or how it checks for one itself (ADR 0005)."""
|
|
334
|
+
|
|
335
|
+
lists_every_field: str
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|