atsfill 0.0.4.dev52__tar.gz → 0.0.4.dev53__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.4.dev52 → atsfill-0.0.4.dev53}/PKG-INFO +1 -1
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/pyproject.toml +1 -1
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/pyproject.toml.orig +1 -1
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/adapters/ashby.py +7 -5
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/LICENSE +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/README.md +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/__init__.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/adapters/__init__.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/adapters/bamboohr.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/adapters/breezy.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/adapters/dayforce.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/adapters/greenhouse.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/adapters/hireology.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/adapters/jazzhr.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/adapters/lever.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/adapters/manatal.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/adapters/oracle.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/adapters/paycor.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/adapters/paylocity.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/adapters/phenom.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/adapters/recruitee.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/adapters/smartrecruiters.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/adapters/teamtailor.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/adapters/workable.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/adapters/wttj.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/cli.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/core/__init__.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/core/accounts.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/core/adapter.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/core/attempts.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/core/browser.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/core/commands.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/core/matching.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/core/paths.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/core/registry.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/core/results.py +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/py.typed +0 -0
- {atsfill-0.0.4.dev52 → atsfill-0.0.4.dev53}/src/atsfill/registry.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: atsfill
|
|
3
|
-
Version: 0.0.4.
|
|
3
|
+
Version: 0.0.4.dev53
|
|
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
|
|
@@ -12,6 +12,7 @@ from functools import partial
|
|
|
12
12
|
from typing import Any
|
|
13
13
|
from urllib.parse import parse_qs, urlsplit
|
|
14
14
|
|
|
15
|
+
from atsfill.core import browser
|
|
15
16
|
from atsfill.core.adapter import Blocked, Gap, Unsupported, known_gap
|
|
16
17
|
from atsfill.core.browser import HTTP_TIMEOUT_S, Page, Response, Timeout
|
|
17
18
|
from atsfill.core.results import Answer, Field, FieldType, SideEffect
|
|
@@ -152,16 +153,17 @@ class Ashby:
|
|
|
152
153
|
case FieldType.CHOICE, str() if entry.locator("input[role=combobox]").count():
|
|
153
154
|
entry.locator("input[role=combobox]").fill(answer)
|
|
154
155
|
option = page.get_by_role("option", name=answer, exact=True)
|
|
155
|
-
self._saved(page,
|
|
156
|
+
self._saved(page, partial(browser.click, option))
|
|
156
157
|
case FieldType.CHOICE, str():
|
|
157
|
-
self._saved(page, entry.get_by_text(answer, exact=True)
|
|
158
|
+
self._saved(page, partial(browser.click, entry.get_by_text(answer, exact=True)))
|
|
158
159
|
case FieldType.MULTI_CHOICE, list():
|
|
159
160
|
for value in answer:
|
|
160
|
-
|
|
161
|
+
choice = entry.get_by_text(value, exact=True)
|
|
162
|
+
self._saved(page, partial(browser.click, choice))
|
|
161
163
|
case FieldType.TYPEAHEAD, str():
|
|
162
164
|
entry.locator("input[role=combobox]").fill(answer)
|
|
163
165
|
option = page.get_by_role("option").filter(has_text=answer).first
|
|
164
|
-
self._saved(page,
|
|
166
|
+
self._saved(page, partial(browser.click, option))
|
|
165
167
|
case FieldType.FILE, str():
|
|
166
168
|
upload = entry.locator("input[type=file]")
|
|
167
169
|
self._saved(page, partial(upload.set_input_files, answer))
|
|
@@ -201,7 +203,7 @@ class Ashby:
|
|
|
201
203
|
lambda r: _op(r).startswith("ApiSubmit") and _op(r).endswith("Action"),
|
|
202
204
|
timeout=SUBMIT_TIMEOUT_MS,
|
|
203
205
|
) as submitted:
|
|
204
|
-
page.locator(".ashby-application-form-submit-button")
|
|
206
|
+
browser.click(page.locator(".ashby-application-form-submit-button"))
|
|
205
207
|
response = submitted.value
|
|
206
208
|
text = response.text()
|
|
207
209
|
if "RECAPTCHA_SCORE_BELOW_THRESHOLD" in text or "spam" in text.lower():
|
|
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
|