atsfill 0.0.5.dev152__tar.gz → 0.0.5.dev153__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 (62) hide show
  1. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/PKG-INFO +3 -1
  2. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/README.md +2 -0
  3. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/pyproject.toml +1 -1
  4. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/pyproject.toml.orig +1 -1
  5. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/__init__.py +2 -0
  6. atsfill-0.0.5.dev153/src/atsfill/adapters/workatastartup.py +830 -0
  7. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/cli.py +21 -3
  8. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/core/__init__.py +1 -1
  9. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/core/adapter.py +38 -0
  10. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/core/browser.py +1 -0
  11. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/core/commands.py +127 -6
  12. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/core/matching.py +2 -0
  13. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/core/results.py +4 -1
  14. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/core/telemetry.py +8 -7
  15. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/registry.toml +8 -0
  16. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/LICENSE +0 -0
  17. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/__init__.py +0 -0
  18. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/ashby.py +0 -0
  19. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/bamboohr.py +0 -0
  20. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/breezy.py +0 -0
  21. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/dayforce.py +0 -0
  22. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/eightfold.py +0 -0
  23. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/greenhouse.py +0 -0
  24. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/gupy.py +0 -0
  25. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/hireology.py +0 -0
  26. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/hiringthing.py +0 -0
  27. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/hrmdirect.py +0 -0
  28. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/isolvedhire.py +0 -0
  29. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/jazzhr.py +0 -0
  30. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/jobaffinity.py +0 -0
  31. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/join.py +0 -0
  32. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/lever.py +0 -0
  33. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/manatal.py +0 -0
  34. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/oracle.py +0 -0
  35. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/paycor.py +0 -0
  36. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/paylocity.py +0 -0
  37. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/personio.py +0 -0
  38. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/phenom.py +0 -0
  39. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/pinpoint.py +0 -0
  40. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/recruitee.py +0 -0
  41. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/recruiterflow.py +0 -0
  42. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/rippling.py +0 -0
  43. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/smartrecruiters.py +0 -0
  44. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/successfactors.js +0 -0
  45. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/successfactors.py +0 -0
  46. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/taleo.py +0 -0
  47. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/teamtailor.py +0 -0
  48. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/ukg.py +0 -0
  49. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/workable.py +0 -0
  50. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/workday.py +0 -0
  51. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/wttj.py +0 -0
  52. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/adapters/zohorecruit.py +0 -0
  53. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/core/accounts.py +0 -0
  54. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/core/attempts.py +0 -0
  55. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/core/conditions.py +0 -0
  56. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/core/html.py +0 -0
  57. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/core/otp.py +0 -0
  58. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/core/passwords.py +0 -0
  59. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/core/paths.py +0 -0
  60. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/core/registry.py +0 -0
  61. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/core/snapshot.py +0 -0
  62. {atsfill-0.0.5.dev152 → atsfill-0.0.5.dev153}/src/atsfill/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: atsfill
