atsfill 0.0.4.dev80__tar.gz → 0.0.4.dev81__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.
Files changed (44) hide show
  1. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/PKG-INFO +1 -1
  2. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/pyproject.toml +1 -1
  3. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/pyproject.toml.orig +1 -1
  4. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/oracle.py +6 -6
  5. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/core/adapter.py +2 -2
  6. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/LICENSE +0 -0
  7. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/README.md +0 -0
  8. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/__init__.py +0 -0
  9. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/__init__.py +0 -0
  10. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/ashby.py +0 -0
  11. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/bamboohr.py +0 -0
  12. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/breezy.py +0 -0
  13. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/dayforce.py +0 -0
  14. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/eightfold.py +0 -0
  15. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/greenhouse.py +0 -0
  16. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/hireology.py +0 -0
  17. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/hiringthing.py +0 -0
  18. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/jazzhr.py +0 -0
  19. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/lever.py +0 -0
  20. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/manatal.py +0 -0
  21. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/paycor.py +0 -0
  22. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/paylocity.py +0 -0
  23. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/personio.py +0 -0
  24. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/phenom.py +0 -0
  25. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/pinpoint.py +0 -0
  26. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/recruitee.py +0 -0
  27. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/rippling.py +0 -0
  28. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/smartrecruiters.py +0 -0
  29. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/teamtailor.py +0 -0
  30. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/workable.py +0 -0
  31. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/wttj.py +0 -0
  32. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/adapters/zohorecruit.py +0 -0
  33. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/cli.py +0 -0
  34. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/core/__init__.py +0 -0
  35. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/core/accounts.py +0 -0
  36. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/core/attempts.py +0 -0
  37. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/core/browser.py +0 -0
  38. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/core/commands.py +0 -0
  39. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/core/matching.py +0 -0
  40. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/core/paths.py +0 -0
  41. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/core/registry.py +0 -0
  42. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/core/results.py +0 -0
  43. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/src/atsfill/py.typed +0 -0
  44. {atsfill-0.0.4.dev80 → atsfill-0.0.4.dev81}/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.dev80
3
+ Version: 0.0.4.dev81
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "atsfill"
3
- version = "0.0.4.dev80"
3
+ version = "0.0.4.dev81"
4
4
  description = "Read, dry-run and submit job application forms on hiring systems: Ashby, Greenhouse, Teamtailor, Welcome to the Jungle."
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "atsfill"
3
- version = "0.0.4.dev80"
3
+ version = "0.0.4.dev81"
4
4
  description = "Read, dry-run and submit job application forms on hiring systems: Ashby, Greenhouse, Teamtailor, Welcome to the Jungle."
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -2,7 +2,7 @@
2
2
  as docs/adapters/oracle.md observes.
3
3
 
4
4
  The form opens only past an email step, and an email the employer's Oracle already knows gets an
5
- emailed code instead. Reading passes the step with a throwaway address; filling starts over with
5
+ emailed OTP instead. Reading passes the step with a throwaway address; filling starts over with
6
6
  the answer's. Oracle keeps a draft of the application from then on, autosaved as fields change.
7
7
  """
8
8
 
@@ -31,7 +31,7 @@ SUBMIT = ".apply-flow-pagination__submit-button"
31
31
  PAGINATION = ".apply-flow-pagination__button"
32
32
  PAGE_NUMBERS = ".apply-flow-navigation-pages__link:visible"
33
33
  LOADING = ".app-loading-spinner, .cx-select--loading, .apply-flow-block .skeleton"
34
- CODE_PAGE = ".apply-flow-pin-code-required"
34
+ OTP_PAGE = ".apply-flow-pin-code-required"
35
35
  CAPTCHA = "iframe[src*='hcaptcha.com']"
36
36
  MANUALLY = ".quick-apply-flow__manually--link:visible" # past an offer to import a profile
37
37
  COOKIES = ".cookie-consent button:visible"
@@ -356,7 +356,7 @@ class Oracle:
356
356
  if "--checked" not in (box.get_attribute("class") or ""):
357
357
  _click(page, box)
358
358
  _click(page, page.locator(NEXT).first)
359
- opened = page.locator(f"apply-flow-block, {CODE_PAGE}, {MANUALLY}")
359
+ opened = page.locator(f"apply-flow-block, {OTP_PAGE}, {MANUALLY}")
360
360
  try:
361
361
  opened.first.wait_for(timeout=STEP_TIMEOUT_MS)
362
362
  if page.locator(MANUALLY).count():
@@ -366,10 +366,10 @@ class Oracle:
366
366
  if page.locator(CAPTCHA).count():
367
367
  raise Blocked("captcha: the email step asks for an hCaptcha") from None
368
368
  raise RuntimeError("the email step did not open the form") from None
369
- if page.locator(CODE_PAGE).count():
369
+ if page.locator(OTP_PAGE).count():
370
370
  raise Blocked(
371
- f"email_code: {email} is known to this employer's Oracle, which emails it a"
372
- " code before it shows the form"
371
+ f"email_otp: {email} is known to this employer's Oracle, which emails it an"
372
+ " OTP before it shows the form"
373
373
  )
374
374
  page.locator(f"{PAGINATION}:visible").first.wait_for(timeout=STEP_TIMEOUT_MS)
375
375
  _settle(page)
@@ -6,8 +6,8 @@ from atsfill.core.results import Answer, Field, SideEffect
6
6
 
7
7
 
8
8
  class Blocked(Exception):
9
- """The system stopped the command: a captcha, a low reCAPTCHA score, an emailed code, a
10
- login wall.
9
+ """The system stopped the command: a captcha, a low reCAPTCHA score, an OTP, a login
10
+ wall.
11
11
 
12
12
  The message is the result's reason, `code` or `code: detail`.
13
13
  """
File without changes
File without changes