mirror of
https://github.com/xx254/linkedin_skills.git
synced 2026-06-11 16:04:55 +03:00
linkedin skills
This commit is contained in:
Vendored
+70
@@ -0,0 +1,70 @@
|
||||
#!/usr/bin/env node
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const { readJson, writeJson, ensureDir } = require("./lib/io");
|
||||
|
||||
const ROOT = path.resolve(__dirname, "..");
|
||||
const settingsPath = path.join(ROOT, "state", "linkedin-settings.json");
|
||||
const statePath = path.join(ROOT, "state", "linkedin-system-state.json");
|
||||
const defaultSettingsPath = path.join(ROOT, "config", "default-settings.json");
|
||||
const contextDir = path.join(ROOT, "context");
|
||||
const aboutMePath = path.join(contextDir, "about-me.md");
|
||||
const brandVoicePath = path.join(contextDir, "brand-voice.md");
|
||||
|
||||
const defaultSettings = readJson(defaultSettingsPath, {});
|
||||
const currentSettings = readJson(settingsPath, null);
|
||||
const currentState = readJson(statePath, null);
|
||||
|
||||
if (!currentSettings) {
|
||||
writeJson(settingsPath, defaultSettings);
|
||||
}
|
||||
|
||||
if (!currentState) {
|
||||
writeJson(statePath, {
|
||||
version: "1.0.0",
|
||||
firstRunCompleted: false,
|
||||
lastSuccessfulRunAt: null,
|
||||
lastLeadFilterRunAt: null,
|
||||
lastDraftRunAt: null,
|
||||
lastReplyRunAt: null,
|
||||
leadRegistry: {},
|
||||
outreachRegistry: {},
|
||||
weeklyMetrics: {
|
||||
weekKey: null,
|
||||
leads_processed: 0,
|
||||
qualified_count: 0,
|
||||
drafted_count: 0,
|
||||
reply_drafts_count: 0,
|
||||
replied_count: 0,
|
||||
rejected_count: 0,
|
||||
score3_conversion_count: 0
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
ensureDir(path.join(ROOT, "output"));
|
||||
ensureDir(path.join(ROOT, "reports"));
|
||||
ensureDir(contextDir);
|
||||
|
||||
if (!fs.existsSync(aboutMePath)) {
|
||||
fs.writeFileSync(
|
||||
aboutMePath,
|
||||
"# ICP Profile\n\n## Target Industries\n- Software Development\n- Marketing Services\n\n## Target Seniority\n- Manager\n- Director\n\n## Target Geographies\n- United States\n\n## Offer Summary\nDescribe your offer here.\n",
|
||||
"utf8"
|
||||
);
|
||||
}
|
||||
|
||||
if (!fs.existsSync(brandVoicePath)) {
|
||||
fs.writeFileSync(
|
||||
brandVoicePath,
|
||||
"# Brand Voice Profile\n\n## Language\nDefault: English\n\n## Outreach Goal\nStart relevant conversations with qualified leads.\n\n## Formatting Rules\n- Keep first-touch message concise.\n- Max one question.\n- No generic opener.\n",
|
||||
"utf8"
|
||||
);
|
||||
}
|
||||
|
||||
console.log(JSON.stringify({
|
||||
ok: true,
|
||||
settingsInitialized: !currentSettings,
|
||||
stateInitialized: !currentState,
|
||||
root: ROOT
|
||||
}, null, 2));
|
||||
Reference in New Issue
Block a user