3
- Version: 0.0.5.dev152
3
+ Version: 0.0.5.dev153
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
@@ -84,6 +84,7 @@ It is built for agents with a shell: every command prints one JSON document and
84
84
  [![recruiterflow run history](https://shbernal.github.io/atsfill/run-history/recruiterflow.svg)](https://shbernal.github.io/atsfill/run-history/)
85
85
  [![jobaffinity run history](https://shbernal.github.io/atsfill/run-history/jobaffinity.svg)](https://shbernal.github.io/atsfill/run-history/)
86
86
  [![join run history](https://shbernal.github.io/atsfill/run-history/join.svg)](https://shbernal.github.io/atsfill/run-history/)
87
+ [![workatastartup run history](https://shbernal.github.io/atsfill/run-history/workatastartup.svg)](https://shbernal.github.io/atsfill/run-history/)
87
88
  [![wttj run history](https://shbernal.github.io/atsfill/run-history/wttj.svg)](https://shbernal.github.io/atsfill/run-history/)
88
89
  [![workday run history](https://shbernal.github.io/atsfill/run-history/workday.svg)](https://shbernal.github.io/atsfill/run-history/)
89
90
  [![successfactors run history](https://shbernal.github.io/atsfill/run-history/successfactors.svg)](https://shbernal.github.io/atsfill/run-history/)
@@ -165,6 +166,7 @@ One home can send for more than one user: `--user <name>` gives each their own s
165
166
  Given an account's email (`atsfill login <adapter> --email`) and a password source (a `[password-commands]` entry such as `rbw get example.com {email}`, or `--password -` on stdin), atsfill signs in by itself, and again whenever a form command finds the session signed out.
166
167
  When a system emails an OTP, on a sign-in, a sign-up or a form, atsfill gets it from the user's `[otp-commands]` entry, a command that reads the mailbox (`{email}` and `{since}` are filled in), and types it in; without one the command ends `blocked: no_otp_command`.
167
168
  Where a system's sign-up allows it, `atsfill login <adapter> --create --email <address>` (with `--details <file.json>` where the sign-up asks the user's name, phone or address) creates the account with a password atsfill generates and keeps in the system's secret store, never printed; creating an account is a side effect, never part of `fill` or `send`.
169
+ Where a system applies only from a complete account profile, `atsfill profile <adapter>` reads its profile form and `atsfill profile <adapter> --answers <file.json>` saves it, step by step, skipping the steps that already match; a form command that meets an incomplete profile ends `blocked: profile_incomplete`, naming that command. Saving a profile is a side effect, never part of `fill` or `send` ([ADR 0017](docs/adr/0017-account-profiles.md)).
168
170
 
169
171
  ## How it works
170
172
 
@@ -55,6 +55,7 @@ It is built for agents with a shell: every command prints one JSON document and
55
55
  [![recruiterflow run history](https://shbernal.github.io/atsfill/run-history/recruiterflow.svg)](https://shbernal.github.io/atsfill/run-history/)
56
56
  [![jobaffinity run history](https://shbernal.github.io/atsfill/run-history/jobaffinity.svg)](https://shbernal.github.io/atsfill/run-history/)
57
57
  [![join run history](https://shbernal.github.io/atsfill/run-history/join.svg)](https://shbernal.github.io/atsfill/run-history/)
58
+ [![workatastartup run history](https://shbernal.github.io/atsfill/run-history/workatastartup.svg)](https://shbernal.github.io/atsfill/run-history/)
58
59
  [![wttj run history](https://shbernal.github.io/atsfill/run-history/wttj.svg)](https://shbernal.github.io/atsfill/run-history/)
59
60
  [![workday run history](https://shbernal.github.io/atsfill/run-history/workday.svg)](https://shbernal.github.io/atsfill/run-history/)
60
61
  [![successfactors run history](https://shbernal.github.io/atsfill/run-history/successfactors.svg)](https://shbernal.github.io/atsfill/run-history/)
@@ -136,6 +137,7 @@ One home can send for more than one user: `--user <name>` gives each their own s
136
137
  Given an account's email (`atsfill login <adapter> --email`) and a password source (a `[password-commands]` entry such as `rbw get example.com {email}`, or `--password -` on stdin), atsfill signs in by itself, and again whenever a form command finds the session signed out.
137
138
  When a system emails an OTP, on a sign-in, a sign-up or a form, atsfill gets it from the user's `[otp-commands]` entry, a command that reads the mailbox (`{email}` and `{since}` are filled in), and types it in; without one the command ends `blocked: no_otp_command`.
138
139
  Where a system's sign-up allows it, `atsfill login <adapter> --create --email <address>` (with `--details <file.json>` where the sign-up asks the user's name, phone or address) creates the account with a password atsfill generates and keeps in the system's secret store, never printed; creating an account is a side effect, never part of `fill` or `send`.
140
+ Where a system applies only from a complete account profile, `atsfill profile <adapter>` reads its profile form and `atsfill profile <adapter> --answers <file.json>` saves it, step by step, skipping the steps that already match; a form command that meets an incomplete profile ends `blocked: profile_incomplete`, naming that command. Saving a profile is a side effect, never part of `fill` or `send` ([ADR 0017](docs/adr/0017-account-profiles.md)).
139
141
 
140
142
  ## How it works
141
143
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "atsfill"
3
- version = "0.0.5.dev152"
3
+ version = "0.0.5.dev153"
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.5.dev152"
3
+ version = "0.0.5.dev153"
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"
@@ -27,6 +27,7 @@ from atsfill.adapters.successfactors import SuccessFactors
27
27
  from atsfill.adapters.teamtailor import Teamtailor
28
28
  from atsfill.adapters.ukg import UKG
29
29
  from atsfill.adapters.workable import Workable
30
+ from atsfill.adapters.workatastartup import WorkAtAStartup
30
31
  from atsfill.adapters.workday import Workday
31
32
  from atsfill.adapters.wttj import WelcomeToTheJungle
32
33
  from atsfill.adapters.zohorecruit import ZohoRecruit
@@ -40,6 +41,7 @@ def adapters() -> list[Adapter]:
40
41
  Teamtailor(),
41
42
  Greenhouse(),
42
43
  WelcomeToTheJungle(),
44
+ WorkAtAStartup(),
43
45
  Join(),
44
46
  JobAffinity(),
45
47
  SmartRecruiters(),