{"id":"outreachgraph.com/outreachgraph","name":"outreachgraph","commands":["og"],"examples":[{"run":"og today","does":"Show the approval queue"},{"run":"og prospects","does":"List ranked prospects"},{"run":"og jobs search \"senior software engineer (remote)\"","does":"Find job posts and the people behind them"},{"run":"og linkpost <url> --to linkedin,x","does":"Draft posts for a link"},{"run":"og --help","does":"List every command"}],"description":"og, the OutreachGraph command line: approval queue, prospects, campaigns and imports over the /api/v1 API, through the same policy gates as the web app.","homepage":"https://outreachgraph.com","repository":"https://github.com/profullstack/outreachgraph","license":"proprietary","agentic":false,"latest_version":"0.26.5","vendor":"Profullstack","install":"curl -fsSL https://outreachgraph.com/install.sh | sh","publisher":"profullstack","w3bs":"w3bs install outreachgraph.com/outreachgraph","scan":{"status":"passed","scanner":"threatcrush 0.13.30","filesScanned":910,"summary":{"critical":3,"high":6,"medium":38,"low":23,"info":0},"malware":0,"truncated":false,"version":"0.26.5","sources":{"installer":"https://outreachgraph.com/install.sh","installerSha256":"e533d40858b15de8246faf790d604123afa3fe0f6774ff725a07060862fbd100","repository":"github.com/profullstack/outreachgraph","commit":"d999e9a000bc94086d8d719e9f2ba53eb79559e6"},"notes":[],"scannedAt":"2026-11-03T04:48:43.983Z","findings":[{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"critical","category":"code","cwe":"CWE-89","file":"source/apps/api/src/content-radar.ts","line":1469,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"critical","category":"code","cwe":"CWE-89","file":"source/apps/api/src/workflows.ts","line":1669,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"critical","category":"code","cwe":"CWE-89","file":"source/apps/api/src/workflows.ts","line":1991,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"high","category":"secret","cwe":"CWE-798","file":"source/.github/workflows/ci.yml","line":41,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"high","category":"secret","cwe":"CWE-798","file":"source/.github/workflows/ci.yml","line":73,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"high","category":"secret","cwe":"CWE-798","file":"source/.github/workflows/ci.yml","line":127,"malware":false},{"ruleId":"js-ssrf-outbound-request","title":"outbound request to a non-constant URL","severity":"high","category":"code","cwe":"CWE-918","file":"source/apps/server/src/index.ts","line":846,"malware":false},{"ruleId":"js-ssrf-outbound-request","title":"outbound request to a non-constant URL","severity":"high","category":"code","cwe":"CWE-918","file":"source/apps/server/src/index.ts","line":882,"malware":false},{"ruleId":"tls-verification-disabled","title":"TLS certificate verification disabled","severity":"high","category":"code","cwe":"CWE-295","file":"source/packages/db/src/raw.ts","line":42,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/apps/api/src/app.ts","line":2706,"malware":false},{"ruleId":"js-timing-unsafe-mac-compare","title":"MAC or signature compared with ==","severity":"medium","category":"code","cwe":"CWE-208","file":"source/apps/api/src/app.ts","line":5638,"malware":false},{"ruleId":"js-timing-unsafe-mac-compare","title":"MAC or signature compared with ==","severity":"medium","category":"code","cwe":"CWE-208","file":"source/apps/api/src/campaigns.ts","line":615,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/apps/api/src/content-radar.ts","line":1248,"malware":false},{"ruleId":"js-open-redirect","title":"redirect to a non-constant destination","severity":"medium","category":"code","cwe":"CWE-601","file":"source/apps/web/components/credit-packs.tsx","line":54,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/apps/web/components/pit-footer.tsx","line":22,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/testing.ts","line":119,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/testing.ts","line":136,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/packages/domain/src/brain.ts","line":623,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/packages/domain/src/brain.ts","line":625,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/packages/domain/src/brain.ts","line":647,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/autopilot.ts","line":377,"malware":false},{"ruleId":"js-timing-unsafe-mac-compare","title":"MAC or signature compared with ==","severity":"medium","category":"code","cwe":"CWE-208","file":"source/packages/pipeline/src/community-leads.ts","line":493,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/contact-import.ts","line":784,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/contact-import.ts","line":874,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/enrich-contact.ts","line":380,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/ideas.ts","line":231,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/ideas.ts","line":871,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/ideas.ts","line":905,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/ideas.ts","line":968,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/job-posts.ts","line":405,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/jobs.ts","line":393,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/sender-pool.ts","line":118,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/sender-pool.ts","line":133,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/sender-pool.ts","line":448,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/sender-pool.ts","line":599,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/webhook-store.ts","line":212,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/webhook-store.ts","line":221,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/webhook-store.ts","line":249,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/webhook-store.ts","line":287,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/webhook-store.ts","line":296,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/webhook-store.ts","line":322,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/webhook-store.ts","line":335,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/pipeline/src/workspace-keys.ts","line":114,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/packages/providers/src/email-finder/index.ts","line":50,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/packages/providers/src/feeds/job-feeds.ts","line":144,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/packages/providers/src/jobs/index.ts","line":342,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/packages/providers/src/site/attribute.ts","line":332,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"low","category":"code","cwe":"CWE-89","file":"source/apps/api/src/app.test.ts","line":416,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/api/src/app.test.ts","line":873,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/api/src/app.test.ts","line":1138,"malware":false},{"ruleId":"secret-generic-api-key","title":"Generic API Key","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/api/src/coinpay-behind.test.ts","line":124,"malware":false},{"ruleId":"secret-generic-api-key","title":"Generic API Key","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/api/src/coinpay-behind.test.ts","line":181,"malware":false},{"ruleId":"secret-generic-api-key","title":"Generic API Key","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/api/src/coinpay-behind.test.ts","line":197,"malware":false},{"ruleId":"secret-generic-api-key","title":"Generic API Key","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/api/src/coinpay-behind.test.ts","line":212,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/api/src/throttle.test.ts","line":70,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/api/src/throttle.test.ts","line":90,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/cli/src/cli.test.ts","line":238,"malware":false},{"ruleId":"secret-slack-webhook","title":"Slack Webhook URL","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/cli/src/cli.test.ts","line":243,"malware":false},{"ruleId":"secret-slack-webhook","title":"Slack Webhook URL","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/cli/src/cli.test.ts","line":249,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/mcp/src/mcp.test.ts","line":19,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/mcp/src/mcp.test.ts","line":82,"malware":false},{"ruleId":"js-dynamic-code-execution","title":"dynamic code execution","severity":"low","category":"code","cwe":"CWE-95","file":"source/apps/web/lib/sw-navigation.test.ts","line":75,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/packages/db/src/raw.test.ts","line":6,"malware":false},{"ruleId":"tls-verification-disabled","title":"TLS certificate verification disabled","severity":"low","category":"code","cwe":"CWE-295","file":"source/packages/db/src/raw.test.ts","line":7,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/packages/db/src/raw.test.ts","line":12,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/packages/db/src/raw.test.ts","line":13,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/packages/email/src/mailer.test.ts","line":97,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/packages/pipeline/src/engagement.test.ts","line":141,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/packages/pipeline/src/opens.test.ts","line":104,"malware":false},{"ruleId":"secret-slack-webhook","title":"Slack Webhook URL","severity":"low","category":"secret","cwe":"CWE-798","file":"source/packages/pipeline/src/webhooks.test.ts","line":398,"malware":false}]}}