Inspiration
In the current job market, especially for developers, there are many hoops to jump through. It feels like everything is stacked in favour of the employer, and the developer is simply subject to whatever hoops they're asked to jump through. With an AI assistant, there is now an unprecedented ability to level the playing field.
What it does
Applyify is a Chrome extension using the Gemini Nano built in AI. It opens a side panel that analyses the job listing page you have open - giving you powerful insight into the skills required for the job, how to optimise your resume, and what sort of cover letter you should submit.
How we built it
We're beginners to webdev, but we used the Gemini Nano prompt and writer APIs to generate info about the job currently being viewed by the user. We wrote a custom scraper to get the data to Gemini as quick as possible. Additionally, we used a bunch of Google Chrome APIs, notably, the side panel for the main interface, and the local storage for passing through information about the job and storing the user's resume and settings.
Challenges we ran into
When working with generative models, we found it extremely important to give the user appropriate control over reattempting responses, and handling errors. The problem was with the evolving gemini AI, and the non-blocking loop of js, we were getting stuck cleaning up and waiting for gemini responses. Learning web dev, and hence event handling and DOM related code, we had to develop a robust pipeline for ensuring consistent output. We're still not quite there yet, but have many ideas of how we can refine and consolidate the response, which will operate in parallel to the continued improvement of Gemini Nano.
It was also suprisingly difficult to get the AI to cooperate with the end-goals of the app. Its difficult to seperate out responses, when Gemini Nano is prone to deviate from its input. Especially problematic was the fact that we were passing in large input, such as resumes, and expecting large output. Future work could seek to refine output to be smaller, and more focussed on rigorous prompt engineering.
Accomplishments that we're proud of
We're very proud of the interface. The tech may need to come a fair way for this to be a commercial product, but we believe the interface we produced is highly usable and fit for purpose of making the job application process easier.
We're also proud of our use of Gemini Nano. We think AI Assistants should do exactly that, assist. They're not agents to develop the nextt best app, but they're partners to help eliminate tedium.
What we learned
1) We learnt that prompt engineering is a surprisingly difficult task, but a particularly important one. At some point, you'll need to interact with AI output with code, you need to engineer your prompts to ensure a consistent output the code can handle.
2) We also learnt that concurrency is going to be important for large-scale, responsive AI driven apps. Admitedly, we are blocked by the single threadedness of JavaScript at times here. There is far too much wait time in the era of demand for immediate response from applications. It'll be important to use features such as service workers in Chrome, which we have attempted to do.
3) Also, we learnt webdev from scratch basically! we used no frameworks, just pure CSS, HTML and JS. Pretty cool, and very lightweight!
What's next for Applyify
- expanding functionality to new sites
- improved user control over prompts to append to Nano's instructions (within reason)
- consolidating more info about the job
- improved markdown display of Gemini outputs
Want more?
Check out our github and readme! https://github.com/Chillerbag/Applyify
Log in or sign up for Devpost to join the conversation.