t
This commit is contained in:
27
general_application.txt
Normal file
27
general_application.txt
Normal file
@@ -0,0 +1,27 @@
|
||||
Dear [Company Name] Team,
|
||||
|
||||
I’m excited to apply for the [specific position] at [Company Name]. With a background in [your field] and experience in [mention 1-2 relevant skills], I’m eager to bring my skills to your projects.
|
||||
|
||||
Currently completing my degree in [your degree] at [your university], I’ve 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.
|
||||
|
||||
I’m particularly drawn to [mention something specific about the company], which aligns with my passion for [mention your passion]. I’d 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 1–2 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 1–2 relevantne akademske veščine]. Moje izkušnje v podjetjih [Podjetje 1] in [Podjetje 2] so dodatno izostrile moje sposobnosti na področju [navajajte 1–2 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
28
general_reach_out.txt
Normal file
@@ -0,0 +1,28 @@
|
||||
Dear [Company Name] Team,
|
||||
|
||||
I’m 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], I’m eager to bring my skills to your projects.
|
||||
|
||||
Currently completing my degree in [your degree] at [your university], I’ve 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.
|
||||
|
||||
I’m particularly drawn to [mention something specific about the company], which aligns with my passion for [mention your passion]. I’d 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 1–2 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 1–2 relevantne akademske veščine]. Moje izkušnje v podjetjih [Podjetje 1] in [Podjetje 2] so dodatno izostrile moje sposobnosti na področju [navajajte 1–2 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
17
get_company.sh
Executable 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
3
prompt.md
Normal 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
|
||||
|
||||
@@ -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.
|
||||
@@ -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();
|
||||
})();
|
||||
|
||||
0
scrap/.gitignore → scrape/.gitignore
vendored
0
scrap/.gitignore → scrape/.gitignore
vendored
94
scrape/index.ts
Normal file
94
scrape/index.ts
Normal 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
32
scrape/main.ts
Normal 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);
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user