finch-cli 0.1.1__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.
- finch_cli-0.1.1/.gitignore +12 -0
- finch_cli-0.1.1/LICENSE +21 -0
- finch_cli-0.1.1/PKG-INFO +140 -0
- finch_cli-0.1.1/README.md +108 -0
- finch_cli-0.1.1/REDDIT_POST.md +100 -0
- finch_cli-0.1.1/docs/tui-jobs.svg +274 -0
- finch_cli-0.1.1/docs/tui-library.svg +266 -0
- finch_cli-0.1.1/docs/tui-tailor.svg +282 -0
- finch_cli-0.1.1/examples/base_resume.md +32 -0
- finch_cli-0.1.1/examples/job_post.txt +25 -0
- finch_cli-0.1.1/finch_cli/__init__.py +3 -0
- finch_cli-0.1.1/finch_cli/__main__.py +4 -0
- finch_cli-0.1.1/finch_cli/cli.py +155 -0
- finch_cli-0.1.1/finch_cli/fetch.py +131 -0
- finch_cli-0.1.1/finch_cli/jobs.py +166 -0
- finch_cli-0.1.1/finch_cli/output.py +20 -0
- finch_cli-0.1.1/finch_cli/score.py +166 -0
- finch_cli-0.1.1/finch_cli/storage.py +81 -0
- finch_cli-0.1.1/finch_cli/tailor.py +150 -0
- finch_cli-0.1.1/finch_cli/tui.py +782 -0
- finch_cli-0.1.1/pyproject.toml +52 -0
finch_cli-0.1.1/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Carlos Luna-Pena
|
|
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.
|
finch_cli-0.1.1/PKG-INFO
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: finch-cli
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: Tailor your resume to any job posting from your terminal.
|
|
5
|
+
Project-URL: Homepage, https://applyfinch.com
|
|
6
|
+
Project-URL: Repository, https://github.com/applyEasy/finch-cli
|
|
7
|
+
Project-URL: Issues, https://github.com/applyEasy/finch-cli/issues
|
|
8
|
+
Author-email: Carlos Luna-Pena <carlunpen@gmail.com>
|
|
9
|
+
License: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: ai,career,cli,deepseek,internship,job-search,openai,resume,textual,tui
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Topic :: Utilities
|
|
21
|
+
Requires-Python: >=3.10
|
|
22
|
+
Requires-Dist: click>=8.1.0
|
|
23
|
+
Requires-Dist: httpx>=0.27.0
|
|
24
|
+
Requires-Dist: openai>=1.30.0
|
|
25
|
+
Requires-Dist: rich>=13.0.0
|
|
26
|
+
Requires-Dist: textual>=0.83.0
|
|
27
|
+
Requires-Dist: trafilatura>=1.12.0
|
|
28
|
+
Provides-Extra: dev
|
|
29
|
+
Requires-Dist: pytest>=7.0; extra == 'dev'
|
|
30
|
+
Requires-Dist: ruff>=0.5; extra == 'dev'
|
|
31
|
+
Description-Content-Type: text/markdown
|
|
32
|
+
|
|
33
|
+
# finch-cli
|
|
34
|
+
|
|
35
|
+
a terminal client for job hunting. browse fresh internship + new-grad postings, tailor your resume to any of them, see an ats-style match score with matched + missing keywords, keep a library of the tailored versions.
|
|
36
|
+
|
|
37
|
+

|
|
38
|
+
|
|
39
|
+

