flash-resume 0.2.0__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 (38) hide show
  1. flash_resume-0.2.0/.github/workflows/publish.yml +33 -0
  2. flash_resume-0.2.0/.gitignore +16 -0
  3. flash_resume-0.2.0/.python-version +1 -0
  4. flash_resume-0.2.0/PKG-INFO +208 -0
  5. flash_resume-0.2.0/README.md +191 -0
  6. flash_resume-0.2.0/examples/job_description.txt +20 -0
  7. flash_resume-0.2.0/examples/master_resume.json +97 -0
  8. flash_resume-0.2.0/extension/content.js +53 -0
  9. flash_resume-0.2.0/extension/manifest.json +29 -0
  10. flash_resume-0.2.0/extension/onboarding.html +511 -0
  11. flash_resume-0.2.0/extension/onboarding.js +260 -0
  12. flash_resume-0.2.0/extension/popup.html +439 -0
  13. flash_resume-0.2.0/extension/popup.js +241 -0
  14. flash_resume-0.2.0/main.py +6 -0
  15. flash_resume-0.2.0/pyproject.toml +41 -0
  16. flash_resume-0.2.0/src/flash_resume/__init__.py +17 -0
  17. flash_resume-0.2.0/src/flash_resume/autostart.py +112 -0
  18. flash_resume-0.2.0/src/flash_resume/bootstrap.py +29 -0
  19. flash_resume-0.2.0/src/flash_resume/cli.py +597 -0
  20. flash_resume-0.2.0/src/flash_resume/config.py +94 -0
  21. flash_resume-0.2.0/src/flash_resume/extension.py +66 -0
  22. flash_resume-0.2.0/src/flash_resume/models/__init__.py +32 -0
  23. flash_resume-0.2.0/src/flash_resume/models/job.py +20 -0
  24. flash_resume-0.2.0/src/flash_resume/models/resume.py +85 -0
  25. flash_resume-0.2.0/src/flash_resume/models/tailoring.py +58 -0
  26. flash_resume-0.2.0/src/flash_resume/services/compiler.py +128 -0
  27. flash_resume-0.2.0/src/flash_resume/services/groq_llm.py +130 -0
  28. flash_resume-0.2.0/src/flash_resume/services/llm.py +171 -0
  29. flash_resume-0.2.0/src/flash_resume/services/parser.py +61 -0
  30. flash_resume-0.2.0/src/flash_resume/services/server.py +179 -0
  31. flash_resume-0.2.0/src/flash_resume/services/tailor.py +302 -0
  32. flash_resume-0.2.0/src/flash_resume/services/validator.py +54 -0
  33. flash_resume-0.2.0/src/flash_resume/utils/diff.py +83 -0
  34. flash_resume-0.2.0/templates/resume.typ +271 -0
  35. flash_resume-0.2.0/tests/test_compiler.py +30 -0
  36. flash_resume-0.2.0/tests/test_models.py +46 -0
  37. flash_resume-0.2.0/tests/test_tailor.py +187 -0
  38. flash_resume-0.2.0/uv.lock +1697 -0
