daemora 1.0.3 → 1.0.5

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 (121) hide show
  1. package/LICENSE +663 -0
  2. package/README.md +69 -19
  3. package/SOUL.md +25 -24
  4. package/daemora-ui/README.md +11 -0
  5. package/package.json +12 -2
  6. package/skills/api-development.md +35 -0
  7. package/skills/artifacts-builder/SKILL.md +74 -0
  8. package/skills/artifacts-builder/scripts/bundle-artifact.sh +54 -0
  9. package/skills/artifacts-builder/scripts/init-artifact.sh +322 -0
  10. package/skills/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  11. package/skills/brand-guidelines.md +73 -0
  12. package/skills/browser.md +77 -0
  13. package/skills/changelog-generator.md +104 -0
  14. package/skills/coding.md +26 -10
  15. package/skills/content-research-writer.md +538 -0
  16. package/skills/data-analysis.md +27 -0
  17. package/skills/debugging.md +33 -0
  18. package/skills/devops.md +37 -0
  19. package/skills/document-docx.md +197 -0
  20. package/skills/document-pdf.md +294 -0
  21. package/skills/document-pptx.md +484 -0
  22. package/skills/document-xlsx.md +289 -0
  23. package/skills/domain-name-brainstormer.md +212 -0
  24. package/skills/file-organizer.md +433 -0
  25. package/skills/frontend-design.md +42 -0
  26. package/skills/image-enhancer.md +99 -0
  27. package/skills/invoice-organizer.md +446 -0
  28. package/skills/lead-research-assistant.md +199 -0
  29. package/skills/mcp-builder/SKILL.md +328 -0
  30. package/skills/mcp-builder/reference/evaluation.md +602 -0
  31. package/skills/mcp-builder/reference/mcp_best_practices.md +915 -0
  32. package/skills/mcp-builder/reference/node_mcp_server.md +916 -0
  33. package/skills/mcp-builder/reference/python_mcp_server.md +752 -0
  34. package/skills/mcp-builder/scripts/connections.py +151 -0
  35. package/skills/mcp-builder/scripts/evaluation.py +373 -0
  36. package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  37. package/skills/mcp-builder/scripts/requirements.txt +2 -0
  38. package/skills/meeting-insights-analyzer.md +327 -0
  39. package/skills/orchestration.md +93 -0
  40. package/skills/raffle-winner-picker.md +159 -0
  41. package/skills/slack-gif-creator/SKILL.md +646 -0
  42. package/skills/slack-gif-creator/core/color_palettes.py +302 -0
  43. package/skills/slack-gif-creator/core/easing.py +230 -0
  44. package/skills/slack-gif-creator/core/frame_composer.py +469 -0
  45. package/skills/slack-gif-creator/core/gif_builder.py +246 -0
  46. package/skills/slack-gif-creator/core/typography.py +357 -0
  47. package/skills/slack-gif-creator/core/validators.py +264 -0
  48. package/skills/slack-gif-creator/core/visual_effects.py +494 -0
  49. package/skills/slack-gif-creator/requirements.txt +4 -0
  50. package/skills/slack-gif-creator/templates/bounce.py +106 -0
  51. package/skills/slack-gif-creator/templates/explode.py +331 -0
  52. package/skills/slack-gif-creator/templates/fade.py +329 -0
  53. package/skills/slack-gif-creator/templates/flip.py +291 -0
  54. package/skills/slack-gif-creator/templates/kaleidoscope.py +211 -0
  55. package/skills/slack-gif-creator/templates/morph.py +329 -0
  56. package/skills/slack-gif-creator/templates/move.py +293 -0
  57. package/skills/slack-gif-creator/templates/pulse.py +268 -0
  58. package/skills/slack-gif-creator/templates/shake.py +127 -0
  59. package/skills/slack-gif-creator/templates/slide.py +291 -0
  60. package/skills/slack-gif-creator/templates/spin.py +269 -0
  61. package/skills/slack-gif-creator/templates/wiggle.py +300 -0
  62. package/skills/slack-gif-creator/templates/zoom.py +312 -0
  63. package/skills/system-admin.md +44 -0
  64. package/skills/tailored-resume-generator.md +345 -0
  65. package/skills/theme-factory/SKILL.md +59 -0
  66. package/skills/theme-factory/theme-showcase.pdf +0 -0
  67. package/skills/theme-factory/themes/arctic-frost.md +19 -0
  68. package/skills/theme-factory/themes/botanical-garden.md +19 -0
  69. package/skills/theme-factory/themes/desert-rose.md +19 -0
  70. package/skills/theme-factory/themes/forest-canopy.md +19 -0
  71. package/skills/theme-factory/themes/golden-hour.md +19 -0
  72. package/skills/theme-factory/themes/midnight-galaxy.md +19 -0
  73. package/skills/theme-factory/themes/modern-minimalist.md +19 -0
  74. package/skills/theme-factory/themes/ocean-depths.md +19 -0
  75. package/skills/theme-factory/themes/sunset-boulevard.md +19 -0
  76. package/skills/theme-factory/themes/tech-innovation.md +19 -0
  77. package/skills/video-downloader.md +99 -0
  78. package/skills/web-development.md +32 -0
  79. package/skills/webapp-testing/SKILL.md +96 -0
  80. package/skills/webapp-testing/examples/console_logging.py +35 -0
  81. package/skills/webapp-testing/examples/element_discovery.py +40 -0
  82. package/skills/webapp-testing/examples/static_html_automation.py +33 -0
  83. package/skills/webapp-testing/scripts/with_server.py +106 -0
  84. package/src/agents/SubAgentManager.js +57 -12
  85. package/src/api/openai-compat.js +212 -0
  86. package/src/channels/TelegramChannel.js +5 -2
  87. package/src/channels/index.js +7 -10
  88. package/src/cli.js +129 -50
  89. package/src/config/agentProfiles.js +1 -0
  90. package/src/config/default.js +10 -0
  91. package/src/config/models.js +317 -71
  92. package/src/config/permissions.js +12 -0
  93. package/src/core/AgentLoop.js +70 -50
  94. package/src/core/Compaction.js +84 -2
  95. package/src/core/MessageQueue.js +90 -0
  96. package/src/core/Task.js +13 -0
  97. package/src/core/TaskQueue.js +1 -1
  98. package/src/core/TaskRunner.js +80 -5
  99. package/src/index.js +328 -48
  100. package/src/mcp/MCPAgentRunner.js +48 -11
  101. package/src/mcp/MCPManager.js +40 -2
  102. package/src/models/ModelRouter.js +67 -1
  103. package/src/safety/DockerSandbox.js +212 -0
  104. package/src/safety/ExecApproval.js +118 -0
  105. package/src/scheduler/Heartbeat.js +56 -21
  106. package/src/services/cleanup.js +106 -0
  107. package/src/services/sessions.js +39 -1
  108. package/src/setup/wizard.js +75 -4
  109. package/src/skills/SkillLoader.js +104 -17
  110. package/src/storage/TaskStore.js +19 -1
  111. package/src/systemPrompt.js +171 -328
  112. package/src/tools/browserAutomation.js +615 -104
  113. package/src/tools/executeCommand.js +19 -1
  114. package/src/tools/index.js +6 -0
  115. package/src/tools/manageAgents.js +55 -4
  116. package/src/tools/replyWithFile.js +62 -0
  117. package/src/tools/screenCapture.js +12 -1
  118. package/src/tools/taskManager.js +164 -0
  119. package/src/tools/useMCP.js +3 -1
  120. package/src/utils/Embeddings.js +157 -10
  121. package/src/webhooks/WebhookHandler.js +107 -0
