<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Utility |</title><link>https://yu-cheng.co/tags/utility/</link><atom:link href="https://yu-cheng.co/tags/utility/index.xml" rel="self" type="application/rss+xml"/><description>Utility</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Thu, 18 May 2023 19:39:48 -0400</lastBuildDate><image><url>https://yu-cheng.co/media/icon_hu_87a968e0c4fc153c.png</url><title>Utility</title><link>https://yu-cheng.co/tags/utility/</link></image><item><title>Supercharging Your Job Hunt with ChatGPT and Espanso</title><link>https://yu-cheng.co/blog/chat-gpt-espanso/</link><pubDate>Thu, 18 May 2023 19:39:48 -0400</pubDate><guid>https://yu-cheng.co/blog/chat-gpt-espanso/</guid><description>&lt;h3 id="job-searching-with-chatgpt"&gt;Job Searching with ChatGPT&lt;/h3&gt;
&lt;p&gt;The meteoric rise of ChatGPT since its launch has made it a hot topic everywhere. An ever-increasing array of courses and articles dedicated to refining the art of prompting with language learning models (LLMs) emerges every second. Here is a great
of effective prompting snippets that I always come back to.&lt;/p&gt;
&lt;p&gt;Recently, I found myself back in the job market due to a corporate restructure. While thinking about my next move, it struck me - why not harness the prowess of ChatGPT to streamline my job search? A quick google search (I haven&amp;rsquo;t jumped ship to Bing &amp;#x1f60f;) led me to this great video by Jeff Su (
,
).&lt;/p&gt;
&lt;p&gt;His insightful videos underscores some facets of job-hunting where ChatGPT excels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Customizing resumes and cover letters according to the job description&lt;/li&gt;
&lt;li&gt;Optimizing resume bullet points using successful templates&lt;/li&gt;
&lt;li&gt;Crafting incisive questions for the company/interviewers&lt;/li&gt;
&lt;li&gt;Drafting personalized LinkedIn messages to secure coffee chats&lt;/li&gt;
&lt;li&gt;Interview preparation (compiling prepared questions and answers)&lt;/li&gt;
&lt;li&gt;Composing impactful &amp;lsquo;Thank You&amp;rsquo; emails&lt;/li&gt;
&lt;li&gt;Negotiating job offers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Given that my job hunt has been progressing at a slower pace than I&amp;rsquo;d like, this post will focus on the utilization of ChatGPT in tailoring cover letters and resumes. Moreover, I will be discussing how Espanso can expedite these complex prompting steps.&lt;/p&gt;
&lt;h3 id="use-espanso-to-speed-things-up"&gt;Use Espanso to speed things up&lt;/h3&gt;
&lt;p&gt;The intricate prompting steps mainly comprise:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Assigning an identity to ChatGPT - think of a resume writing maestro with two decades of experience, or a seasoned tech recruiter, etc.&lt;/li&gt;
&lt;li&gt;Providing comprehensive context, summarizing the previous step&amp;rsquo;s output, and incorporating it into the next prompt.&lt;/li&gt;
&lt;li&gt;Constraining the output format, for instance, into a predefined table.&lt;/li&gt;
&lt;li&gt;Specifically instructing ChatGPT to refrain from fabricating information.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It wasn&amp;rsquo;t long before I realized that repeatedly typing the same prompts was anything but fun. That&amp;rsquo;s when
, a tool I&amp;rsquo;d previously utilized, sprung to mind. Espanso is an open-source text expander. Think of it as an auto-complete feature for modern IDEs that you can use anywhere you can type.&lt;/p&gt;
&lt;h4 id="getting-started-with-espanso"&gt;Getting Started with Espanso&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Download &lt;code&gt;Espanso&lt;/code&gt; binary
, follow the setup instructions and provide necessary permisions.&lt;/li&gt;
&lt;li&gt;In terminal, &lt;code&gt;espanso status&lt;/code&gt; will show if &lt;code&gt;espanso&lt;/code&gt; is running in the background, or check the icon in the status bar.&lt;/li&gt;
&lt;li&gt;A simple example and some pre-built keywords &lt;code&gt;:espanso&lt;/code&gt; will automatically change into &lt;code&gt;Hi there!&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;To modify Espanso configuration and add more keywords and match rules, enter &lt;code&gt;espanso path&lt;/code&gt; to locate the configuration folder.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;configuration folder&lt;/code&gt;, something like &lt;code&gt;/Users/&amp;lt;username&amp;gt;/Library/Application\ Support/espanso&lt;/code&gt; (Mac for example), contains two subfolders, &lt;code&gt;config/default.yml&lt;/code&gt; and &lt;code&gt;match/base.yml&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;ul&gt;
&lt;li&gt;The files contained in the match directory define WHAT Espanso should do. In other words, this is where you should specify all the custom snippets and actions (aka Matches).&lt;/li&gt;
&lt;li&gt;The files contained in the config directory define HOW Espanso should perform its expansions. In other words, this is were you should specify all Espanso&amp;rsquo;s parameters and options.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;ol start="6"&gt;
&lt;li&gt;Whenever you alter the configuration, remember to use &lt;code&gt;espanso restart&lt;/code&gt; to ensure the changes are active.&lt;/li&gt;
&lt;li&gt;Press &lt;code&gt;Alt + Space&lt;/code&gt; (or &lt;code&gt;Opt + Space&lt;/code&gt; for Mac) to pull up the search bar for available keywords.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You can find more details
.&lt;/p&gt;
&lt;h4 id="sample-triggers"&gt;Sample triggers&lt;/h4&gt;
&lt;p&gt;Here are some of my Espanso &lt;code&gt;match&lt;/code&gt; rules specifically for ChatGPT. I’ve bracketed the job description and resume since they frequently need adjusting to fit specific job requirements. &lt;em&gt;The &amp;ldquo;|&amp;rdquo; allows multiple lines to replace when setting the matching rules.&lt;/em&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;matches&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# Simple text replacement&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;trigger&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;:jdsum&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="sd"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; Based on the job description, what are the biggest challenge for the position will face day-to-day.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; Please see quoted part between brackets for the job description.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; {job description}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;trigger&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;:jdskills&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Based on the job description, List out the necessary skills by categories into a table.&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;trigger&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;:covergrab&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="sd"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; &amp;#34;Based on the resume posted below. {resume}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; You are currently working as a Data Scientist at a startup with 5 years of inter-disciplinary experience and you would love to apply for the position based on the job description.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; Write an attention-grabbing hook for you cover letter that highlights your experience and qualifications in a way that shows you empathize and can successfully take on the challenges of the data scientist role.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; Consider incorporating specific examples of how you&amp;#39;ve tackled these challenges in your past works and explore creative ways to express your enthusiasm for the opportunity. Keep your hook within 100 words.&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;trigger&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;:coverall&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="sd"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; &amp;#34;Incorporate the attention grabbing hook above, and compose a cover letter under 300 words.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sd"&gt; Please do not make up information, and focus on the enthusiasm of the opportunity.&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Hope these help! Stay commited, stay positive!&lt;/p&gt;</description></item></channel></rss>