mirror of
https://github.com/xx254/linkedin_skills.git
synced 2026-06-10 07:24:56 +03:00
1.2 KiB
1.2 KiB
Lead Artifact Contract
This contract defines what linkedin-lead-filter writes and what
draft-outreach must read.
Canonical fields
Required:
lead_keynametitlecompanylinkedin_urlqualification_statusscoresignal_typereasonlast_scored_at
Optional:
recent_activityengagement_signalsource_fileowner
File contract
linkedin-lead-filter must write:
output/leads_{date}/qualified_leads_{date}.csv- category disqualification files
output/leads_{date}/lead_registry_{date}.json
The registry JSON must include an array leads[] with canonical fields.
Key derivation
lead_key is:
lowercase(trim(name) + "|" + trim(company) + "|" + trim(linkedin_url))
If linkedin_url is missing, use:
lowercase(trim(name) + "|" + trim(company) + "|missing_url")
Conflict policy
If the same lead_key appears multiple times in one run:
- Keep the highest
score. - Keep the most recent
signal_typedetail if available. - Record
duplicate_countin state.
If a required field is missing:
- Stop downstream draft generation for that lead.
- Log it as
contract_violation. - Ask for field mapping or repair.