@@ -0,0 +1,312 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Zoom Animation - Scale objects dramatically for emphasis.
4
+
5
+ Creates zoom in, zoom out, and dramatic scaling effects.
6
+ """
7
+
8
+ import sys
9
+ from pathlib import Path
10
+ import math
11
+
12
+ sys.path.append(str(Path(__file__).parent.parent))
13
+
14
+ from PIL import Image, ImageFilter
15
+ from core.gif_builder import GIFBuilder
16
+ from core.frame_composer import create_blank_frame, draw_emoji_enhanced
17
+ from core.easing import interpolate
18
+
19
+
20
+ def create_zoom_animation(
21
+ object_type: str = 'emoji',
22
+ object_data: dict | None = None,
23
+ num_frames: int = 30,
24
+ zoom_type: str = 'in', # 'in', 'out', 'in_out', 'punch'
25
+ scale_range: tuple[float, float] = (0.1, 2.0),
26
+ easing: str = 'ease_out',
27
+ add_motion_blur: bool = False,
28
+ center_pos: tuple[int, int] = (240, 240),
29
+ frame_width: int = 480,
30
+ frame_height: int = 480,
31
+ bg_color: tuple[int, int, int] = (255, 255, 255)
32
+ ) -> list[Image.Image]:
33
+ """
34
+ Create zoom animation.
35
+
36
+ Args:
37
+ object_type: 'emoji', 'text', 'image'
38
+ object_data: Object configuration
39
+ num_frames: Number of frames
40
+ zoom_type: Type of zoom effect
41
+ scale_range: (start_scale, end_scale) tuple
42
+ easing: Easing function
43
+ add_motion_blur: Add blur for speed effect
44
+ center_pos: Center position
45
+ frame_width: Frame width
46
+ frame_height: Frame height
47
+ bg_color: Background color
48
+
49
+ Returns:
50
+ List of frames
51
+ """
52
+ frames = []
53
+
54
+ # Default object data
55
+ if object_data is None:
56
+ if object_type == 'emoji':
57
+ object_data = {'emoji': '🔍', 'size': 100}
58
+
59
+ base_size = object_data.get('size', 100) if object_type == 'emoji' else object_data.get('font_size', 60)
60
+ start_scale, end_scale = scale_range
61
+
62
+ for i in range(num_frames):
63
+ t = i / (num_frames - 1) if num_frames > 1 else 0
64
+
65
+ # Calculate scale based on zoom type
66
+ if zoom_type == 'in':
67
+ scale = interpolate(start_scale, end_scale, t, easing)
68
+ elif zoom_type == 'out':
69
+ scale = interpolate(end_scale, start_scale, t, easing)
70
+ elif zoom_type == 'in_out':
71
+ if t < 0.5:
72
+ scale = interpolate(start_scale, end_scale, t * 2, easing)
73
+ else:
74
+ scale = interpolate(end_scale, start_scale, (t - 0.5) * 2, easing)
75
+ elif zoom_type == 'punch':
76
+ # Quick zoom in with overshoot then settle
77
+ if t < 0.3:
78
+ scale = interpolate(start_scale, end_scale * 1.2, t / 0.3, 'ease_out')
79
+ else:
80
+ scale = interpolate(end_scale * 1.2, end_scale, (t - 0.3) / 0.7, 'elastic_out')
81
+ else:
82
+ scale = interpolate(start_scale, end_scale, t, easing)
83
+
84
+ # Create frame
85
+ frame = create_blank_frame(frame_width, frame_height, bg_color)
86
+
87
+ if object_type == 'emoji':
88
+ current_size = int(base_size * scale)
89
+
90
+ # Clamp size to reasonable bounds
91
+ current_size = max(12, min(current_size, frame_width * 2))
92
+
93
+ # Create emoji on transparent background
94
+ canvas_size = max(frame_width, frame_height, current_size) * 2
95
+ emoji_canvas = Image.new('RGBA', (canvas_size, canvas_size), (0, 0, 0, 0))
96
+
97
+ draw_emoji_enhanced(
98
+ emoji_canvas,
99
+ emoji=object_data['emoji'],
100
+ position=(canvas_size // 2 - current_size // 2, canvas_size // 2 - current_size // 2),
101
+ size=current_size,
102
+ shadow=False
103
+ )
104
+
105
+ # Optional motion blur for fast zooms
106
+ if add_motion_blur and abs(scale - 1.0) > 0.5:
107
+ blur_amount = min(5, int(abs(scale - 1.0) * 3))
108
+ emoji_canvas = emoji_canvas.filter(ImageFilter.GaussianBlur(blur_amount))
109
+
110
+ # Crop to frame size centered
111
+ left = (canvas_size - frame_width) // 2
112
+ top = (canvas_size - frame_height) // 2
113
+ emoji_cropped = emoji_canvas.crop((left, top, left + frame_width, top + frame_height))
114
+
115
+ # Composite
116
+ frame_rgba = frame.convert('RGBA')
117
+ frame = Image.alpha_composite(frame_rgba, emoji_cropped)
118
+ frame = frame.convert('RGB')
119
+
120
+ elif object_type == 'text':
121
+ from core.typography import draw_text_with_outline
122
+
123
+ current_size = int(base_size * scale)
124
+ current_size = max(10, min(current_size, 500))
125
+
126
+ # Create oversized canvas for large text
127
+ canvas_size = max(frame_width, frame_height, current_size * 10)
128
+ text_canvas = Image.new('RGB', (canvas_size, canvas_size), bg_color)
129
+
130
+ draw_text_with_outline(
131
+ text_canvas,
132
+ text=object_data.get('text', 'ZOOM'),
133
+ position=(canvas_size // 2, canvas_size // 2),
134
+ font_size=current_size,
135
+ text_color=object_data.get('text_color', (0, 0, 0)),
136
+ outline_color=object_data.get('outline_color', (255, 255, 255)),
137
+ outline_width=max(2, int(current_size * 0.05)),
138
+ centered=True
139
+ )
140
+
141
+ # Crop to frame
142
+ left = (canvas_size - frame_width) // 2
143
+ top = (canvas_size - frame_height) // 2
144
+ frame = text_canvas.crop((left, top, left + frame_width, top + frame_height))
145
+
146
+ frames.append(frame)
147
+
148
+ return frames
149
+
150
+
151
+ def create_explosion_zoom(
152
+ emoji: str = '💥',
153
+ num_frames: int = 20,
154
+ frame_width: int = 480,
155
+ frame_height: int = 480,
156
+ bg_color: tuple[int, int, int] = (255, 255, 255)
157
+ ) -> list[Image.Image]:
158
+ """
159
+ Create dramatic explosion zoom effect.
160
+
161
+ Args:
162
+ emoji: Emoji to explode
163
+ num_frames: Number of frames
164
+ frame_width: Frame width
165
+ frame_height: Frame height
166
+ bg_color: Background color
167
+
168
+ Returns:
169
+ List of frames
170
+ """
171
+ frames = []
172
+
173
+ for i in range(num_frames):
174
+ t = i / (num_frames - 1) if num_frames > 1 else 0
175
+
176
+ # Exponential zoom
177
+ scale = 0.1 * math.exp(t * 5)
178
+
179
+ # Add rotation for drama
180
+ angle = t * 360 * 2
181
+
182
+ frame = create_blank_frame(frame_width, frame_height, bg_color)
183
+
184
+ current_size = int(100 * scale)
185
+ current_size = max(12, min(current_size, frame_width * 3))
186
+
187
+ # Create emoji
188
+ canvas_size = max(frame_width, frame_height, current_size) * 2
189
+ emoji_canvas = Image.new('RGBA', (canvas_size, canvas_size), (0, 0, 0, 0))
190
+
191
+ draw_emoji_enhanced(
192
+ emoji_canvas,
193
+ emoji=emoji,
194
+ position=(canvas_size // 2 - current_size // 2, canvas_size // 2 - current_size // 2),
195
+ size=current_size,
196
+ shadow=False
197
+ )
198
+
199
+ # Rotate
200
+ emoji_canvas = emoji_canvas.rotate(angle, center=(canvas_size // 2, canvas_size // 2), resample=Image.BICUBIC)
201
+
202
+ # Add motion blur for later frames
203
+ if t > 0.5:
204
+ blur_amount = int((t - 0.5) * 10)
205
+ emoji_canvas = emoji_canvas.filter(ImageFilter.GaussianBlur(blur_amount))
206
+
207
+ # Crop and composite
208
+ left = (canvas_size - frame_width) // 2
209
+ top = (canvas_size - frame_height) // 2
210
+ emoji_cropped = emoji_canvas.crop((left, top, left + frame_width, top + frame_height))
211
+
212
+ frame_rgba = frame.convert('RGBA')
213
+ frame = Image.alpha_composite(frame_rgba, emoji_cropped)
214
+ frame = frame.convert('RGB')
215
+
216
+ frames.append(frame)
217
+
218
+ return frames
219
+
220
+
221
+ def create_mind_blown_zoom(
222
+ emoji: str = '🤯',
223
+ num_frames: int = 30,
224
+ frame_width: int = 480,
225
+ frame_height: int = 480,
226
+ bg_color: tuple[int, int, int] = (255, 255, 255)
227
+ ) -> list[Image.Image]:
228
+ """
229
+ Create "mind blown" dramatic zoom with shake.
230
+
231
+ Args:
232
+ emoji: Emoji to use
233
+ num_frames: Number of frames
234
+ frame_width: Frame width
235
+ frame_height: Frame height
236
+ bg_color: Background color
237
+
238
+ Returns:
239
+ List of frames
240
+ """
241
+ frames = []
242
+
243
+ for i in range(num_frames):
244
+ t = i / (num_frames - 1) if num_frames > 1 else 0
245
+
246
+ # Zoom in then shake
247
+ if t < 0.5:
248
+ scale = interpolate(0.3, 1.2, t * 2, 'ease_out')
249
+ shake_x = 0
250
+ shake_y = 0
251
+ else:
252
+ scale = 1.2
253
+ # Shake intensifies
254
+ shake_intensity = (t - 0.5) * 40
255
+ shake_x = int(math.sin(t * 50) * shake_intensity)
256
+ shake_y = int(math.cos(t * 45) * shake_intensity)
257
+
258
+ frame = create_blank_frame(frame_width, frame_height, bg_color)
259
+
260
+ current_size = int(100 * scale)
261
+ center_x = frame_width // 2 + shake_x
262
+ center_y = frame_height // 2 + shake_y
263
+
264
+ emoji_canvas = Image.new('RGBA', (frame_width, frame_height), (0, 0, 0, 0))
265
+ draw_emoji_enhanced(
266
+ emoji_canvas,
267
+ emoji=emoji,
268
+ position=(center_x - current_size // 2, center_y - current_size // 2),
269
+ size=current_size,
270
+ shadow=False
271
+ )
272
+
273
+ frame_rgba = frame.convert('RGBA')
274
+ frame = Image.alpha_composite(frame_rgba, emoji_canvas)
275
+ frame = frame.convert('RGB')
276
+
277
+ frames.append(frame)
278
+
279
+ return frames
280
+
281
+
282
+ # Example usage
283
+ if __name__ == '__main__':
284
+ print("Creating zoom animations...")
285
+
286
+ builder = GIFBuilder(width=480, height=480, fps=20)
287
+
288
+ # Example 1: Zoom in
289
+ frames = create_zoom_animation(
290
+ object_type='emoji',
291
+ object_data={'emoji': '🔍', 'size': 100},
292
+ num_frames=30,
293
+ zoom_type='in',
294
+ scale_range=(0.1, 1.5),
295
+ easing='ease_out'
296
+ )
297
+ builder.add_frames(frames)
298
+ builder.save('zoom_in.gif', num_colors=128)
299
+
300
+ # Example 2: Explosion zoom
301
+ builder.clear()
302
+ frames = create_explosion_zoom(emoji='💥', num_frames=20)
303
+ builder.add_frames(frames)
304
+ builder.save('zoom_explosion.gif', num_colors=128)
305
+
306
+ # Example 3: Mind blown
307
+ builder.clear()
308
+ frames = create_mind_blown_zoom(emoji='🤯', num_frames=30)
309
+ builder.add_frames(frames)
310
+ builder.save('zoom_mind_blown.gif', num_colors=128)
311
+
312
+ print("Created zoom animations!")
@@ -0,0 +1,44 @@
1
+ ---
2
+ name: system-admin
3
+ description: Linux commands, process management, monitoring, log analysis, server administration
4
+ triggers: linux, process, service, systemctl, log, monitor, disk, memory, cpu, network, firewall, cron, ssh, permission, chmod, chown, user, group, package, apt, brew, yum
5
+ ---
6
+ ## Process Management
7
+ - List: `ps aux | grep name`, `pgrep -la name`
8
+ - Kill: `kill PID` (graceful), `kill -9 PID` (force)
9
+ - Top: `htop` or `top -o %CPU`
10
+ - Background: `command &`, `nohup command &`, `disown`
11
+
12
+ ## Disk & Storage
13
+ - Usage: `df -h` (mounts), `du -sh /path/*` (directory sizes)
14
+ - Find large files: `find / -type f -size +100M -exec ls -lh {} \;`
15
+ - Cleanup: `apt autoremove`, clear caches, old logs
16
+
17
+ ## Networking
18
+ - Ports: `ss -tlnp` (listening), `lsof -i :port`
19
+ - Connectivity: `ping`, `curl -I url`, `traceroute host`
20
+ - DNS: `dig domain`, `nslookup domain`
21
+ - Firewall: `ufw status` (Ubuntu), `iptables -L`
22
+
23
+ ## Log Analysis
24
+ - Tail: `tail -f /var/log/syslog`
25
+ - Search: `grep -i error /var/log/app.log | tail -20`
26
+ - Journal: `journalctl -u service -f --since "1 hour ago"`
27
+ - Count patterns: `grep -c "ERROR" logfile`
28
+
29
+ ## System Info
30
+ - OS: `uname -a`, `cat /etc/os-release`
31
+ - Memory: `free -h`
32
+ - CPU: `nproc`, `lscpu`
33
+ - Uptime: `uptime`
34
+
35
+ ## Package Management
36
+ - macOS: `brew install/update/upgrade/list`
37
+ - Ubuntu/Debian: `apt update && apt install pkg`
38
+ - Node.js: `npm/pnpm install`, `nvm use version`
39
+
40
+ ## Don't
41
+ - Don't run `rm -rf /` or destructive commands without confirming scope
42
+ - Don't change permissions to 777 — use minimum required
43
+ - Don't edit system config files without backup
44
+ - Don't kill processes without understanding what they do
@@ -0,0 +1,345 @@
1
+ ---
2
+ name: tailored-resume-generator
3
+ description: Analyzes job descriptions and generates tailored resumes that highlight relevant experience, skills, and achievements to maximize interview chances
4
+ ---
5
+
6
+ # Tailored Resume Generator
7
+
8
+ ## When to Use This Skill
9
+
10
+ - Applying for a specific job position
11
+ - Customizing your resume for different industries or roles
12
+ - Highlighting relevant experience for career transitions
13
+ - Optimizing your resume for ATS (Applicant Tracking Systems)
14
+ - Creating multiple resume versions for different job applications
15
+ - Emphasizing specific skills mentioned in job postings
16
+
17
+ ## What This Skill Does
18
+
19
+ 1. **Analyzes Job Descriptions**: Extracts key requirements, skills, qualifications, and keywords from job postings
20
+ 2. **Identifies Priorities**: Determines what employers value most based on the job description language and structure
21
+ 3. **Tailors Content**: Reorganizes and emphasizes relevant experience, skills, and achievements
22
+ 4. **Optimizes Keywords**: Incorporates ATS-friendly keywords naturally throughout the resume
23
+ 5. **Formats Professionally**: Creates clean, professional resume layouts suitable for various formats
24
+ 6. **Provides Recommendations**: Suggests improvements and highlights gaps to address
25
+
26
+ ## How to Use
27
+
28
+ ### Basic Usage
29
+ Provide a job description and your background information:
30
+
31
+ ```
32
+ I'm applying for this job:
33
+
34
+ [paste job description]
35
+
36
+ Here's my background:
37
+ - 5 years as software engineer at TechCorp
38
+ - Led team of 3 developers on mobile app project
39
+ - Expert in Python, JavaScript, React
40
+ - Computer Science degree from State University
41
+ ```
42
+
43
+ ### With Existing Resume
44
+ Upload or paste your current resume along with the job description:
45
+
46
+ ```
47
+ Please tailor my resume for this position:
48
+
49
+ Job Description:
50
+ [paste job description]
51
+
52
+ My Current Resume:
53
+ [paste resume content]
54
+ ```
55
+
56
+ ### Career Transition
57
+ When changing industries or roles:
58
+
59
+ ```
60
+ I'm transitioning from marketing to product management.
61
+ Here's the job I'm applying for:
62
+
63
+ [paste job description]
64
+
65
+ My transferable experience:
66
+ - 7 years in digital marketing
67
+ - Led cross-functional teams
68
+ - Managed product launches
69
+ - Data analysis and A/B testing
70
+ ```
71
+
72
+ ## Example
73
+
74
+ **User Request:**
75
+ ```
76
+ I need a tailored resume for this job:
77
+
78
+ Senior Data Analyst Position
79
+
80
+ Requirements:
81
+ - 5+ years experience in data analysis
82
+ - Expert in SQL, Python, and data visualization tools
83
+ - Experience with A/B testing and statistical analysis
84
+ - Strong communication skills to present findings
85
+ - Healthcare industry experience preferred
86
+
87
+ My background:
88
+ - Data Analyst at RetailCo (2019-2024)
89
+ - Created dashboards using Tableau and Power BI
90
+ - Built Python scripts for data automation
91
+ - Worked with marketing team on campaign analysis
92
+ - Business Analytics degree
93
+ - Also did 1 year internship at HealthPlus clinic
94
+ ```
95
+
96
+ **Generated Output:**
97
+
98
+ ```markdown
99
+ # JOHN DOE
100
+ Email: john.doe@email.com | Phone: (555) 123-4567 | LinkedIn: linkedin.com/in/johndoe
101
+
102
+ ## PROFESSIONAL SUMMARY
103
+ Results-driven Data Analyst with 5+ years of experience leveraging SQL, Python, and advanced
104
+ visualization tools to deliver actionable insights. Proven track record in statistical analysis,
105
+ A/B testing, and cross-functional collaboration. Healthcare industry experience with strong
106
+ ability to communicate complex data findings to stakeholders.
107
+
108
+ ## TECHNICAL SKILLS
109
+ - **Data Analysis & Programming**: SQL, Python, Statistical Analysis, A/B Testing
110
+ - **Visualization Tools**: Tableau, Power BI, Advanced Dashboard Development
111
+ - **Data Management**: Data Automation, ETL Processes, Database Optimization
112
+ - **Business Intelligence**: Campaign Analytics, Performance Metrics, KPI Tracking
113
+
114
+ ## PROFESSIONAL EXPERIENCE
115
+
116
+ **Data Analyst** | RetailCo | 2019 - 2024
117
+ - Designed and implemented 50+ SQL queries and Python automation scripts, reducing manual
118
+ data processing time by 60%
119
+ - Conducted rigorous A/B testing and statistical analysis for marketing campaigns,
120
+ improving campaign ROI by 35%
121
+ - Built interactive Tableau and Power BI dashboards for executive team, enabling
122
+ data-driven decision making
123
+ - Presented analytical findings to cross-functional stakeholders including marketing,
124
+ operations, and executive leadership
125
+ - Collaborated with marketing team to analyze customer behavior patterns and optimize
126
+ targeting strategies
127
+
128
+ **Data Analysis Intern** | HealthPlus Clinic | 2018 - 2019
129
+ - Supported healthcare analytics initiatives by analyzing patient data and operational metrics
130
+ - Gained exposure to healthcare industry data management and HIPAA compliance requirements
131
+ - Assisted in creating reports for clinical staff to improve patient care workflows
132
+
133
+ ## EDUCATION
134
+
135
+ **Bachelor of Science in Business Analytics**
136
+ State University | Graduated 2018
137
+
138
+ ## KEY ACHIEVEMENTS
139
+ - Reduced data processing time by 60% through Python automation
140
+ - Improved marketing campaign ROI by 35% through A/B testing and optimization
141
+ - Created data visualization system now used across entire organization
142
+ ```
143
+
144
+ **Additional Recommendations:**
145
+ - Consider adding any specific healthcare projects or certifications
146
+ - Quantify more achievements with metrics when possible
147
+ - If you have experience with R or advanced statistical methods, add them
148
+ - Consider mentioning any familiarity with healthcare regulations (HIPAA, etc.)
149
+
150
+ ---
151
+
152
+ ## Instructions
153
+
154
+ When a user requests resume tailoring:
155
+
156
+ ### 1. Gather Information
157
+
158
+ **Job Description Analysis**:
159
+ - Request the full job description if not provided
160
+ - Ask for the company name and job title
161
+
162
+ **Candidate Background**:
163
+ - If user provides existing resume, use it as the foundation
164
+ - If not, request:
165
+ - Work history (job titles, companies, dates, responsibilities)
166
+ - Education background
167
+ - Key skills and technical proficiencies
168
+ - Notable achievements and metrics
169
+ - Certifications or awards
170
+ - Any other relevant information
171
+
172
+ ### 2. Analyze Job Requirements
173
+
174
+ Extract and prioritize:
175
+ - **Must-have qualifications**: Years of experience, required skills, education
176
+ - **Key skills**: Technical tools, methodologies, competencies
177
+ - **Soft skills**: Communication, leadership, teamwork
178
+ - **Industry knowledge**: Domain-specific experience
179
+ - **Keywords**: Repeated terms, phrases, and buzzwords for ATS optimization
180
+ - **Company values**: Cultural fit indicators from job description
181
+
182
+ Create a mental map of:
183
+ - Priority 1: Critical requirements (deal-breakers)
184
+ - Priority 2: Important qualifications (strongly desired)
185
+ - Priority 3: Nice-to-have skills (bonus points)
186
+
187
+ ### 3. Map Candidate Experience to Requirements
188
+
189
+ For each job requirement:
190
+ - Identify matching experience from candidate's background
191
+ - Find transferable skills if no direct match
192
+ - Note gaps that need to be addressed or de-emphasized
193
+ - Identify unique strengths to highlight
194
+
195
+ ### 4. Structure the Tailored Resume
196
+
197
+ **Professional Summary** (3-4 lines):
198
+ - Lead with years of experience in the target role/field
199
+ - Include top 3-4 required skills from job description
200
+ - Mention industry experience if relevant
201
+ - Highlight unique value proposition
202
+
203
+ **Technical/Core Skills Section**:
204
+ - Group skills by category matching job requirements
205
+ - List required tools and technologies first
206
+ - Use exact terminology from job description
207
+ - Only include skills you can substantiate with experience
208
+
209
+ **Professional Experience**:
210
+ - For each role, emphasize responsibilities and achievements aligned with job requirements
211
+ - Use action verbs: Led, Developed, Implemented, Optimized, Managed, Created, Analyzed
212
+ - **Quantify achievements**: Include numbers, percentages, timeframes, scale
213
+ - Reorder bullet points to prioritize most relevant experience
214
+ - Use keywords naturally from job description
215
+ - Format: **[Action Verb] + [What] + [How/Why] + [Result/Impact]**
216
+
217
+ **Education**:
218
+ - List degrees, certifications relevant to position
219
+ - Include relevant coursework if early career
220
+ - Add certifications that match job requirements
221
+
222
+ **Optional Sections** (if applicable):
223
+ - Certifications & Licenses
224
+ - Publications or Speaking Engagements
225
+ - Awards & Recognition
226
+ - Volunteer Work (if relevant to role)
227
+ - Projects (especially for technical roles)
228
+
229
+ ### 5. Optimize for ATS (Applicant Tracking Systems)
230
+
231
+ - Use standard section headings (Professional Experience, Education, Skills)
232
+ - Incorporate exact keywords from job description naturally
233
+ - Avoid tables, graphics, headers/footers, or complex formatting
234
+ - Use standard fonts and bullet points
235
+ - Include both acronyms and full terms (e.g., "SQL (Structured Query Language)")
236
+ - Match job title terminology where truthful
237
+
238
+ ### 6. Format and Present
239
+
240
+ **Format Options**:
241
+ - **Markdown**: Clean, readable, easy to copy
242
+ - **Plain Text**: ATS-optimized, safe for all systems
243
+ - **Tips for Word/PDF**: Provide formatting guidance
244
+
245
+ **Resume Structure Guidelines**:
246
+ - Keep to 1 page for <10 years experience, 2 pages for 10+ years
247
+ - Use consistent formatting and spacing
248
+ - Ensure contact information is prominent
249
+ - Use reverse chronological order (most recent first)
250
+ - Maintain clean, scannable layout with white space
251
+
252
+ ### 7. Provide Strategic Recommendations
253
+
254
+ After presenting the tailored resume, offer:
255
+
256
+ **Strengths Analysis**:
257
+ - What makes this candidate competitive
258
+ - Unique qualifications to emphasize in cover letter or interview
259
+
260
+ **Gap Analysis**:
261
+ - Requirements not fully met
262
+ - Suggestions for addressing gaps (courses, projects, reframing experience)
263
+
264
+ **Interview Preparation Tips**:
265
+ - Key talking points aligned with resume
266
+ - Stories to prepare based on job requirements
267
+ - Questions to ask that demonstrate fit
268
+
269
+ **Cover Letter Hooks**:
270
+ - Suggest 2-3 opening lines for cover letter
271
+ - Key achievements to expand upon
272
+
273
+ ### 8. Iterate and Refine
274
+
275
+ Ask if user wants to:
276
+ - Adjust emphasis or tone
277
+ - Add or remove sections
278
+ - Generate alternative versions for different roles
279
+ - Create format variations (traditional vs. modern)
280
+ - Develop role-specific versions (if applying to multiple similar positions)
281
+
282
+ ### 9. Best Practices to Follow
283
+
284
+ **Do**:
285
+ - Be truthful and accurate - never fabricate experience
286
+ - Use industry-standard terminology
287
+ - Quantify achievements with specific metrics
288
+ - Tailor each resume to specific job
289
+ - Proofread for grammar and consistency
290
+ - Keep language concise and impactful
291
+
292
+ **Don't**:
293
+ - Include personal information (age, marital status, photo unless requested)
294
+ - Use first-person pronouns (I, me, my)
295
+ - Include references ("available upon request" is outdated)
296
+ - List every job if career is 20+ years (focus on relevant, recent experience)
297
+ - Use generic templates without customization
298
+ - Exceed 2 pages unless very senior role
299
+
300
+ ### 10. Special Considerations
301
+
302
+ **Career Changers**:
303
+ - Use functional or hybrid resume format
304
+ - Emphasize transferable skills
305
+ - Create compelling narrative in summary
306
+ - Focus on relevant projects and coursework
307
+
308
+ **Recent Graduates**:
309
+ - Lead with education
310
+ - Include relevant coursework, projects, internships
311
+ - Emphasize leadership in student organizations
312
+ - Include GPA if 3.5+
313
+
314
+ **Senior Executives**:
315
+ - Lead with executive summary
316
+ - Focus on leadership and strategic impact
317
+ - Include board memberships, speaking engagements
318
+ - Emphasize revenue growth, team building, vision
319
+
320
+ **Technical Roles**:
321
+ - Include technical skills section prominently
322
+ - List programming languages, frameworks, tools
323
+ - Include GitHub, portfolio, or project links
324
+ - Mention methodologies (Agile, Scrum, etc.)
325
+
326
+ **Creative Roles**:
327
+ - Include link to portfolio
328
+ - Highlight creative achievements and campaigns
329
+ - Mention tools and software proficiencies
330
+ - Consider more creative formatting (while maintaining ATS compatibility)
331
+
332
+ ---
333
+
334
+ ## Tips for Best Results
335
+
336
+ - **Be specific**: Provide complete job descriptions and detailed background information
337
+ - **Share metrics**: Include numbers, percentages, and quantifiable achievements when describing your experience
338
+ - **Indicate format preference**: Let the skill know if you need ATS-optimized, creative, or traditional format
339
+ - **Mention constraints**: Share any specific requirements (page limits, sections to include/exclude)
340
+ - **Iterate**: Don't hesitate to ask for revisions or alternative approaches
341
+ - **Multiple applications**: Generate separate tailored versions for different roles
342
+
343
+ ## Privacy Note
344
+
345
+ This skill processes your personal and professional information to generate tailored resumes. Always review the output before submitting to ensure accuracy and appropriateness. Remove or modify any information you prefer not to share with potential employers.