This commit is contained in:
2026-04-26 16:33:33 +02:00
parent cf556004cb
commit b441bf5580
13 changed files with 201 additions and 51 deletions

27
general_application.txt Normal file
View File

@@ -0,0 +1,27 @@
Dear [Company Name] Team,
Im excited to apply for the [specific position] at [Company Name]. With a background in [your field] and experience in [mention 1-2 relevant skills], Im eager to bring my skills to your projects.
Currently completing my degree in [your degree] at [your university], Ive developed a strong foundation in [mention 1-2 relevant academic skills]. My experience at [Company 1] and [Company 2] has further honed my abilities in [mention 1-2 key skills] and collaboration.
Im particularly drawn to [mention something specific about the company], which aligns with my passion for [mention your passion]. Id welcome the opportunity to discuss how my skills can benefit your team.
Thank you for your time and consideration.
Best regards,
[Your Name]
Spoštovani ekipa [ime podjetja],
z velikim navdušenjem se prijavljam na razpisano delovno mesto [konkretno delovno mesto] v podjetju [ime podjetja]. Glede na moje izobrazbo na področju [vaše področje] in izkušnje z [navajajte 12 ustrezne veščine] se veselim, da bom lahko svoje znanje in veščine vključil v vaše projekte.
Trenutno zaključujem študij [vaš študijski program] na [vaša univerza], kjer sem si pridobil trdne temelje v [navajajte 12 relevantne akademske veščine]. Moje izkušnje v podjetjih [Podjetje 1] in [Podjetje 2] so dodatno izostrile moje sposobnosti na področju [navajajte 12 ključne veščine] in sodelovanja.
Posebej me privlači [navajajte nekaj konkretnega o podjetju], kar se ujema z mojo strastjo za [navajajte svojo strast]. Z veseljem bi se pogovoril o tem, kako lahko moje veščine koristijo vaši ekipi.
Hvala za vaš čas in pozornost.
S spoštovanjem,
[Vaše ime]

28
general_reach_out.txt Normal file
View File

@@ -0,0 +1,28 @@
Dear [Company Name] Team,
Im reaching out to express my admiration for [Company Name] and my interest in exploring potential opportunities to contribute to your team. With a background in [your field] and experience in [mention 1-2 relevant skills], Im eager to bring my skills to your projects.
Currently completing my degree in [your degree] at [your university], Ive developed a strong foundation in [mention 1-2 relevant academic skills]. My experience at [Company 1] and [Company 2] has further honed my abilities in [mention 1-2 key skills] and collaboration.
Im particularly drawn to [mention something specific about the company], which aligns with my passion for [mention your passion]. Id welcome the opportunity to discuss how my skills can benefit your team.
Thank you for your time and consideration.
Best regards,
[Your Name]
Spoštovani člani ekipe [ime podjetja],
pišem vam, da bi izrazil svoje spoštovanje do podjetja [ime podjetja] in zanimanje za morebitne priložnosti, da bi prispeval k delu vaše ekipe. Z izobrazbo na področju [vaše področje] in izkušnjami v [navajajte 12 ustrezne veščine] sem vesel, da bom lahko svoje znanje in veščine vključil v vaše projekte.
Trenutno zaključujem študij [vaš študijski program] na [vaša univerza], kjer sem si pridobil trdne temelje v [navajajte 12 relevantne akademske veščine]. Moje izkušnje v podjetjih [Podjetje 1] in [Podjetje 2] so dodatno izostrile moje sposobnosti na področju [navajajte 12 ključne veščine] in sodelovanja.
Posebej me privlači [navajajte nekaj konkretnega o podjetju], kar se ujema z mojo strastjo za [navajajte svojo strast]. Z veseljem bi se pogovoril o tem, kako lahko moje veščine koristijo vaši ekipi.
Hvala za vaš čas in pozornost.
S spoštovanjem,
[Vaše ime]
Translated with DeepL.com (free version)

17
get_company.sh Executable file
View File

@@ -0,0 +1,17 @@
#!/bin/bash
# $1 is file with companys list
# template of file is
# "
# Company name
# company url
# ---
# company name
# company url
# ---
# "
# I want to read this file get get urls of the compani end run the prompt below
PROMPT="Research $1, identify their focus areas, and draft a tailored job application using the template from @general_application.txt and my details from @knowledge_base.md. Include contact information for submission. Save the application and contact details to applications/[company name].txt"
vibe -p "$PROMPT"

3
prompt.md Normal file
View File