|
|
40
|
+
|
|
41
|
+
## install
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
pip install finch-cli
|
|
45
|
+
export DEEPSEEK_API_KEY=sk-...
|
|
46
|
+
finch ui
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
deepseek keys are cheap (currently around $0.27 / 1M input tokens, ~30x cheaper than claude). get one at https://platform.deepseek.com/api_keys.
|
|
50
|
+
|
|
51
|
+
other providers work too. any openai-compatible chat-completions endpoint: openai, together, groq, fireworks. pass `--base-url` and the matching `--api-key`, or set `FINCH_BASE_URL` and `OPENAI_API_KEY`. the same `finch_cli/tailor.py` runs against all of them.
|
|
52
|
+
|
|
53
|
+
## what it does
|
|
54
|
+
|
|
55
|
+
three tabs, one keyboard.
|
|
56
|
+
|
|
57
|
+
**jobs** pulls the simplifyjobs internship and new-grad lists (the same two feeds the finch backend mirrors). 3000+ active postings, filterable by query, source, term. press T on a row, the job loads into the tailor tab pre-filled.
|
|
58
|
+
|
|
59
|
+
**library** is the list of tailored resumes you've saved. Markdown preview on the right.
|
|
60
|
+
|
|
61
|
+
**tailor** is the three-pane editor: base resume / job posting / tailored output. claude rewrites bullets and ordering to fit the posting. won't invent skills you don't have. a match-analysis panel at the bottom shows an ats-style score, which job keywords your resume covers, which ones it doesn't, and how much the tailored version moved the needle vs the base.
|
|
62
|
+
|
|
63
|
+
## install (pure cli, no tui)
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
finch tailor --resume resume.md --job https://jobs.example.com/swe-intern -o tailored.md
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
if the job site is js-heavy (workday, some greenhouse iframes), the fetch fails clean and tells you to use `--job-file` with a pasted description:
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
finch tailor -r resume.md --job-file pasted.txt -o tailored.md
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## tui keys
|
|
76
|
+
|
|
77
|
+
| key | action |
|
|
78
|
+
|---|---|
|
|
79
|
+
| `1` / `2` / `3` | jump to jobs / library / tailor |
|
|
80
|
+
| `Ctrl+T` | tailor; on jobs tab loads the selected job first |
|
|
81
|
+
| `Ctrl+U` | paste a job url, fetches it into the tailor pane |
|
|
82
|
+
| `Ctrl+O` | open a resume file |
|
|
83
|
+
| `Ctrl+R` | refetch the job feeds |
|
|
84
|
+
| `Ctrl+L` | save the tailored output to the library |
|
|
85
|
+
| `Ctrl+S` | save the tailored output to a file |
|
|
86
|
+
| `Ctrl+D` | load the bundled demo |
|
|
87
|
+
| `Ctrl+Q` | quit |
|
|
88
|
+
|
|
89
|
+
filter inputs at the top of the jobs tab are live; type and the table updates.
|
|
90
|
+
|
|
91
|
+
## cli flags
|
|
92
|
+
|
|
93
|
+
`finch tailor`
|
|
94
|
+
|
|
95
|
+
| flag | what |
|
|
96
|
+
|---|---|
|
|
97
|
+
| `-r, --resume PATH` | base resume in markdown or plain text (required) |
|
|
98
|
+
| `-j, --job URL` | job posting url |
|
|
99
|
+
| `--job-file PATH` | local file with the job description (use if `--job` won't extract) |
|
|
100
|
+
| `-o, --out PATH` | save tailored resume here, else stdout |
|
|
101
|
+
| `--model NAME` | model name (default `deepseek-chat`) |
|
|
102
|
+
| `--api-key KEY` | override `$DEEPSEEK_API_KEY` / `$FINCH_API_KEY` / `$OPENAI_API_KEY` |
|
|
103
|
+
| `--base-url URL` | override openai-compatible base url (default `https://api.deepseek.com`) |
|
|
104
|
+
|
|
105
|
+
`finch ui`
|
|
106
|
+
|
|
107
|
+
| flag | what |
|
|
108
|
+
|---|---|
|
|
109
|
+
| `--demo` | preload the bundled example into the tailor tab |
|
|
110
|
+
| `--model NAME` | model name |
|
|
111
|
+
|
|
112
|
+
## where stuff lives
|
|
113
|
+
|
|
114
|
+
| | path |
|
|
115
|
+
|---|---|
|
|
116
|
+
| job feed cache (~6h ttl) | `~/.cache/finch-cli/{intern,newgrad}.json` |
|
|
117
|
+
| saved tailored resumes | `~/.local/share/finch-cli/resumes/` |
|
|
118
|
+
| bundled example resume + job | `examples/` in the repo |
|
|
119
|
+
|
|
120
|
+
## why a cli
|
|
121
|
+
|
|
122
|
+
most of these tools are saas you have to sign up for. this is the opposite. install, run, the only thing leaving your machine is the llm call you control.
|
|
123
|
+
|
|
124
|
+
the autofill side - the part that actually fills out the application form - lives in the web app at applyfinch.com, free during beta.
|
|
125
|
+
|
|
126
|
+
## known limits
|
|
127
|
+
|
|
128
|
+
- workday and some greenhouse iframe pages need js. the fetch fails clean and tells you to use `--job-file`.
|
|
129
|
+
- tailored output is markdown. pipe to pandoc for pdf, or paste into overleaf if you have a tex template.
|
|
130
|
+
- the model won't invent skills. if the base resume is thin, the tailored version is thin. fix the base first.
|
|
131
|
+
|
|
132
|
+
## roadmap
|
|
133
|
+
|
|
134
|
+
- a built-in pdf renderer (drop the pandoc step)
|
|
135
|
+
- `finch apply` to autofill the application after tailoring, same engine as the web app
|
|
136
|
+
- optional sign-in to view your real applyfinch.com pipeline from the terminal
|
|
137
|
+
|
|
138
|
+
## license
|
|
139
|
+
|
|
140
|
+
mit.
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# finch-cli
|
|
2
|
+
|
|
3
|
+
a terminal client for job hunting. browse fresh internship + new-grad postings, tailor your resume to any of them, see an ats-style match score with matched + missing keywords, keep a library of the tailored versions.
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+
|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
## install
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
pip install finch-cli
|
|
13
|
+
export DEEPSEEK_API_KEY=sk-...
|
|
14
|
+
finch ui
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
deepseek keys are cheap (currently around $0.27 / 1M input tokens, ~30x cheaper than claude). get one at https://platform.deepseek.com/api_keys.
|
|
18
|
+
|
|
19
|
+
other providers work too. any openai-compatible chat-completions endpoint: openai, together, groq, fireworks. pass `--base-url` and the matching `--api-key`, or set `FINCH_BASE_URL` and `OPENAI_API_KEY`. the same `finch_cli/tailor.py` runs against all of them.
|
|
20
|
+
|
|
21
|
+
## what it does
|
|
22
|
+
|
|
23
|
+
three tabs, one keyboard.
|
|
24
|
+
|
|
25
|
+
**jobs** pulls the simplifyjobs internship and new-grad lists (the same two feeds the finch backend mirrors). 3000+ active postings, filterable by query, source, term. press T on a row, the job loads into the tailor tab pre-filled.
|
|
26
|
+
|
|
27
|
+
**library** is the list of tailored resumes you've saved. Markdown preview on the right.
|
|
28
|
+
|
|
29
|
+
**tailor** is the three-pane editor: base resume / job posting / tailored output. claude rewrites bullets and ordering to fit the posting. won't invent skills you don't have. a match-analysis panel at the bottom shows an ats-style score, which job keywords your resume covers, which ones it doesn't, and how much the tailored version moved the needle vs the base.
|
|
30
|
+
|
|
31
|
+
## install (pure cli, no tui)
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
finch tailor --resume resume.md --job https://jobs.example.com/swe-intern -o tailored.md
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
if the job site is js-heavy (workday, some greenhouse iframes), the fetch fails clean and tells you to use `--job-file` with a pasted description:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
finch tailor -r resume.md --job-file pasted.txt -o tailored.md
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## tui keys
|
|
44
|
+
|
|
45
|
+
| key | action |
|
|
46
|
+
|---|---|
|
|
47
|
+
| `1` / `2` / `3` | jump to jobs / library / tailor |
|
|
48
|
+
| `Ctrl+T` | tailor; on jobs tab loads the selected job first |
|
|
49
|
+
| `Ctrl+U` | paste a job url, fetches it into the tailor pane |
|
|
50
|
+
| `Ctrl+O` | open a resume file |
|
|
51
|
+
| `Ctrl+R` | refetch the job feeds |
|
|
52
|
+
| `Ctrl+L` | save the tailored output to the library |
|
|
53
|
+
| `Ctrl+S` | save the tailored output to a file |
|
|
54
|
+
| `Ctrl+D` | load the bundled demo |
|
|
55
|
+
| `Ctrl+Q` | quit |
|
|
56
|
+
|
|
57
|
+
filter inputs at the top of the jobs tab are live; type and the table updates.
|
|
58
|
+
|
|
59
|
+
## cli flags
|
|
60
|
+
|
|
61
|
+
`finch tailor`
|
|
62
|
+
|
|
63
|
+
| flag | what |
|
|
64
|
+
|---|---|
|
|
65
|
+
| `-r, --resume PATH` | base resume in markdown or plain text (required) |
|
|
66
|
+
| `-j, --job URL` | job posting url |
|
|
67
|
+
| `--job-file PATH` | local file with the job description (use if `--job` won't extract) |
|
|
68
|
+
| `-o, --out PATH` | save tailored resume here, else stdout |
|
|
69
|
+
| `--model NAME` | model name (default `deepseek-chat`) |
|
|
70
|
+
| `--api-key KEY` | override `$DEEPSEEK_API_KEY` / `$FINCH_API_KEY` / `$OPENAI_API_KEY` |
|
|
71
|
+
| `--base-url URL` | override openai-compatible base url (default `https://api.deepseek.com`) |
|
|
72
|
+
|
|
73
|
+
`finch ui`
|
|
74
|
+
|
|
75
|
+
| flag | what |
|
|
76
|
+
|---|---|
|
|
77
|
+
| `--demo` | preload the bundled example into the tailor tab |
|
|
78
|
+
| `--model NAME` | model name |
|
|
79
|
+
|
|
80
|
+
## where stuff lives
|
|
81
|
+
|
|
82
|
+
| | path |
|
|
83
|
+
|---|---|
|
|
84
|
+
| job feed cache (~6h ttl) | `~/.cache/finch-cli/{intern,newgrad}.json` |
|
|
85
|
+
| saved tailored resumes | `~/.local/share/finch-cli/resumes/` |
|
|
86
|
+
| bundled example resume + job | `examples/` in the repo |
|
|
87
|
+
|
|
88
|
+
## why a cli
|
|
89
|
+
|
|
90
|
+
most of these tools are saas you have to sign up for. this is the opposite. install, run, the only thing leaving your machine is the llm call you control.
|
|
91
|
+
|
|
92
|
+
the autofill side - the part that actually fills out the application form - lives in the web app at applyfinch.com, free during beta.
|
|
93
|
+
|
|
94
|
+
## known limits
|
|
95
|
+
|
|
96
|
+
- workday and some greenhouse iframe pages need js. the fetch fails clean and tells you to use `--job-file`.
|
|
97
|
+
- tailored output is markdown. pipe to pandoc for pdf, or paste into overleaf if you have a tex template.
|
|
98
|
+
- the model won't invent skills. if the base resume is thin, the tailored version is thin. fix the base first.
|
|
99
|
+
|
|
100
|
+
## roadmap
|
|
101
|
+
|
|
102
|
+
- a built-in pdf renderer (drop the pandoc step)
|
|
103
|
+
- `finch apply` to autofill the application after tailoring, same engine as the web app
|
|
104
|
+
- optional sign-in to view your real applyfinch.com pipeline from the terminal
|
|
105
|
+
|
|
106
|
+
## license
|
|
107
|
+
|
|
108
|
+
mit.
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# reddit launch drafts
|
|
2
|
+
|
|
3
|
+
pick a title, paste a body, post. space the cross-posts at least 24h apart.
|
|
4
|
+
|
|
5
|
+
## titles
|
|
6
|
+
|
|
7
|
+
1. i built a tui that tailors your resume to a job posting in 30 seconds
|
|
8
|
+
2. pip install finch-cli, a cli + tui for resume tailoring
|
|
9
|
+
3. tired of editing the same resume 80 times a recruiting cycle so i built a cli
|
|
10
|
+
4. show hn: finch-cli, resume tailoring from the terminal (cli + textual tui)
|
|
11
|
+
|
|
12
|
+
## body for r/csmajors, r/cscareerquestions, r/internships
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
i'm a cs senior at tamu. my co-founder pepe and i are building applyfinch.com, an ai tool that tailors your resume per job posting and autofills the application form. the tailoring is the part you actually feel improving, so i packaged it as a small open source cli with a textual tui on top.
|
|
16
|
+
|
|
17
|
+
how it works:
|
|
18
|
+
|
|
19
|
+
pip install finch-cli
|
|
20
|
+
export DEEPSEEK_API_KEY=sk-...
|
|
21
|
+
|
|
22
|
+
cli:
|
|
23
|
+
|
|
24
|
+
finch tailor --resume resume.md --job https://jobs.netflix.com/positions/14234 -o tailored.md
|
|
25
|
+
|
|
26
|
+
tui:
|
|
27
|
+
|
|
28
|
+
finch ui --demo
|
|
29
|
+
|
|
30
|
+
three panes, base resume on the left, the job in the middle, the tailored output on the right. ctrl+t to tailor, ctrl+u to paste a url, ctrl+s to save. screenshot is in the repo readme.
|
|
31
|
+
|
|
32
|
+
you give it your resume in markdown and a job description. it rewrites the resume so the bullets and wording line up with the posting. it won't invent experience or skills, only reorders and rewords what you already have. the prompt enforces that.
|
|
33
|
+
|
|
34
|
+
why a cli, because most of these are saas tools you have to sign up for. this is the opposite. install, run, done. only thing leaving your box is the llm call you control.
|
|
35
|
+
|
|
36
|
+
repo: https://github.com/applyEasy/finch-cli (mit)
|
|
37
|
+
|
|
38
|
+
the autofill side is at applyfinch.com if you want that part too, free during beta.
|
|
39
|
+
|
|
40
|
+
feedback / prs welcome. roadmap is `finch jobs` (pull fresh internships from our bank, ~3,200 active) and `finch apply` (autofill, same engine as the web app).
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## body for r/Python
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
small tool i shipped this weekend. tailors a resume in markdown to a job posting url via the anthropic api. cli mode and a textual tui in the same package.
|
|
47
|
+
|
|
48
|
+
stack: click for the cli, textual for the tui, httpx, trafilatura for html to text, anthropic sdk, rich. about 450 loc total. hatchling for the build.
|
|
49
|
+
|
|
50
|
+
pip install finch-cli
|
|
51
|
+
export DEEPSEEK_API_KEY=...
|
|
52
|
+
finch tailor --resume resume.md --job <url> -o tailored.md
|
|
53
|
+
finch ui --demo
|
|
54
|
+
|
|
55
|
+
repo with the prompt at github.com/applyEasy/finch-cli (mit). svg screenshot of the tui in the readme.
|
|
56
|
+
|
|
57
|
+
two things i'd actually want feedback on:
|
|
58
|
+
|
|
59
|
+
- the system prompt is the whole product. anyone got patterns for keeping the llm from inflating bullet wording past what the base resume actually supports? i've got a hard no-invent rule but it still occasionally rephrases "shipped a pipeline" into "architected a production-grade pipeline". curious how other people handle that.
|
|
60
|
+
- using trafilatura for html to text. works on lever and greenhouse static pages, fails on workday js renders. i was avoiding bundling chromium for a 200mb playwright install on a resume tool. anyone got a lighter trick.
|
|
61
|
+
|
|
62
|
+
companion web app at applyfinch.com if you want the autofill side.
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## body for show hn
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
Show HN: finch-cli, resume tailoring from the terminal (cli + textual tui)
|
|
69
|
+
|
|
70
|
+
i built a small cli that takes your resume in markdown and a job url, calls claude to rewrite the resume so bullets and wording match the posting, writes markdown out. then added a textual tui on top, three panes (resume / job / tailored output).
|
|
71
|
+
|
|
72
|
+
the relevant thing is the prompt. hard rule: never invent experience, employers, dates, or numbers. soft guidelines: reorder bullets so the most relevant come first, rewrite wording to use the posting's terminology where it truthfully applies.
|
|
73
|
+
|
|
74
|
+
pip install finch-cli
|
|
75
|
+
export DEEPSEEK_API_KEY=...
|
|
76
|
+
finch tailor --resume resume.md --job <url> -o tailored.md
|
|
77
|
+
finch ui --demo
|
|
78
|
+
|
|
79
|
+
repo: https://github.com/applyEasy/finch-cli (mit)
|
|
80
|
+
|
|
81
|
+
this is the tailoring half of an ai resume tool i'm building with a co-founder at applyfinch.com. the web app also autofills the application form, which the cli doesn't do yet. wanted the prompt and the plumbing in open source so people can sanity-check the approach and run it locally.
|
|
82
|
+
|
|
83
|
+
known limits, in the readme: workday job pages need js to render and won't extract, so the cli tells you to paste the description into a file and use --job-file. output is markdown, pipe through pandoc for pdf.
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## posting order
|
|
87
|
+
|
|
88
|
+
1. r/csmajors first - tamu and adjacent students, biggest concentrated audience
|
|
89
|
+
2. r/cscareerquestions, broader and slower
|
|
90
|
+
3. r/internships (293k, lower noise than r/jobs)
|
|
91
|
+
4. r/Python with the tui angle and the svg screenshot. probably the strongest single post.
|
|
92
|
+
5. show hn, sat or sun morning pacific
|
|
93
|
+
6. twitter/x with a 20s screen recording
|
|
94
|
+
7. your personal linkedin separately, pepe's for the recruiter side later
|
|
95
|
+
|
|
96
|
+
## still to do
|
|
97
|
+
|
|
98
|
+
- publish to pypi. until then `pip install git+https://github.com/applyEasy/finch-cli.git` works
|
|
99
|
+
- record a ~20s screen recording of `finch ui --demo`, ctrl+t, save. drop it above the svg in the readme. screenshot is good, recording is the share asset
|
|
100
|
+
- the default model is `deepseek-chat` (cheap, matches the actual finch web app's tailoring model). users can override with `--model` and `--base-url` for any openai-compatible provider
|