@@ -0,0 +1,33 @@
1
+ name: Publish to PyPI
2
+
3
+ # Publishes to PyPI via a trusted publisher (no stored API token).
4
+ # Triggered when a matching version tag is pushed, e.g. `git tag v0.2.0`.
5
+ on:
6
+ push:
7
+ tags:
8
+ - "v*"
9
+
10
+ jobs:
11
+ publish:
12
+ name: Build and publish
13
+ runs-on: ubuntu-latest
14
+ permissions:
15
+ # Required for trusted publishing against PyPI (OIDC).
16
+ id-token: write
17
+ steps:
18
+ - name: Checkout
19
+ uses: actions/checkout@v4
20
+
21
+ - name: Set up Python
22
+ uses: actions/setup-python@v5
23
+ with:
24
+ python-version: "3.12"
25
+
26
+ - name: Install build backend
27
+ run: python -m pip install --upgrade build
28
+
29
+ - name: Build sdist + wheel
30
+ run: python -m build
31
+
32
+ - name: Publish to PyPI
33
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,16 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ build/
5
+ dist/
6
+ wheels/
7
+ *.egg-info
8
+
9
+ # Virtual environments
10
+ .venv
11
+
12
+ # Output artifacts
13
+ output/
14
+ *.pdf
15
+ *.temp.*
16
+ .env
@@ -0,0 +1 @@
1
+ 3.12
@@ -0,0 +1,208 @@
1
+ Metadata-Version: 2.5
2
+ Name: flash-resume
3
+ Version: 0.2.0
4
+ Summary: Fast, ATS-focused resume tailoring and PDF generation.
5
+ Requires-Python: >=3.12
6
+ Requires-Dist: fastapi[standard]>=0.141.1
7
+ Requires-Dist: google-genai>=1.0.0
8
+ Requires-Dist: openai>=1.0.0
9
+ Requires-Dist: pydantic>=2.12.0
10
+ Requires-Dist: pypdf>=6.0.0
11
+ Requires-Dist: pyperclip>=1.9.0
12
+ Requires-Dist: python-dotenv>=1.0.0
13
+ Requires-Dist: rich>=14.0.0
14
+ Requires-Dist: typer>=0.15.0
15
+ Requires-Dist: typst>=0.15.0
16
+ Description-Content-Type: text/markdown
17
+
18
+ # ⚡ Flash Resume
19
+
20
+ > **Fast, ATS-targeted resume tailoring and layout-verified 1-page PDF generation.**
21
+
22
+ Stop the manual **3-tab shuffle** (Job Board ↔ ChatGPT ↔ Overleaf). Full document AI rewrites take 15+ seconds, hallucinate experience, and push single-page resumes onto page 2.
23
+
24
+ **Flash Resume** solves this by:
25
+ 1. **Targeted ATS Diffing**: Injects high-density keywords from the job description directly into existing skills and bullets with a **strict word-count budget ($\pm 2$ words)**.
26
+ 2. **Instant Typst Compilation**: Compiles your resume locally in **< 100 milliseconds** via bundled Typst.
27
+ 3. **Programmatic Overflow Protection**: Uses `pypdf` to inspect the compiled document and guarantee a **verified single-page fit**.
28
+ 4. **Choice of AI engine**: Pick **Gemini** for best ATS keyword quality (~15-20s) or **Groq** for near-instant tailoring (**~3s**) — switch any time from the extension setup.
29
+ 5. **1-Click Browser Extension**: Tailor from LinkedIn, Indeed, or Greenhouse — the verified PDF is saved straight to your chosen folder, no download prompt.
30
+
31
+ ---
32
+
33
+ ## 🚀 Quick Start (Windows)
34
+
35
+ ### 1. Install
36
+
37
+ ```powershell
38
+ pip install flash-resume
39
+ ```
40
+
41
+ That's it for dependencies — the package bundles everything (Typst engine, AI clients, the extension files).
42
+
43
+ ### 2. One-Time Setup
44
+
45
+ ```powershell
46
+ fs setup
47
+ ```
48
+
49
+ This interactive command:
50
+ 1. Asks you to pick an AI provider (**Gemini** quality or **Groq** speed) and enter your free API key
51
+ 2. Sets up your master resume (runs the init wizard if needed)
52
+ 3. Registers the engine to **start silently at Windows logon** — no terminal ever needed again
53
+ 4. Copies the Chrome extension to a stable folder and tells you where to Load-unpack it
54
+
55
+ ### 3. Load the Extension (Once)
56
+
57
+ 1. Open `chrome://extensions/` (works in Chrome, Brave, and Edge)
58
+ 2. Enable **Developer mode** (top-right toggle)
59
+ 3. Click **Load unpacked** and select the folder printed by `fs setup`
60
+ (default: `%LOCALAPPDATA%\flash-resume\extension`)
61
+
62
+ **That's it.** The engine autostarts at login, and the extension reconnects automatically — no reloads, no terminal, no "keep this window open" needed.
63
+
64
+ ### Managing the Setup
65
+
66
+ ```powershell
67
+ fs autostart status # check if the at-login autostart is registered
68
+ fs autostart disable # stop the engine from starting at login
69
+ fs autostart enable # re-enable it
70
+ fs extension-path # print the extension folder for Load-unpacked
71
+ fs doctor # verify system health
72
+ ```
73
+
74
+ ### For Contributors (from source)
75
+
76
+ ```powershell
77
+ git clone https://github.com/PavanBollepalli/flash-resume.git
78
+ cd flash-resume
79
+ uv sync
80
+ uv run fs init
81
+ uv run fs doctor
82
+ ```
83
+
84
+ ---
85
+
86
+ ## ⚡ Daily Usage
87
+
88
+ ### The Everyday Command: `fs tailor`
89
+
90
+ When browsing jobs on LinkedIn, Naukri, or Indeed:
91
+
92
+ 1. **Copy the job description** to your clipboard (`Ctrl + C`).
93
+ 2. Run:
94
+
95
+ ```powershell
96
+ uv run fs tailor
97
+ ```
98
+
99
+ You can also make clipboard input explicit with `uv run fs tailor --clip`.
100
+
101
+ *That's it!* Flash Resume:
102
+ - Automatically reads the JD from your system clipboard
103
+ - Infers target **Company** and **Role**
104
+ - Integrates high-impact ATS keywords into relevant bullets and skills
105
+ - Compiles the PDF and verifies the 1-page layout
106
+ - Saves:
107
+ - `Company_Role.pdf` (Ready to upload)
108
+ - `Company_Role.json` (Structured tailored resume)
109
+ - `Company_Role.diff.md` (Reviewable before/after report)
110
+ - Renders a Rich visual terminal diff:
111
+
112
+ ```text
113
+ ✓ Flash Resume Tailoring Complete
114
+ Datadog — Backend Software Engineer
115
+ ATS Match Score: 94% | Pages: 1 page (Layout Verified) | Compile: 72.5ms | Total: 1.84s
116
+
117
+ Integrated ATS Keywords: FastAPI PostgreSQL Docker Redis
118
+ ```
119
+
120
+ ### Custom Overrides (Optional)
121
+
122
+ ```powershell
123
+ # Pass a job description file or string directly
124
+ uv run fs tailor --jd ./jobs/datadog_swe.txt
125
+
126
+ # Paste a long job description safely, including quotes and apostrophes
127
+ Get-Content ./jobs/joveo.txt | uv run fs tailor --jd -
128
+ # Git Bash alternative:
129
+ cat ./jobs/joveo.txt | uv run fs tailor --jd -
130
+
131
+ # Override company or role name
132
+ uv run fs tailor --company "Google" --role "Site Reliability Engineer"
133
+
134
+ # Specify a custom output folder
135
+ uv run fs tailor --out ./applications/2026/
136
+ ```
137
+
138
+ ---
139
+
140
+ ## 🧩 Chrome Extension (1-Click Tailor)
141
+
142
+ After `fs setup`, the companion engine runs silently in the background. The extension just talks to it:
143
+
144
+ 1. Open any job posting on **LinkedIn**, **Indeed**, or **Greenhouse**.
145
+ 2. Click the **Flash Resume** icon → **"⚡ Tailor 1-Page Resume"**. The company, role, and job description are auto-filled (including from text you've selected on the page). The verified PDF is saved directly to your configured folder and the saved path is shown — no download dialog.
146
+
147
+ The extension's built-in **Setup** wizard (first-run) lets you switch providers, update keys, or change the save folder at any time.
148
+
149
+ ---
150
+
151
+ ## 🏗️ Architecture
152
+
153
+ ```
154
+ flash-resume/
155
+ ├── pyproject.toml # Package dependencies & scripts
156
+ ├── README.md # Project documentation
157
+ ├── templates/
158
+ │ └── resume.typ # Modern, ATS-optimized Typst template
159
+ ├── extension/ # Manifest V3 Chrome Extension
160
+ │ ├── manifest.json
161
+ │ ├── popup.html / popup.js # Tailor UI + saved-path view (no download prompt)
162
+ │ ├── onboarding.html / onboarding.js # 6-step autosaving setup wizard
163
+ │ └── content.js
164
+ ├── src/flash_resume/
165
+ │ ├── cli.py # Typer CLI (setup, init, tailor, serve, autostart, ...)
166
+ │ ├── config.py # ~/.config/flash-resume/config.json
167
+ │ ├── bootstrap.py # Silent server entrypoint (pythonw -m flash_resume.bootstrap)
168
+ │ ├── autostart.py # Windows Run-key registration for at-login server start
169
+ │ ├── extension.py # Bundled Chrome extension installer (Load-unpacked path)
170
+ │ ├── models/
171
+ │ │ ├── resume.py # MasterResume & structured components
172
+ │ │ ├── job.py # JobAnalysis & extracted specs
173
+ │ │ └── tailoring.py # TailorPlan, BulletEdit & TailorResult
174
+ │ ├── services/
175
+ │ │ ├── compiler.py # Typst compilation & pypdf page validation
176
+ │ │ ├── llm.py # Gemini Flash structured ATS optimization
177
+ │ │ ├── groq_llm.py # Groq (gpt-oss-20b) fast provider
178
+ │ │ ├── tailor.py # Pipeline orchestrator & diff generator
179
+ │ │ └── server.py # FastAPI companion daemon for Chrome Extension
180
+ │ └── utils/
181
+ │ └── diff.py # Rich terminal visualization
182
+ ├── examples/
183
+ │ ├── master_resume.json # Realistic reference master resume
184
+ │ └── job_description.txt # Sample job description
185
+ └── tests/
186
+ ├── test_models.py
187
+ ├── test_compiler.py
188
+ └── test_tailor.py
189
+ ```
190
+
191
+ ---
192
+
193
+ ## 🛡️ Product Principles
194
+
195
+ * **100% Factual Truthfulness**: The engine only maps keywords and rephrases bullets that align with existing experience. It never invents companies, degrees, metrics, or domains you haven't touched.
196
+ * **Layout-Preserving Word Budgets**: Replacement bullets are strictly constrained to $\pm 2$ words of the original bullet, preventing multi-line overflow.
197
+ * **Sub-100ms Local Compilation**: Pure local Typst compilation ensures blazing-fast rendering without waiting for external server queues.
198
+
199
+ ---
200
+
201
+ ## 🧪 Testing
202
+
203
+ Run automated tests:
204
+
205
+ ```powershell
206
+ uv run pytest
207
+ ```
208
+
@@ -0,0 +1,191 @@
1
+ # ⚡ Flash Resume
2
+
3
+ > **Fast, ATS-targeted resume tailoring and layout-verified 1-page PDF generation.**
4
+
5
+ Stop the manual **3-tab shuffle** (Job Board ↔ ChatGPT ↔ Overleaf). Full document AI rewrites take 15+ seconds, hallucinate experience, and push single-page resumes onto page 2.
6
+
7
+ **Flash Resume** solves this by:
8
+ 1. **Targeted ATS Diffing**: Injects high-density keywords from the job description directly into existing skills and bullets with a **strict word-count budget ($\pm 2$ words)**.
9
+ 2. **Instant Typst Compilation**: Compiles your resume locally in **< 100 milliseconds** via bundled Typst.
10
+ 3. **Programmatic Overflow Protection**: Uses `pypdf` to inspect the compiled document and guarantee a **verified single-page fit**.
11
+ 4. **Choice of AI engine**: Pick **Gemini** for best ATS keyword quality (~15-20s) or **Groq** for near-instant tailoring (**~3s**) — switch any time from the extension setup.
12
+ 5. **1-Click Browser Extension**: Tailor from LinkedIn, Indeed, or Greenhouse — the verified PDF is saved straight to your chosen folder, no download prompt.
13
+
14
+ ---
15
+
16
+ ## 🚀 Quick Start (Windows)
17
+
18
+ ### 1. Install
19
+
20
+ ```powershell
21
+ pip install flash-resume
22
+ ```
23
+
24
+ That's it for dependencies — the package bundles everything (Typst engine, AI clients, the extension files).
25
+
26
+ ### 2. One-Time Setup
27
+
28
+ ```powershell
29
+ fs setup
30
+ ```
31
+
32
+ This interactive command:
33
+ 1. Asks you to pick an AI provider (**Gemini** quality or **Groq** speed) and enter your free API key
34
+ 2. Sets up your master resume (runs the init wizard if needed)
35
+ 3. Registers the engine to **start silently at Windows logon** — no terminal ever needed again
36
+ 4. Copies the Chrome extension to a stable folder and tells you where to Load-unpack it
37
+
38
+ ### 3. Load the Extension (Once)
39
+
40
+ 1. Open `chrome://extensions/` (works in Chrome, Brave, and Edge)
41
+ 2. Enable **Developer mode** (top-right toggle)
42
+ 3. Click **Load unpacked** and select the folder printed by `fs setup`
43
+ (default: `%LOCALAPPDATA%\flash-resume\extension`)
44
+
45
+ **That's it.** The engine autostarts at login, and the extension reconnects automatically — no reloads, no terminal, no "keep this window open" needed.
46
+
47
+ ### Managing the Setup
48
+
49
+ ```powershell
50
+ fs autostart status # check if the at-login autostart is registered
51
+ fs autostart disable # stop the engine from starting at login
52
+ fs autostart enable # re-enable it
53
+ fs extension-path # print the extension folder for Load-unpacked
54
+ fs doctor # verify system health
55
+ ```
56
+
57
+ ### For Contributors (from source)
58
+
59
+ ```powershell
60
+ git clone https://github.com/PavanBollepalli/flash-resume.git
61
+ cd flash-resume
62
+ uv sync
63
+ uv run fs init
64
+ uv run fs doctor
65
+ ```
66
+
67
+ ---
68
+
69
+ ## ⚡ Daily Usage
70
+
71
+ ### The Everyday Command: `fs tailor`
72
+
73
+ When browsing jobs on LinkedIn, Naukri, or Indeed:
74
+
75
+ 1. **Copy the job description** to your clipboard (`Ctrl + C`).
76
+ 2. Run:
77
+
78
+ ```powershell
79
+ uv run fs tailor
80
+ ```
81
+
82
+ You can also make clipboard input explicit with `uv run fs tailor --clip`.
83
+
84
+ *That's it!* Flash Resume:
85
+ - Automatically reads the JD from your system clipboard
86
+ - Infers target **Company** and **Role**
87
+ - Integrates high-impact ATS keywords into relevant bullets and skills
88
+ - Compiles the PDF and verifies the 1-page layout
89
+ - Saves:
90
+ - `Company_Role.pdf` (Ready to upload)
91
+ - `Company_Role.json` (Structured tailored resume)
92
+ - `Company_Role.diff.md` (Reviewable before/after report)
93
+ - Renders a Rich visual terminal diff:
94
+
95
+ ```text
96
+ ✓ Flash Resume Tailoring Complete
97
+ Datadog — Backend Software Engineer
98
+ ATS Match Score: 94% | Pages: 1 page (Layout Verified) | Compile: 72.5ms | Total: 1.84s
99
+
100
+ Integrated ATS Keywords: FastAPI PostgreSQL Docker Redis
101
+ ```
102
+
103
+ ### Custom Overrides (Optional)
104
+
105
+ ```powershell
106
+ # Pass a job description file or string directly
107
+ uv run fs tailor --jd ./jobs/datadog_swe.txt
108
+
109
+ # Paste a long job description safely, including quotes and apostrophes
110
+ Get-Content ./jobs/joveo.txt | uv run fs tailor --jd -
111
+ # Git Bash alternative:
112
+ cat ./jobs/joveo.txt | uv run fs tailor --jd -
113
+
114
+ # Override company or role name
115
+ uv run fs tailor --company "Google" --role "Site Reliability Engineer"
116
+
117
+ # Specify a custom output folder
118
+ uv run fs tailor --out ./applications/2026/
119
+ ```
120
+
121
+ ---
122
+
123
+ ## 🧩 Chrome Extension (1-Click Tailor)
124
+
125
+ After `fs setup`, the companion engine runs silently in the background. The extension just talks to it:
126
+
127
+ 1. Open any job posting on **LinkedIn**, **Indeed**, or **Greenhouse**.
128
+ 2. Click the **Flash Resume** icon → **"⚡ Tailor 1-Page Resume"**. The company, role, and job description are auto-filled (including from text you've selected on the page). The verified PDF is saved directly to your configured folder and the saved path is shown — no download dialog.
129
+
130
+ The extension's built-in **Setup** wizard (first-run) lets you switch providers, update keys, or change the save folder at any time.
131
+
132
+ ---
133
+
134
+ ## 🏗️ Architecture
135
+
136
+ ```
137
+ flash-resume/
138
+ ├── pyproject.toml # Package dependencies & scripts
139
+ ├── README.md # Project documentation
140
+ ├── templates/
141
+ │ └── resume.typ # Modern, ATS-optimized Typst template
142
+ ├── extension/ # Manifest V3 Chrome Extension
143
+ │ ├── manifest.json
144
+ │ ├── popup.html / popup.js # Tailor UI + saved-path view (no download prompt)
145
+ │ ├── onboarding.html / onboarding.js # 6-step autosaving setup wizard
146
+ │ └── content.js
147
+ ├── src/flash_resume/
148
+ │ ├── cli.py # Typer CLI (setup, init, tailor, serve, autostart, ...)
149
+ │ ├── config.py # ~/.config/flash-resume/config.json
150
+ │ ├── bootstrap.py # Silent server entrypoint (pythonw -m flash_resume.bootstrap)
151
+ │ ├── autostart.py # Windows Run-key registration for at-login server start
152
+ │ ├── extension.py # Bundled Chrome extension installer (Load-unpacked path)
153
+ │ ├── models/
154
+ │ │ ├── resume.py # MasterResume & structured components
155
+ │ │ ├── job.py # JobAnalysis & extracted specs
156
+ │ │ └── tailoring.py # TailorPlan, BulletEdit & TailorResult
157
+ │ ├── services/
158
+ │ │ ├── compiler.py # Typst compilation & pypdf page validation
159
+ │ │ ├── llm.py # Gemini Flash structured ATS optimization
160
+ │ │ ├── groq_llm.py # Groq (gpt-oss-20b) fast provider
161
+ │ │ ├── tailor.py # Pipeline orchestrator & diff generator
162
+ │ │ └── server.py # FastAPI companion daemon for Chrome Extension
163
+ │ └── utils/
164
+ │ └── diff.py # Rich terminal visualization
165
+ ├── examples/
166
+ │ ├── master_resume.json # Realistic reference master resume
167
+ │ └── job_description.txt # Sample job description
168
+ └── tests/
169
+ ├── test_models.py
170
+ ├── test_compiler.py
171
+ └── test_tailor.py
172
+ ```
173
+
174
+ ---
175
+
176
+ ## 🛡️ Product Principles
177
+
178
+ * **100% Factual Truthfulness**: The engine only maps keywords and rephrases bullets that align with existing experience. It never invents companies, degrees, metrics, or domains you haven't touched.
179
+ * **Layout-Preserving Word Budgets**: Replacement bullets are strictly constrained to $\pm 2$ words of the original bullet, preventing multi-line overflow.
180
+ * **Sub-100ms Local Compilation**: Pure local Typst compilation ensures blazing-fast rendering without waiting for external server queues.
181
+
182
+ ---
183
+
184
+ ## 🧪 Testing
185
+
186
+ Run automated tests:
187
+
188
+ ```powershell
189
+ uv run pytest
190
+ ```
191
+
@@ -0,0 +1,20 @@
1
+ Backend Software Engineer - Datadog
2
+
3
+ About the Role:
4
+ We are seeking a talented Backend Software Engineer to join our Core Infrastructure team. You will design, build, and maintain high-throughput distributed microservices handling telemetry and observability data at massive scale.
5
+
6
+ Key Responsibilities:
7
+ - Design and implement highly reliable REST and gRPC microservices using Python and Go.
8
+ - Optimize distributed storage systems, relational databases (PostgreSQL), and key-value datastores (Redis).
9
+ - Build and maintain CI/CD pipelines, containerized deployments using Docker and Kubernetes in AWS cloud environments.
10
+ - Drive latency optimization, p99 tail latency reduction, and observability monitoring using Prometheus/Grafana.
11
+ - Collaborate with product and platform teams to ensure 99.99% service availability.
12
+
13
+ Requirements & Qualifications:
14
+ - 2+ years of professional software engineering experience.
15
+ - Strong proficiency in Python (FastAPI / Django) or Go.
16
+ - Experience with PostgreSQL, query tuning, and Redis caching.
17
+ - Hands-on experience with cloud infrastructure (AWS) and containers (Docker, Kubernetes).
18
+ - Familiarity with CI/CD automation, distributed systems, and Kafka or message queues is a big plus.
19
+ - Bachelor's degree in Computer Science or equivalent practical experience.
20
+
@@ -0,0 +1,97 @@
1
+ {
2
+ "contact": {
3
+ "name": "Alex Chen",
4
+ "title": "Full Stack Software Engineer",
5
+ "email": "alex.chen@example.com",
6
+ "phone": "+1 (555) 234-5678",
7
+ "location": "San Francisco, CA",
8
+ "linkedin": "linkedin.com/in/alexchen-dev",
9
+ "github": "github.com/alexchen",
10
+ "portfolio": "alexchen.dev"
11
+ },
12
+ "summary": "Full Stack Engineer with 3+ years of experience designing high-throughput REST and GraphQL APIs, distributed backends, and responsive React web applications. Proven track record improving API response latency by 45% and optimizing database queries for millions of daily active users.",
13
+ "skills": [
14
+ {
15
+ "category": "Languages",
16
+ "items": ["Python", "TypeScript", "JavaScript", "Go", "SQL", "HTML/CSS"]
17
+ },
18
+ {
19
+ "category": "Frameworks & Libraries",
20
+ "items": ["FastAPI", "React", "Next.js", "Node.js", "Django", "Tailwind CSS"]
21
+ },
22
+ {
23
+ "category": "Databases & Cloud",
24
+ "items": ["PostgreSQL", "Redis", "MongoDB", "AWS (S3, Lambda, ECS)", "Docker", "Kubernetes"]
25
+ },
26
+ {
27
+ "category": "Developer Tools",
28
+ "items": ["Git", "GitHub Actions", "CI/CD", "Linux", "Pytest", "Jest"]
29
+ }
30
+ ],
31
+ "experience": [
32
+ {
33
+ "id": "exp_cloudscale_swe",
34
+ "company": "CloudScale Technologies",
35
+ "role": "Software Engineer",
36
+ "location": "San Francisco, CA",
37
+ "start_date": "Aug 2022",
38
+ "end_date": "Present",
39
+ "bullets": [
40
+ "Architected scalable backend microservices using FastAPI and PostgreSQL, serving 12M+ monthly API requests with 99.98% uptime.",
41
+ "Implemented Redis distributed caching layer, reducing p99 API response latencies from 320ms to 48ms across key search endpoints.",
42
+ "Engineered automated CI/CD deployment pipelines using GitHub Actions and Docker, reducing team deployment cycle time by 40%.",
43
+ "Collaborated with cross-functional product and frontend teams to migrate monolithic legacy codebase into modular, decoupled services."
44
+ ]
45
+ },
46
+ {
47
+ "id": "exp_nexustech_intern",
48
+ "company": "NexusTech Labs",
49
+ "role": "Software Engineering Intern",
50
+ "location": "San Jose, CA",
51
+ "start_date": "May 2021",
52
+ "end_date": "Aug 2021",
53
+ "bullets": [
54
+ "Developed customer-facing dashboard components in React and TypeScript, improving user engagement metrics by 28%.",
55
+ "Integrated third-party payment gateway and webhook reconciliation system with end-to-end transactional test coverage."
56
+ ]
57
+ }
58
+ ],
59
+ "projects": [
60
+ {
61
+ "id": "proj_vector_search",
62
+ "name": "FlashSearch Engine",
63
+ "technologies": ["Python", "FastAPI", "PostgreSQL", "pgvector", "Docker"],
64
+ "link": "github.com/alexchen/flashsearch",
65
+ "bullets": [
66
+ "Engineered high-performance semantic search engine using FastAPI and pgvector, indexing over 500K documents with sub-60ms query response.",
67
+ "Constructed asynchronous document ingestion pipeline processing multi-format files with automated keyword extraction and chunking."
68
+ ]
69
+ },
70
+ {
71
+ "id": "proj_task_orchestrator",
72
+ "name": "Distributed Job Scheduler",
73
+ "technologies": ["Go", "Redis", "Docker", "Prometheus"],
74
+ "link": "github.com/alexchen/job-orchestrator",
75
+ "bullets": [
76
+ "Built distributed task queue in Go backed by Redis Streams, supporting priority scheduling and automatic retry with exponential backoff.",
77
+ "Configured real-time system telemetry and Grafana dashboards tracking throughput, queue depth, and worker heartbeats."
78
+ ]
79
+ }
80
+ ],
81
+ "education": [
82
+ {
83
+ "institution": "University of California, Berkeley",
84
+ "degree": "B.S.",
85
+ "field_of_study": "Computer Science",
86
+ "start_date": "2018",
87
+ "end_date": "2022",
88
+ "gpa": "3.85",
89
+ "highlights": ["Data Structures", "Algorithms", "Operating Systems", "Database Systems"]
90
+ }
91
+ ],
92
+ "certifications": [
93
+ "AWS Certified Solutions Architect – Associate",
94
+ "Certified Kubernetes Application Developer (CKAD)"
95
+ ]
96
+ }
97
+
@@ -0,0 +1,53 @@
1
+ // Flash Resume - Intelligent Job Description Content Extractor
2
+
3
+ function extractJobDetails() {
4
+ const url = window.location.href;
5
+ let title = "";
6
+ let company = "";
7
+ let jd = "";
8
+
9
+ // 1. LinkedIn Job Page
10
+ if (url.includes("linkedin.com")) {
11
+ title = document.querySelector(".job-details-jobs-unified-top-card__job-title, .topcard__title, h1")?.innerText?.trim() || "";
12
+ company = document.querySelector(".job-details-jobs-unified-top-card__company-name, .topcard__org-name-link, .jobs-unified-top-card__company-name")?.innerText?.trim() || "";
13
+ jd = document.querySelector("#job-details, .jobs-description__content, .description__text")?.innerText?.trim() || "";
14
+ }
15
+ // 2. Indeed Job Page
16
+ else if (url.includes("indeed.com")) {
17
+ title = document.querySelector(".jobsearch-JobInfoHeader-title, h1")?.innerText?.trim() || "";
18
+ company = document.querySelector("[data-company-name='true'], .jobsearch-InlineCompanyRating-companyHeader")?.innerText?.trim() || "";
19
+ jd = document.querySelector("#jobDescriptionText, .jobsearch-jobDescriptionText")?.innerText?.trim() || "";
20
+ }
21
+ // 3. Greenhouse / Lever
22
+ else if (url.includes("greenhouse.io") || url.includes("lever.co")) {
23
+ title = document.querySelector(".app-title, .posting-headline h2, h1")?.innerText?.trim() || "";
24
+ company = document.querySelector(".company-name, .main-header-logo, .posting-headline")?.innerText?.trim() || "";
25
+ jd = document.querySelector("#content, .section-wrapper, .posting-description")?.innerText?.trim() || "";
26
+ }
27
+
28
+ // Fallbacks: If user highlighted text, use the selection
29
+ const selectedText = window.getSelection().toString().trim();
30
+ if (selectedText.length > 50) {
31
+ jd = selectedText;
32
+ }
33
+
34
+ // Generic fallback: grab largest text block or article/main
35
+ if (!jd) {
36
+ const mainEl = document.querySelector("article, main, .job-description, .description");
37
+ if (mainEl) {
38
+ jd = mainEl.innerText.trim();
39
+ }
40
+ }
41
+
42
+ return { title, company, jd };
43
+ }
44
+
45
+ // Listen for messages from popup
46
+ chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
47
+ if (request.action === "extract_job") {
48
+ const details = extractJobDetails();
49
+ sendResponse(details);
50
+ }
51
+ return true;
52
+ });
53
+
@@ -0,0 +1,29 @@
1
+ {
2
+ "manifest_version": 3,
3
+ "name": "Flash Resume - 1-Click ATS Tailor",
4
+ "version": "1.0.0",
5
+ "description": "Tailor your resume for any open job post and download a verified 1-page PDF in seconds.",
6
+ "permissions": [
7
+ "activeTab",
8
+ "scripting",
9
+ "downloads",
10
+ "storage"
11
+ ],
12
+ "host_permissions": [
13
+ "http://127.0.0.1:8000/*",
14
+ "http://localhost:8000/*",
15
+ "https://*/*"
16
+ ],
17
+ "action": {
18
+ "default_popup": "popup.html",
19
+ "default_title": "Flash Resume"
20
+ },
21
+ "content_scripts": [
22
+ {
23
+ "matches": ["https://*/*"],
24
+ "js": ["content.js"],
25
+ "run_at": "document_idle"
26
+ }
27
+ ]
28
+ }
29
+