@@ -0,0 +1,3 @@
Research http://www.marand.com/, identify their focus areas, and draft a tailored job application using the template from @general_application.txt and my details from @knowledge_base.md. Include contact information for submission. Save the application and contact details to applications/[company name].txt

View File

@@ -1,15 +0,0 @@
# job
To install dependencies:
```bash
bun install
```
To run:
```bash
bun run index.ts
```
This project was created using `bun init` in bun v1.3.6. [Bun](https://bun.com) is a fast all-in-one JavaScript runtime.

View File

@@ -1,36 +0,0 @@
import playwright from 'playwright';
function sleep(ms: number | undefined) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}
(async () => {
const browser = await playwright.chromium.launch({headless : false});
const context = await browser.newContext();
const page = await context.newPage();
await context.route('**.jpg', route => route.abort());
await page.goto('https://www.google.com/maps/search/Software+company/@46.0463511,14.5023435,14z');
await page.click('span:has-text("Sprejmi")');
await page.waitForLoadState('networkidle');
console.log(await page.title());
// for div role="article"
// div class fontHeadlineSmall
// a contains spletno mesto get htef
// print name and url
// when you get to bottom scrool down with mouse to load more articles
for await (const line of console) {
console.log(line);
// wait for user enter to continue
break;
}
await context.close();
await browser.close();
})();

94
scrape/index.ts Normal file
View File

@@ -0,0 +1,94 @@
import playwright from 'playwright';
function sleep(ms: number) {
return Bun.sleep(ms);
}
async function waitUser() {
for await (const line of console) {
console.log(line);
// wait for user enter to continue
break;
}
}
const browser = await playwright.chromium.launch({ headless: false });
const context = await browser.newContext();
const page = await context.newPage();
const page2 = await context.newPage();
await context.route('**.jpg', route => route.abort());
await page.goto('https://www.google.com/maps/search/Software+company/@46.0463511,14.5023435,14z');
await page.click('span:has-text("Sprejmi")');
await page.waitForLoadState('networkidle');
// Scroll and extract company information
// Get all article elements
const articles_l = page.locator('div[role="article"]');
// while (article_count < 30) {
// await page.evaluate((element) => {
// element.scrollTop = element.scrollHeight;
// }, await page.locator('div[role="feed"]').elementHandle());
// await page.waitForLoadState('networkidle');
// article_count = await page.locator('div[role="article"]').count();
// }
await waitUser();
const articles = await articles_l.all();
let map = new Map();
let map_e = new Map();
// Extract information from each article
for (const article of articles) {
try {
// Get company name
const nameElement = article.locator('div.fontHeadlineSmall').first();
const name_tt = nameElement ? await nameElement.textContent() : 'N/A';
const name = name_tt?.trim();
if (!name) continue;
// Get website URL
const linkElement = article.locator('a[data-value="Spletno mesto"]');
let url: string | null = 'N/A';
if (await linkElement.count() > 0) {
url = await linkElement.first().getAttribute('href');
if(!url) continue;
if(url[0] == '/'){
await page2.goto(`https://www.google.com${url}`);
await page2.waitForLoadState('networkidle');
url = page2.url()
}
}
if (url != 'N/A')
map.set(name, url);
else
map_e.set(name, url);
} catch (error) {
console.error('Error processing article:', error);
}
}
let smap = JSON.stringify(Array.from(map.entries()), null, 2);
Bun.write("company.json", smap);
let smap_e = JSON.stringify(Array.from(map_e.entries()), null, 2);
Bun.write("company_e.json", smap_e);
console.log(`Num of company ${map.size}`);
console.log(`Num of company_e ${map_e.size}`);
console.log('Finished scraping.');
await context.close();
await browser.close();

32
scrape/main.ts Normal file
View File

@@ -0,0 +1,32 @@
const file_map = Bun.file("company.json");
const file_map_d = Bun.file("company_d.json");
let smap = "[]";
if(await file_map.exists())
smap = await file_map.text();
let smap_d = "[]";
if(await file_map_d.exists())
smap_d = await file_map_d.text();
let map = new Map<string, string>(JSON.parse(smap))
let map_d = new Map<string, number>(JSON.parse(smap_d));
for (const [name, url] of map) {
if(map_d.has(name)) continue;
const res = await Bun.$`./get_company.sh ${url}`.text();
console.log(res);
map_d.set(name, 1);
break;
}
let smap_e = JSON.stringify(Array.from(map_d.entries()), null, 2);
Bun.write("company_d.json", smap_e);